camera:add support deal camera
authorddl <ddl@rock-chips.com>
Wed, 1 Dec 2010 11:12:06 +0000 (19:12 +0800)
committerddl <ddl@rock-chips.com>
Wed, 1 Dec 2010 11:12:06 +0000 (19:12 +0800)
arch/arm/mach-rk29/board-rk29sdk.c
arch/arm/mach-rk29/devices.c

index 5e4919dfdabd8e330d7beb6e2a8d712885a6c705..bf92632420ce7821da8e517a94460e3c3d4b1660 100755 (executable)
@@ -368,7 +368,7 @@ static int rk29_i2c3_io_init(void)
        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
@@ -377,7 +377,7 @@ struct rk29_i2c_platform_data default_i2c0_data = {
        .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
@@ -386,7 +386,7 @@ struct rk29_i2c_platform_data default_i2c1_data = {
        .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
@@ -395,7 +395,7 @@ struct rk29_i2c_platform_data default_i2c2_data = {
        .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
@@ -480,7 +480,7 @@ static struct i2c_board_info __initdata board_i2c3_devices[] = {
  * 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
@@ -489,9 +489,9 @@ static struct i2c_board_info __initdata board_i2c3_devices[] = {
 #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
@@ -626,30 +626,55 @@ static int rk29_sensor_power(struct device *dev, int on)
     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
@@ -663,8 +688,8 @@ extern struct platform_device rk29_device_camera;
  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
@@ -682,17 +707,17 @@ extern struct platform_device rk29_device_camera;
 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
@@ -712,7 +737,7 @@ struct rk29_bl_info rk29_bl_info = {
     .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
@@ -805,7 +830,7 @@ struct platform_device rk29_device_gpu = {
 };\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
@@ -850,7 +875,7 @@ static void __init rk29_board_iomux_init(void)
 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
@@ -883,7 +908,7 @@ static struct platform_device *devices[] __initdata = {
 #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
@@ -904,8 +929,9 @@ static struct platform_device *devices[] __initdata = {
 #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
@@ -944,10 +970,10 @@ struct spi_cs_gpio rk29xx_spi1_cs_gpios[SPI_CHIPSELECT_NUM] = {
 };\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
@@ -960,7 +986,7 @@ static int spi_io_init(struct spi_cs_gpio *cs_gpios, int cs_num)
                                }\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
@@ -972,7 +998,7 @@ static int spi_io_deinit(struct spi_cs_gpio *cs_gpios, int cs_num)
 {\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
@@ -986,7 +1012,7 @@ static int spi_io_deinit(struct spi_cs_gpio *cs_gpios, int cs_num)
 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
@@ -1024,7 +1050,7 @@ struct rk29xx_spi_platform_data rk29xx_spi1_platdata = {
 #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
@@ -1054,7 +1080,7 @@ static struct xpt2046_platform_data xpt2046_info = {
        .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
@@ -1067,7 +1093,7 @@ static struct xpt2046_platform_data xpt2046_info = {
        .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
@@ -1083,7 +1109,7 @@ static struct xpt2046_platform_data xpt2046_info = {
        .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
@@ -1100,7 +1126,7 @@ static struct spi_board_info board_spi_devices[] = {
                .platform_data = &xpt2046_info,\r
        },\r
 #endif\r
-}; \r
+};\r
 \r
 \r
 static void __init rk29_gic_init_irq(void)\r
@@ -1117,9 +1143,9 @@ static void __init machine_rk29_init_irq(void)
 }\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
index 48f331140bc0bfa76f3ff1d9688108bf38f39702..6ef6d9c86d625bccffd34cc84c52494bdfadc5b4 100644 (file)
@@ -378,7 +378,6 @@ struct platform_device rk29xx_device_spi1m = {
 /* RK29 Camera :  ddl@rock-chips.com  */
 #ifdef CONFIG_VIDEO_RK29
 extern struct rk29camera_platform_data rk29_camera_platform_data;
-extern struct platform_device rk29_soc_camera_pdrv;
 
 static struct resource rk29_camera_resource[] = {
        [0] = {