return 0;\r
}\r
\r
-struct rk29_i2c_platform_data default_i2c0_data = { \r
+struct rk29_i2c_platform_data default_i2c0_data = {\r
.bus_num = 0,\r
.flags = 0,\r
.slave_addr = 0xff,\r
.io_init = rk29_i2c0_io_init,\r
};\r
\r
-struct rk29_i2c_platform_data default_i2c1_data = { \r
+struct rk29_i2c_platform_data default_i2c1_data = {\r
.bus_num = 1,\r
.flags = 0,\r
.slave_addr = 0xff,\r
.io_init = rk29_i2c1_io_init,\r
};\r
\r
-struct rk29_i2c_platform_data default_i2c2_data = { \r
+struct rk29_i2c_platform_data default_i2c2_data = {\r
.bus_num = 2,\r
.flags = 0,\r
.slave_addr = 0xff,\r
.io_init = rk29_i2c2_io_init,\r
};\r
\r
-struct rk29_i2c_platform_data default_i2c3_data = { \r
+struct rk29_i2c_platform_data default_i2c3_data = {\r
.bus_num = 3,\r
.flags = 0,\r
.slave_addr = 0xff,\r
* author: ddl@rock-chips.com\r
*****************************************************************************************/\r
#ifdef CONFIG_VIDEO_RK29\r
-#define SENSOR_NAME_0 RK29_CAM_SENSOR_NAME_OV2655\r
+#define SENSOR_NAME_0 RK29_CAM_SENSOR_NAME_OV2655 /* back camera sensor */\r
#define SENSOR_IIC_ADDR_0 0x60\r
#define SENSOR_IIC_ADAPTER_ID_0 1\r
#define SENSOR_POWER_PIN_0 INVALID_GPIO\r
#define SENSOR_RESETACTIVE_LEVEL_0 RK29_CAM_RESETACTIVE_L\r
\r
\r
-#define SENSOR_NAME_1 NULL\r
-#define SENSOR_IIC_ADDR_1 0x00\r
-#define SENSOR_IIC_ADAPTER_ID_1 0xff\r
+#define SENSOR_NAME_1 RK29_CAM_SENSOR_NAME_OV2659 /* front camera sensor */\r
+#define SENSOR_IIC_ADDR_1 0x60\r
+#define SENSOR_IIC_ADAPTER_ID_1 1\r
#define SENSOR_POWER_PIN_1 INVALID_GPIO\r
#define SENSOR_RESET_PIN_1 INVALID_GPIO\r
#define SENSOR_POWERACTIVE_LEVEL_1 RK29_CAM_POWERACTIVE_L\r
return 0;\r
}\r
\r
-static struct i2c_board_info rk29_i2c_cam_info[] = {\r
+static struct i2c_board_info rk29_i2c_cam_info_0[] = {\r
{\r
I2C_BOARD_INFO(SENSOR_NAME_0, SENSOR_IIC_ADDR_0>>1)\r
},\r
};\r
\r
-struct soc_camera_link rk29_iclink = {\r
+struct soc_camera_link rk29_iclink_0 = {\r
.bus_id = RK29_CAM_PLATFORM_DEV_ID,\r
.power = rk29_sensor_power,\r
- .board_info = &rk29_i2c_cam_info[0],\r
+ .board_info = &rk29_i2c_cam_info_0[0],\r
.i2c_adapter_id = SENSOR_IIC_ADAPTER_ID_0,\r
.module_name = SENSOR_NAME_0,\r
};\r
\r
/*platform_device : soc-camera need */\r
-struct platform_device rk29_soc_camera_pdrv = {\r
+struct platform_device rk29_soc_camera_pdrv_0 = {\r
.name = "soc-camera-pdrv",\r
- .id = -1,\r
+ .id = 0,\r
.dev = {\r
.init_name = SENSOR_NAME_0,\r
- .platform_data = &rk29_iclink,\r
+ .platform_data = &rk29_iclink_0,\r
},\r
};\r
\r
+static struct i2c_board_info rk29_i2c_cam_info_1[] = {\r
+ {\r
+ I2C_BOARD_INFO(SENSOR_NAME_1, SENSOR_IIC_ADDR_1>>1)\r
+ },\r
+};\r
+\r
+struct soc_camera_link rk29_iclink_1 = {\r
+ .bus_id = RK29_CAM_PLATFORM_DEV_ID,\r
+ .power = rk29_sensor_power,\r
+ .board_info = &rk29_i2c_cam_info_1[0],\r
+ .i2c_adapter_id = SENSOR_IIC_ADAPTER_ID_1,\r
+ .module_name = SENSOR_NAME_1,\r
+};\r
+\r
+/*platform_device : soc-camera need */\r
+struct platform_device rk29_soc_camera_pdrv_1 = {\r
+ .name = "soc-camera-pdrv",\r
+ .id = 1,\r
+ .dev = {\r
+ .init_name = SENSOR_NAME_1,\r
+ .platform_data = &rk29_iclink_1,\r
+ },\r
+};\r
+\r
+\r
extern struct platform_device rk29_device_camera;\r
#endif\r
/*****************************************************************************************\r
GPIO2A3_SDMMC0WRITEPRT_PWM2_NAME, GPIO2L_PWM2\r
GPIO1A5_EMMCPWREN_PWM3_NAME, GPIO1L_PWM3\r
*/\r
- \r
-#define PWM_ID 0 \r
+\r
+#define PWM_ID 0\r
#define PWM_MUX_NAME GPIO1B5_PWM0_NAME\r
#define PWM_MUX_MODE GPIO1L_PWM0\r
#define PWM_MUX_MODE_GPIO GPIO1L_GPIO1B5\r
static int rk29_backlight_io_init(void)\r
{\r
int ret = 0;\r
- \r
+\r
rk29_mux_api_set(PWM_MUX_NAME, PWM_MUX_MODE);\r
#ifdef LCD_DISP_ON_PIN\r
- rk29_mux_api_set(BL_EN_MUX_NAME, BL_EN_MUX_MODE); \r
- \r
- ret = gpio_request(BL_EN_PIN, NULL); \r
+ rk29_mux_api_set(BL_EN_MUX_NAME, BL_EN_MUX_MODE);\r
+\r
+ ret = gpio_request(BL_EN_PIN, NULL);\r
if(ret != 0)\r
{\r
- gpio_free(BL_EN_PIN); \r
+ gpio_free(BL_EN_PIN);\r
}\r
- \r
+\r
gpio_direction_output(BL_EN_PIN, 0);\r
gpio_set_value(BL_EN_PIN, BL_EN_VALUE);\r
#endif\r
.pwm_id = PWM_ID,\r
.bl_ref = PWM_EFFECT_VALUE,\r
.io_init = rk29_backlight_io_init,\r
- .io_deinit = rk29_backlight_io_deinit, \r
+ .io_deinit = rk29_backlight_io_deinit,\r
};\r
#endif\r
/*****************************************************************************************\r
};\r
#endif\r
#ifdef CONFIG_KEYS_RK29\r
-extern struct rk29_keys_platform_data rk29_keys_pdata; \r
+extern struct rk29_keys_platform_data rk29_keys_pdata;\r
static struct platform_device rk29_device_keys = {\r
.name = "rk29-keys",\r
.id = -1,\r
static struct platform_device *devices[] __initdata = {\r
#ifdef CONFIG_UART1_RK29\r
&rk29_device_uart1,\r
-#endif \r
+#endif\r
#ifdef CONFIG_SPIM0_RK29\r
&rk29xx_device_spi0m,\r
#endif\r
#ifdef CONFIG_KEYS_RK29\r
&rk29_device_keys,\r
#endif\r
-#ifdef CONFIG_SDMMC0_RK29 \r
+#ifdef CONFIG_SDMMC0_RK29\r
&rk29_device_sdmmc0,\r
#endif\r
#ifdef CONFIG_SDMMC1_RK29\r
#endif\r
#ifdef CONFIG_VIDEO_RK29\r
&rk29_device_camera, /* ddl@rock-chips.com : camera support */\r
- &rk29_soc_camera_pdrv,\r
- #endif\r
+ &rk29_soc_camera_pdrv_0,\r
+ &rk29_soc_camera_pdrv_1,\r
+#endif\r
&android_pmem_device,\r
&rk29_vpu_mem_device,\r
};\r
};\r
\r
static int spi_io_init(struct spi_cs_gpio *cs_gpios, int cs_num)\r
-{ \r
+{\r
#if 0\r
int i,j,ret;\r
- \r
+\r
//cs\r
if (cs_gpios) {\r
for (i=0; i<cs_num; i++) {\r
}\r
printk("[fun:%s, line:%d], gpio request err\n", __func__, __LINE__);\r
return -1;\r
- } \r
+ }\r
gpio_direction_output(cs_gpios[i].cs_gpio, GPIO_HIGH);\r
}\r
}\r
{\r
#if 0\r
int i;\r
- \r
+\r
if (cs_gpios) {\r
for (i=0; i<cs_num; i++) {\r
gpio_free(cs_gpios[i].cs_gpio);\r
static int spi_io_fix_leakage_bug(void)\r
{\r
#if 0\r
- gpio_direction_output(RK29_PIN2_PC1, GPIO_LOW); \r
+ gpio_direction_output(RK29_PIN2_PC1, GPIO_LOW);\r
#endif\r
return 0;\r
}\r
#define XPT2046_GPIO_INT RK29_PIN0_PA3\r
#define DEBOUNCE_REPTIME 3\r
\r
-#if defined(CONFIG_TOUCHSCREEN_XPT2046_320X480_SPI) \r
+#if defined(CONFIG_TOUCHSCREEN_XPT2046_320X480_SPI)\r
static struct xpt2046_platform_data xpt2046_info = {\r
.model = 2046,\r
.keep_vref_on = 1,\r
.gpio_pendown = XPT2046_GPIO_INT,\r
.penirq_recheck_delay_usecs = 1,\r
};\r
-#elif defined(CONFIG_TOUCHSCREEN_XPT2046_SPI) \r
+#elif defined(CONFIG_TOUCHSCREEN_XPT2046_SPI)\r
static struct xpt2046_platform_data xpt2046_info = {\r
.model = 2046,\r
.keep_vref_on = 1,\r
.debounce_rep = DEBOUNCE_REPTIME,\r
.debounce_tol = 20,\r
.gpio_pendown = XPT2046_GPIO_INT,\r
- \r
+\r
.penirq_recheck_delay_usecs = 1,\r
};\r
#elif defined(CONFIG_TOUCHSCREEN_XPT2046_CBN_SPI)\r
.debounce_rep = DEBOUNCE_REPTIME,\r
.debounce_tol = 20,\r
.gpio_pendown = XPT2046_GPIO_INT,\r
- \r
+\r
.penirq_recheck_delay_usecs = 1,\r
};\r
#endif\r
.platform_data = &xpt2046_info,\r
},\r
#endif\r
-}; \r
+};\r
\r
\r
static void __init rk29_gic_init_irq(void)\r
}\r
\r
static void __init machine_rk29_board_init(void)\r
-{ \r
+{\r
rk29_board_iomux_init();\r
- platform_add_devices(devices, ARRAY_SIZE(devices)); \r
+ platform_add_devices(devices, ARRAY_SIZE(devices));\r
#ifdef CONFIG_I2C0_RK29\r
i2c_register_board_info(default_i2c0_data.bus_num, board_i2c0_devices,\r
ARRAY_SIZE(board_i2c0_devices));\r