|
@@ -20,6 +20,8 @@
|
|
#include <linux/i2c.h>
|
|
#include <linux/i2c.h>
|
|
#include <linux/smsc911x.h>
|
|
#include <linux/smsc911x.h>
|
|
#include <linux/gpio.h>
|
|
#include <linux/gpio.h>
|
|
|
|
+#include <linux/spi/spi.h>
|
|
|
|
+#include <linux/spi/spi_gpio.h>
|
|
#include <media/soc_camera_platform.h>
|
|
#include <media/soc_camera_platform.h>
|
|
#include <media/sh_mobile_ceu.h>
|
|
#include <media/sh_mobile_ceu.h>
|
|
#include <video/sh_mobile_lcdc.h>
|
|
#include <video/sh_mobile_lcdc.h>
|
|
@@ -317,6 +319,20 @@ static struct platform_device ceu_device = {
|
|
},
|
|
},
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+struct spi_gpio_platform_data sdcard_cn3_platform_data = {
|
|
|
|
+ .sck = GPIO_PTD0,
|
|
|
|
+ .mosi = GPIO_PTD1,
|
|
|
|
+ .miso = GPIO_PTD2,
|
|
|
|
+ .num_chipselect = 1,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device sdcard_cn3_device = {
|
|
|
|
+ .name = "spi_gpio",
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &sdcard_cn3_platform_data,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
static struct platform_device *ap325rxa_devices[] __initdata = {
|
|
static struct platform_device *ap325rxa_devices[] __initdata = {
|
|
&smsc9118_device,
|
|
&smsc9118_device,
|
|
&ap325rxa_nor_flash_device,
|
|
&ap325rxa_nor_flash_device,
|
|
@@ -326,6 +342,7 @@ static struct platform_device *ap325rxa_devices[] __initdata = {
|
|
&camera_device,
|
|
&camera_device,
|
|
#endif
|
|
#endif
|
|
&nand_flash_device,
|
|
&nand_flash_device,
|
|
|
|
+ &sdcard_cn3_device,
|
|
};
|
|
};
|
|
|
|
|
|
static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = {
|
|
static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = {
|
|
@@ -334,6 +351,15 @@ static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = {
|
|
},
|
|
},
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+static struct spi_board_info ap325rxa_spi_devices[] = {
|
|
|
|
+ {
|
|
|
|
+ .modalias = "mmc_spi",
|
|
|
|
+ .max_speed_hz = 5000000,
|
|
|
|
+ .chip_select = 0,
|
|
|
|
+ .controller_data = (void *) GPIO_PTD5,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
static int __init ap325rxa_devices_setup(void)
|
|
static int __init ap325rxa_devices_setup(void)
|
|
{
|
|
{
|
|
/* LD3 and LD4 LEDs */
|
|
/* LD3 and LD4 LEDs */
|
|
@@ -431,6 +457,9 @@ static int __init ap325rxa_devices_setup(void)
|
|
i2c_register_board_info(0, ap325rxa_i2c_devices,
|
|
i2c_register_board_info(0, ap325rxa_i2c_devices,
|
|
ARRAY_SIZE(ap325rxa_i2c_devices));
|
|
ARRAY_SIZE(ap325rxa_i2c_devices));
|
|
|
|
|
|
|
|
+ spi_register_board_info(ap325rxa_spi_devices,
|
|
|
|
+ ARRAY_SIZE(ap325rxa_spi_devices));
|
|
|
|
+
|
|
return platform_add_devices(ap325rxa_devices,
|
|
return platform_add_devices(ap325rxa_devices,
|
|
ARRAY_SIZE(ap325rxa_devices));
|
|
ARRAY_SIZE(ap325rxa_devices));
|
|
}
|
|
}
|