reklam1

reklam1

31 Temmuz 2012 Salı

SPI0 driver

Mini2440, 2 adet SPI bağlantısına sahip (CON7). SPI haberleşmesini kullanmak için driverlerinin boot esnasında yüklenmesi gerekir. Ancak default olarak gelen kernelde yüklü değil. Yüklemek için aşağıdaki adımları sırasıyla yapmamız gerekiyor. Biz burada SPI0 bağlantısını aktifleştireceğiz.
1- mach-mini2440.c'de aşağıdaki satırları ekleyin. Ben;
...

/* LCD driver info */
...
dan önce ekledim.

...
/* SPI driver info */
static struct spi_board_info __initdata mini2440_spi_board_info[] = {
   // SPI Port 0
   {
      .modalias      = "spidev",
      .max_speed_hz   = 48000000, //48 Mbps
      .bus_num      = 0,
      .chip_select   = 0,   
      .mode          = SPI_MODE_1,
   },
};

static void mini2440_spi0_cs(struct s3c2410_spi_info *spi, int cs, int pol)
{
    s3c2410_gpio_setpin(S3C2410_GPG(2), pol);
}

static struct s3c2410_spi_info mini2440_spi0_platdata = {
    .num_cs = 1,
    .bus_num = 0,
    .set_cs = mini2440_spi0_cs,
};
...
2- mach-mini2440.c'de platform_device' lara spi0 ekle;
...
static struct platform_device *mini2440_devices[] __initdata = {
   &s3c_device_usb,
   &s3c_device_rtc,
   &s3c_device_lcd,
   &s3c_device_wdt,
   &s3c_device_i2c0,
   &s3c_device_spi0,
   &s3c_device_iis,
   &mini2440_device_eth,
   &s3c24xx_uda134x,
   &s3c_device_nand,
   &s3c_device_sdi,
   &s3c_device_usbgadget,
};
...
 
3- mach-mini2440.c 'de  mini2440_machine_init de aşağıdaki satırları ekle;
...

static void __init mini2440_machine_init(void)
{
#if defined (LCD_WIDTH)
   s3c24xx_fb_set_platdata(&mini2440_fb_info);
#endif
   s3c_i2c0_set_platdata(NULL);

   /* setup SPI0 pins */
   s3c2410_gpio_cfgpin(S3C2410_GPE(11), S3C2410_GPE11_SPIMISO0);
   s3c2410_gpio_cfgpin(S3C2410_GPE(12), S3C2410_GPE12_SPIMOSI0);
   s3c2410_gpio_cfgpin(S3C2410_GPE(13), S3C2410_GPE13_SPICLK0);
   s3c2410_gpio_cfgpin(S3C2410_GPG(2), S3C2410_GPIO_OUTPUT);
   s3c_device_spi0.dev.platform_data = &mini2440_spi0_platdata;
   spi_register_board_info(mini2440_spi_board_info,
      ARRAY_SIZE(mini2440_spi_board_info));  
   s3c2410_gpio_cfgpin(S3C2410_GPC(0), S3C2410_GPC0_LEND);

   s3c_device_nand.dev.platform_data = &friendly_arm_nand_info;
   s3c_device_sdi.dev.platform_data = &mini2440_mmc_cfg;
   platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices));
   s3c_pm_init();
}
 ... 

4- tekrar derleyerek yeni zImage oluştur.
artık device listesinde spi0.0 görünecektir. 

Hiç yorum yok :

Yorum Gönder

reklam4

reklam4