mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 06:25:52 +02:00
rk2928: update rk2928_defconfig: camera: support: ov2659, gc0308, hi704
This commit is contained in:
parent
46a12b137e
commit
46a7341368
|
|
@ -251,6 +251,7 @@ CONFIG_GS_MMA7660=y
|
|||
CONFIG_GS_MMA8452=y
|
||||
CONFIG_SENSOR_DEVICE=y
|
||||
CONFIG_GSENSOR_DEVICE=y
|
||||
CONFIG_GS_KXTIK=y
|
||||
CONFIG_LIGHT_DEVICE=y
|
||||
CONFIG_LS_AP321XX=y
|
||||
CONFIG_PROXIMITY_DEVICE=y
|
||||
|
|
@ -287,8 +288,10 @@ CONFIG_RK30_PWM_REGULATOR=y
|
|||
CONFIG_MEDIA_SUPPORT=y
|
||||
CONFIG_VIDEO_DEV=y
|
||||
CONFIG_SOC_CAMERA=y
|
||||
CONFIG_SOC_CAMERA_OV2659=y
|
||||
CONFIG_SOC_CAMERA_GC0308=y
|
||||
CONFIG_GC0308_USER_DEFINED_SERIES=y
|
||||
CONFIG_SOC_CAMERA_HI704=y
|
||||
CONFIG_VIDEO_RK29=y
|
||||
CONFIG_VIDEO_RK29_CAMMEM_ION=y
|
||||
CONFIG_ION=y
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ enum {
|
|||
enum {
|
||||
DEF_SPKCTL_IO = 0x000003d4,
|
||||
};
|
||||
enum {
|
||||
DEF_RDA_I2C = 0,
|
||||
};
|
||||
/*************************************************************/
|
||||
|
||||
/* Android Parameter */
|
||||
|
|
@ -69,6 +72,13 @@ int check_mdm_sound_param(void)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
/* rda5990 */
|
||||
static int rda_i2c = DEF_RDA_I2C;
|
||||
module_param(rda_i2c, int, 0644);
|
||||
int check_rda_param(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_SC6610)
|
||||
static int sc6610_io_init(void)
|
||||
|
|
@ -204,6 +214,59 @@ static int __init mdm_sound_board_init(void)
|
|||
}
|
||||
|
||||
#endif
|
||||
#ifdef CONFIG_RDA5990
|
||||
#define RDA_WIFI_CORE_ADDR (0x13)
|
||||
#define RDA_WIFI_RF_ADDR (0x14) //correct add is 0x14
|
||||
#define RDA_BT_CORE_ADDR (0x15)
|
||||
#define RDA_BT_RF_ADDR (0x16)
|
||||
|
||||
#define RDA_WIFI_RF_I2C_DEVNAME "rda_wifi_rf_i2c"
|
||||
#define RDA_WIFI_CORE_I2C_DEVNAME "rda_wifi_core_i2c"
|
||||
#define RDA_BT_RF_I2C_DEVNAME "rda_bt_rf_i2c"
|
||||
#define RDA_BT_CORE_I2C_DEVNAME "rda_bt_core_i2c"
|
||||
static struct i2c_board_info __initdata rda_info[] = {
|
||||
{
|
||||
.type = RDA_WIFI_CORE_I2C_DEVNAME,
|
||||
.addr = RDA_WIFI_CORE_ADDR,
|
||||
.flags = 0,
|
||||
|
||||
},
|
||||
{
|
||||
.type = RDA_WIFI_RF_I2C_DEVNAME,
|
||||
.addr = RDA_WIFI_RF_ADDR,
|
||||
.flags = 0,
|
||||
|
||||
},
|
||||
{
|
||||
.type = RDA_BT_CORE_I2C_DEVNAME,
|
||||
.addr = RDA_BT_CORE_ADDR,
|
||||
.flags = 0,
|
||||
|
||||
},
|
||||
{
|
||||
.type = RDA_BT_RF_I2C_DEVNAME,
|
||||
.addr = RDA_BT_RF_ADDR,
|
||||
.flags = 0,
|
||||
|
||||
},
|
||||
};
|
||||
static int __init rda_board_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = check_rda_param();
|
||||
|
||||
if(ret < 0)
|
||||
return ret;
|
||||
i2c_register_board_info(rda_i2c, rda_info, ARRAY_SIZE(rda_info));
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
static int __init rda_board_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
static struct platform_device *phonepad_devices[] __initdata = {
|
||||
|
|
@ -222,6 +285,7 @@ static void __init phonepad_board_init(void)
|
|||
sc_board_init();
|
||||
hd_board_init();
|
||||
mdm_sound_board_init();
|
||||
rda_board_init();
|
||||
platform_add_devices(phonepad_devices, ARRAY_SIZE(phonepad_devices));
|
||||
}
|
||||
|
||||
|
|
|
|||
471
arch/arm/mach-rk2928/board-rk2928-camera.c
Executable file
471
arch/arm/mach-rk2928/board-rk2928-camera.c
Executable file
|
|
@ -0,0 +1,471 @@
|
|||
#include <mach/config.h>
|
||||
#ifdef CONFIG_VIDEO_RK29
|
||||
/*---------------- Camera Sensor Macro Define Begin ------------------------*/
|
||||
/*---------------- Camera Sensor Configuration Macro Begin ------------------------*/
|
||||
#define CONFIG_SENSOR_0 BACK_SENSOR_0 /* back camera sensor 0 */
|
||||
#define CONFIG_SENSOR_IIC_ADDR_0 BACK_SENSOR_0_ADDR
|
||||
#define CONFIG_SENSOR_IIC_ADAPTER_ID_0 0
|
||||
#define CONFIG_SENSOR_CIF_INDEX_0 0
|
||||
#define CONFIG_SENSOR_ORIENTATION_0 90
|
||||
#define CONFIG_SENSOR_POWER_PIN_0 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_RESET_PIN_0 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERDN_PIN_0 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_FALSH_PIN_0 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERACTIVE_LEVEL_0 RK29_CAM_POWERACTIVE_L
|
||||
#define CONFIG_SENSOR_RESETACTIVE_LEVEL_0 RK29_CAM_RESETACTIVE_L
|
||||
#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0 RK29_CAM_POWERDNACTIVE_H
|
||||
#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_0 RK29_CAM_FLASHACTIVE_L
|
||||
|
||||
#define CONFIG_SENSOR_QCIF_FPS_FIXED_0 15000
|
||||
#define CONFIG_SENSOR_240X160_FPS_FIXED_0 15000
|
||||
#define CONFIG_SENSOR_QVGA_FPS_FIXED_0 15000
|
||||
#define CONFIG_SENSOR_CIF_FPS_FIXED_0 15000
|
||||
#define CONFIG_SENSOR_VGA_FPS_FIXED_0 15000
|
||||
#define CONFIG_SENSOR_480P_FPS_FIXED_0 15000
|
||||
#define CONFIG_SENSOR_SVGA_FPS_FIXED_0 15000
|
||||
#define CONFIG_SENSOR_720P_FPS_FIXED_0 30000
|
||||
|
||||
#define CONFIG_SENSOR_01 BACK_SENSOR_1 /* back camera sensor 1 */
|
||||
#define CONFIG_SENSOR_IIC_ADDR_01 BACK_SENSOR_1_ADDR
|
||||
#define CONFIG_SENSOR_CIF_INDEX_01 0
|
||||
#define CONFIG_SENSOR_IIC_ADAPTER_ID_01 0
|
||||
#define CONFIG_SENSOR_ORIENTATION_01 90
|
||||
#define CONFIG_SENSOR_POWER_PIN_01 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_RESET_PIN_01 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERDN_PIN_01 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_FALSH_PIN_01 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERACTIVE_LEVEL_01 RK29_CAM_POWERACTIVE_L
|
||||
#define CONFIG_SENSOR_RESETACTIVE_LEVEL_01 RK29_CAM_RESETACTIVE_L
|
||||
#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_01 RK29_CAM_POWERDNACTIVE_H
|
||||
#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_01 RK29_CAM_FLASHACTIVE_L
|
||||
|
||||
#define CONFIG_SENSOR_QCIF_FPS_FIXED_01 15000
|
||||
#define CONFIG_SENSOR_240X160_FPS_FIXED_01 15000
|
||||
#define CONFIG_SENSOR_QVGA_FPS_FIXED_01 15000
|
||||
#define CONFIG_SENSOR_CIF_FPS_FIXED_01 15000
|
||||
#define CONFIG_SENSOR_VGA_FPS_FIXED_01 15000
|
||||
#define CONFIG_SENSOR_480P_FPS_FIXED_01 15000
|
||||
#define CONFIG_SENSOR_SVGA_FPS_FIXED_01 15000
|
||||
#define CONFIG_SENSOR_720P_FPS_FIXED_01 30000
|
||||
|
||||
#define CONFIG_SENSOR_02 BACK_SENSOR_2 /* back camera sensor 2 */
|
||||
#define CONFIG_SENSOR_IIC_ADDR_02 BACK_SENSOR_2_ADDR
|
||||
#define CONFIG_SENSOR_CIF_INDEX_02 0
|
||||
#define CONFIG_SENSOR_IIC_ADAPTER_ID_02 0
|
||||
#define CONFIG_SENSOR_ORIENTATION_02 90
|
||||
#define CONFIG_SENSOR_POWER_PIN_02 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_RESET_PIN_02 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERDN_PIN_02 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_FALSH_PIN_02 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERACTIVE_LEVEL_02 RK29_CAM_POWERACTIVE_L
|
||||
#define CONFIG_SENSOR_RESETACTIVE_LEVEL_02 RK29_CAM_RESETACTIVE_L
|
||||
#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_02 RK29_CAM_POWERDNACTIVE_H
|
||||
#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_02 RK29_CAM_FLASHACTIVE_L
|
||||
|
||||
#define CONFIG_SENSOR_QCIF_FPS_FIXED_02 15000
|
||||
#define CONFIG_SENSOR_240X160_FPS_FIXED_02 15000
|
||||
#define CONFIG_SENSOR_QVGA_FPS_FIXED_02 15000
|
||||
#define CONFIG_SENSOR_CIF_FPS_FIXED_02 15000
|
||||
#define CONFIG_SENSOR_VGA_FPS_FIXED_02 15000
|
||||
#define CONFIG_SENSOR_480P_FPS_FIXED_02 15000
|
||||
#define CONFIG_SENSOR_SVGA_FPS_FIXED_02 15000
|
||||
#define CONFIG_SENSOR_720P_FPS_FIXED_02 30000
|
||||
|
||||
#define CONFIG_SENSOR_1 FRONT_SENSOR_0 /* front camera sensor 0 */
|
||||
#define CONFIG_SENSOR_IIC_ADDR_1 FRONT_SENSOR_0_ADDR
|
||||
#define CONFIG_SENSOR_IIC_ADAPTER_ID_1 0
|
||||
#define CONFIG_SENSOR_CIF_INDEX_1 0
|
||||
#define CONFIG_SENSOR_ORIENTATION_1 270
|
||||
#define CONFIG_SENSOR_POWER_PIN_1 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_RESET_PIN_1 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERDN_PIN_1 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_FALSH_PIN_1 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERACTIVE_LEVEL_1 RK29_CAM_POWERACTIVE_L
|
||||
#define CONFIG_SENSOR_RESETACTIVE_LEVEL_1 RK29_CAM_RESETACTIVE_L
|
||||
#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1 RK29_CAM_POWERDNACTIVE_H
|
||||
#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_1 RK29_CAM_FLASHACTIVE_L
|
||||
|
||||
#define CONFIG_SENSOR_QCIF_FPS_FIXED_1 15000
|
||||
#define CONFIG_SENSOR_240X160_FPS_FIXED_1 15000
|
||||
#define CONFIG_SENSOR_QVGA_FPS_FIXED_1 15000
|
||||
#define CONFIG_SENSOR_CIF_FPS_FIXED_1 15000
|
||||
#define CONFIG_SENSOR_VGA_FPS_FIXED_1 15000
|
||||
#define CONFIG_SENSOR_480P_FPS_FIXED_1 15000
|
||||
#define CONFIG_SENSOR_SVGA_FPS_FIXED_1 15000
|
||||
#define CONFIG_SENSOR_720P_FPS_FIXED_1 30000
|
||||
|
||||
#define CONFIG_SENSOR_11 FRONT_SENSOR_1 /* front camera sensor 1 */
|
||||
#define CONFIG_SENSOR_IIC_ADDR_11 FRONT_SENSOR_1_ADDR
|
||||
#define CONFIG_SENSOR_IIC_ADAPTER_ID_11 0
|
||||
#define CONFIG_SENSOR_CIF_INDEX_11 0
|
||||
#define CONFIG_SENSOR_ORIENTATION_11 270
|
||||
#define CONFIG_SENSOR_POWER_PIN_11 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_RESET_PIN_11 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERDN_PIN_11 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_FALSH_PIN_11 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERACTIVE_LEVEL_11 RK29_CAM_POWERACTIVE_L
|
||||
#define CONFIG_SENSOR_RESETACTIVE_LEVEL_11 RK29_CAM_RESETACTIVE_L
|
||||
#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_11 RK29_CAM_POWERDNACTIVE_H
|
||||
#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_11 RK29_CAM_FLASHACTIVE_L
|
||||
|
||||
#define CONFIG_SENSOR_QCIF_FPS_FIXED_11 15000
|
||||
#define CONFIG_SENSOR_240X160_FPS_FIXED_11 15000
|
||||
#define CONFIG_SENSOR_QVGA_FPS_FIXED_11 15000
|
||||
#define CONFIG_SENSOR_CIF_FPS_FIXED_11 15000
|
||||
#define CONFIG_SENSOR_VGA_FPS_FIXED_11 15000
|
||||
#define CONFIG_SENSOR_480P_FPS_FIXED_11 15000
|
||||
#define CONFIG_SENSOR_SVGA_FPS_FIXED_11 15000
|
||||
#define CONFIG_SENSOR_720P_FPS_FIXED_11 30000
|
||||
|
||||
#define CONFIG_SENSOR_12 FRONT_SENSOR_2 /* front camera sensor 2 */
|
||||
#define CONFIG_SENSOR_IIC_ADDR_12 FRONT_SENSOR_2_ADDR
|
||||
#define CONFIG_SENSOR_IIC_ADAPTER_ID_12 0
|
||||
#define CONFIG_SENSOR_CIF_INDEX_12 0
|
||||
#define CONFIG_SENSOR_ORIENTATION_12 270
|
||||
#define CONFIG_SENSOR_POWER_PIN_12 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_RESET_PIN_12 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERDN_PIN_12 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_FALSH_PIN_12 INVALID_GPIO
|
||||
#define CONFIG_SENSOR_POWERACTIVE_LEVEL_12 RK29_CAM_POWERACTIVE_L
|
||||
#define CONFIG_SENSOR_RESETACTIVE_LEVEL_12 RK29_CAM_RESETACTIVE_L
|
||||
#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_12 RK29_CAM_POWERDNACTIVE_H
|
||||
#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_12 RK29_CAM_FLASHACTIVE_L
|
||||
|
||||
#define CONFIG_SENSOR_QCIF_FPS_FIXED_12 15000
|
||||
#define CONFIG_SENSOR_240X160_FPS_FIXED_12 15000
|
||||
#define CONFIG_SENSOR_QVGA_FPS_FIXED_12 15000
|
||||
#define CONFIG_SENSOR_CIF_FPS_FIXED_12 15000
|
||||
#define CONFIG_SENSOR_VGA_FPS_FIXED_12 15000
|
||||
#define CONFIG_SENSOR_480P_FPS_FIXED_12 15000
|
||||
#define CONFIG_SENSOR_SVGA_FPS_FIXED_12 15000
|
||||
#define CONFIG_SENSOR_720P_FPS_FIXED_12 30000
|
||||
|
||||
|
||||
#endif //#ifdef CONFIG_VIDEO_RK29
|
||||
/*---------------- Camera Sensor Configuration Macro End------------------------*/
|
||||
#include "../../../drivers/media/video/rk2928_camera.c"
|
||||
/*---------------- Camera Sensor Macro Define End ---------*/
|
||||
|
||||
#define PMEM_CAM_SIZE PMEM_CAM_NECESSARY
|
||||
/*****************************************************************************************
|
||||
* camera devices
|
||||
* author: ddl@rock-chips.com
|
||||
*****************************************************************************************/
|
||||
#ifdef CONFIG_VIDEO_RK29
|
||||
#define CONFIG_SENSOR_POWER_IOCTL_USR 0 //define this refer to your board layout
|
||||
#define CONFIG_SENSOR_RESET_IOCTL_USR 0
|
||||
#define CONFIG_SENSOR_POWERDOWN_IOCTL_USR 0
|
||||
#define CONFIG_SENSOR_FLASH_IOCTL_USR 0
|
||||
|
||||
static void rk_cif_power(int on)
|
||||
{
|
||||
struct regulator *ldo_18,*ldo_28;
|
||||
ldo_28 = regulator_get(NULL, "ldo7"); // vcc28_cif
|
||||
ldo_18 = regulator_get(NULL, "ldo1"); // vcc18_cif
|
||||
if (ldo_28 == NULL || IS_ERR(ldo_28) || ldo_18 == NULL || IS_ERR(ldo_18)){
|
||||
printk("get cif ldo failed!\n");
|
||||
return;
|
||||
}
|
||||
if(on == 0){
|
||||
regulator_disable(ldo_28);
|
||||
regulator_put(ldo_28);
|
||||
regulator_disable(ldo_18);
|
||||
regulator_put(ldo_18);
|
||||
mdelay(500);
|
||||
}
|
||||
else{
|
||||
regulator_set_voltage(ldo_28, 2800000, 2800000);
|
||||
regulator_enable(ldo_28);
|
||||
// printk("%s set ldo7 vcc28_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_28));
|
||||
regulator_put(ldo_28);
|
||||
|
||||
regulator_set_voltage(ldo_18, 1800000, 1800000);
|
||||
// regulator_set_suspend_voltage(ldo, 1800000);
|
||||
regulator_enable(ldo_18);
|
||||
// printk("%s set ldo1 vcc18_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_18));
|
||||
regulator_put(ldo_18);
|
||||
}
|
||||
}
|
||||
|
||||
#if CONFIG_SENSOR_POWER_IOCTL_USR
|
||||
static int sensor_power_usr_cb (struct rk29camera_gpio_res *res,int on)
|
||||
{
|
||||
//#error "CONFIG_SENSOR_POWER_IOCTL_USR is 1, sensor_power_usr_cb function must be writed!!";
|
||||
rk_cif_power(on);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_SENSOR_RESET_IOCTL_USR
|
||||
static int sensor_reset_usr_cb (struct rk29camera_gpio_res *res,int on)
|
||||
{
|
||||
#error "CONFIG_SENSOR_RESET_IOCTL_USR is 1, sensor_reset_usr_cb function must be writed!!";
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_SENSOR_POWERDOWN_IOCTL_USR
|
||||
static int sensor_powerdown_usr_cb (struct rk29camera_gpio_res *res,int on)
|
||||
{
|
||||
#error "CONFIG_SENSOR_POWERDOWN_IOCTL_USR is 1, sensor_powerdown_usr_cb function must be writed!!";
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_SENSOR_FLASH_IOCTL_USR
|
||||
static int sensor_flash_usr_cb (struct rk29camera_gpio_res *res,int on)
|
||||
{
|
||||
#error "CONFIG_SENSOR_FLASH_IOCTL_USR is 1, sensor_flash_usr_cb function must be writed!!";
|
||||
}
|
||||
#endif
|
||||
|
||||
static struct rk29camera_platform_ioctl_cb sensor_ioctl_cb = {
|
||||
#if CONFIG_SENSOR_POWER_IOCTL_USR
|
||||
.sensor_power_cb = sensor_power_usr_cb,
|
||||
#else
|
||||
.sensor_power_cb = NULL,
|
||||
#endif
|
||||
|
||||
#if CONFIG_SENSOR_RESET_IOCTL_USR
|
||||
.sensor_reset_cb = sensor_reset_usr_cb,
|
||||
#else
|
||||
.sensor_reset_cb = NULL,
|
||||
#endif
|
||||
|
||||
#if CONFIG_SENSOR_POWERDOWN_IOCTL_USR
|
||||
.sensor_powerdown_cb = sensor_powerdown_usr_cb,
|
||||
#else
|
||||
.sensor_powerdown_cb = NULL,
|
||||
#endif
|
||||
|
||||
#if CONFIG_SENSOR_FLASH_IOCTL_USR
|
||||
.sensor_flash_cb = sensor_flash_usr_cb,
|
||||
#else
|
||||
.sensor_flash_cb = NULL,
|
||||
#endif
|
||||
};
|
||||
|
||||
#if CONFIG_SENSOR_IIC_ADDR_0
|
||||
static struct reginfo_t rk_init_data_sensor_reg_0[] =
|
||||
{
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
static struct reginfo_t rk_init_data_sensor_winseqreg_0[] ={
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
#endif
|
||||
|
||||
#if CONFIG_SENSOR_IIC_ADDR_1
|
||||
static struct reginfo_t rk_init_data_sensor_reg_1[] =
|
||||
{
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
static struct reginfo_t rk_init_data_sensor_winseqreg_1[] =
|
||||
{
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
#endif
|
||||
#if CONFIG_SENSOR_IIC_ADDR_01
|
||||
static struct reginfo_t rk_init_data_sensor_reg_01[] =
|
||||
{
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
static struct reginfo_t rk_init_data_sensor_winseqreg_01[] =
|
||||
{
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
#endif
|
||||
#if CONFIG_SENSOR_IIC_ADDR_02
|
||||
static struct reginfo_t rk_init_data_sensor_reg_02[] =
|
||||
{
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
static struct reginfo_t rk_init_data_sensor_winseqreg_02[] =
|
||||
{
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
#endif
|
||||
#if CONFIG_SENSOR_IIC_ADDR_11
|
||||
static struct reginfo_t rk_init_data_sensor_reg_11[] =
|
||||
{
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
static struct reginfo_t rk_init_data_sensor_winseqreg_11[] =
|
||||
{
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
#endif
|
||||
#if CONFIG_SENSOR_IIC_ADDR_12
|
||||
static struct reginfo_t rk_init_data_sensor_reg_12[] =
|
||||
{
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
static struct reginfo_t rk_init_data_sensor_winseqreg_12[] =
|
||||
{
|
||||
{0x0000, 0x00,0,0}
|
||||
};
|
||||
#endif
|
||||
static rk_sensor_user_init_data_s rk_init_data_sensor[RK_CAM_NUM] =
|
||||
{
|
||||
#if CONFIG_SENSOR_IIC_ADDR_0
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = rk_init_data_sensor_reg_0,
|
||||
.rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_0,
|
||||
.rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_0) / sizeof(struct reginfo_t),
|
||||
.rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_0) / sizeof(struct reginfo_t),
|
||||
},
|
||||
#else
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = NULL,
|
||||
.rk_sensor_init_winseq = NULL,
|
||||
.rk_sensor_winseq_size = 0,
|
||||
.rk_sensor_init_data_size = 0,
|
||||
},
|
||||
#endif
|
||||
#if CONFIG_SENSOR_IIC_ADDR_1
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = rk_init_data_sensor_reg_1,
|
||||
.rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_1,
|
||||
.rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_1) / sizeof(struct reginfo_t),
|
||||
.rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_1) / sizeof(struct reginfo_t),
|
||||
},
|
||||
#else
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = NULL,
|
||||
.rk_sensor_init_winseq = NULL,
|
||||
.rk_sensor_winseq_size = 0,
|
||||
.rk_sensor_init_data_size = 0,
|
||||
},
|
||||
#endif
|
||||
#if CONFIG_SENSOR_IIC_ADDR_01
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = rk_init_data_sensor_reg_01,
|
||||
.rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_01,
|
||||
.rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_01) / sizeof(struct reginfo_t),
|
||||
.rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_01) / sizeof(struct reginfo_t),
|
||||
},
|
||||
#else
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = NULL,
|
||||
.rk_sensor_init_winseq = NULL,
|
||||
.rk_sensor_winseq_size = 0,
|
||||
.rk_sensor_init_data_size = 0,
|
||||
},
|
||||
#endif
|
||||
#if CONFIG_SENSOR_IIC_ADDR_02
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = rk_init_data_sensor_reg_02,
|
||||
.rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_02,
|
||||
.rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_02) / sizeof(struct reginfo_t),
|
||||
.rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_02) / sizeof(struct reginfo_t),
|
||||
},
|
||||
#else
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = NULL,
|
||||
.rk_sensor_init_winseq = NULL,
|
||||
.rk_sensor_winseq_size = 0,
|
||||
.rk_sensor_init_data_size = 0,
|
||||
},
|
||||
#endif
|
||||
#if CONFIG_SENSOR_IIC_ADDR_11
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = rk_init_data_sensor_reg_11,
|
||||
.rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_11,
|
||||
.rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_11) / sizeof(struct reginfo_t),
|
||||
.rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_11) / sizeof(struct reginfo_t),
|
||||
},
|
||||
#else
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = NULL,
|
||||
.rk_sensor_init_winseq = NULL,
|
||||
.rk_sensor_winseq_size = 0,
|
||||
.rk_sensor_init_data_size = 0,
|
||||
},
|
||||
#endif
|
||||
#if CONFIG_SENSOR_IIC_ADDR_12
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = rk_init_data_sensor_reg_12,
|
||||
.rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_12,
|
||||
.rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_12) / sizeof(struct reginfo_t),
|
||||
.rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_12) / sizeof(struct reginfo_t),
|
||||
},
|
||||
#else
|
||||
{
|
||||
.rk_sensor_init_width = INVALID_VALUE,
|
||||
.rk_sensor_init_height = INVALID_VALUE,
|
||||
.rk_sensor_init_bus_param = INVALID_VALUE,
|
||||
.rk_sensor_init_pixelcode = INVALID_VALUE,
|
||||
.rk_sensor_init_data = NULL,
|
||||
.rk_sensor_init_winseq = NULL,
|
||||
.rk_sensor_winseq_size = 0,
|
||||
.rk_sensor_init_data_size = 0,
|
||||
},
|
||||
#endif
|
||||
|
||||
};
|
||||
#include "../../../drivers/media/video/rk2928_camera.c"
|
||||
|
||||
#endif /* CONFIG_VIDEO_RK29 */
|
||||
#ifdef CONFIG_RK_CONFIG
|
||||
static int __init cam_board_init(void)
|
||||
{
|
||||
int ret = check_cam_param();
|
||||
|
||||
if(ret < 0)
|
||||
return ret;
|
||||
|
||||
camera_set_platform_param(back_cam_id,back_cam_i2c,get_port_config(back_cam_pwr).gpio);
|
||||
camera_set_platform_param(front_cam_id,front_cam_i2c,get_port_config(front_cam_pwr).gpio);
|
||||
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
static int __init cam_board_init(void)
|
||||
{
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
@ -37,6 +37,35 @@ static struct pwm_io_config pwm_cfg[] = {
|
|||
},
|
||||
};
|
||||
|
||||
#define TPS65910_HOST_IRQ INVALID_GPIO
|
||||
static struct pmu_info tps65910_dcdc_info[] = {
|
||||
{.name = "vdd_cpu"},
|
||||
{.name = "vdd2"},
|
||||
{.name = "vdd3"},
|
||||
{.name = "vio"},
|
||||
};
|
||||
static struct pmu_info tps65910_ldo_info[] = {
|
||||
{.name = "vdig1"},
|
||||
{.name = "vdig2"},
|
||||
{.name = "vaux1"},
|
||||
{.name = "vaux2"},
|
||||
{.name = "vaux33"},
|
||||
{.name = "vmmc"},
|
||||
{.name = "vdac"},
|
||||
{.name = "vpll"},
|
||||
};
|
||||
static struct pmu_info act8931_dcdc_info[] = {
|
||||
{.name = "act_dcdc1"},
|
||||
{.name = "act_dcdc2"},
|
||||
{.name = "vdd_cpu"},
|
||||
};
|
||||
static struct pmu_info act8931_ldo_info[] = {
|
||||
{.name = "act_ldo1"},
|
||||
{.name = "act_ldo2"},
|
||||
{.name = "act_ldo3"},
|
||||
{.name = "act_ldo4"},
|
||||
};
|
||||
|
||||
/*************************************** parameter ******************************************/
|
||||
/* keyboard */
|
||||
uint key_adc = DEF_KEY_ADC;
|
||||
|
|
@ -223,6 +252,25 @@ static inline int check_ps_param(void)
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
/* camera */
|
||||
static int front_cam_i2c = DEF_FRONT_CAM_I2C;
|
||||
module_param(front_cam_i2c, int, 0644);
|
||||
static int front_cam_id = DEF_FRONT_CAM_ID;
|
||||
module_param(front_cam_id, uint, 0644);
|
||||
static int front_cam_pwr = DEF_FRONT_CAM_PWR;
|
||||
module_param(front_cam_pwr, int, 0644);
|
||||
|
||||
static int back_cam_i2c = DEF_BACK_CAM_I2C;
|
||||
module_param(back_cam_i2c, int, 0644);
|
||||
static int back_cam_id = DEF_BACK_CAM_ID;
|
||||
module_param(back_cam_id, uint, 0644);
|
||||
static int back_cam_pwr = DEF_BACK_CAM_PWR;
|
||||
module_param(back_cam_pwr, int, 0644);
|
||||
|
||||
static inline int check_cam_param(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* pwm regulator */
|
||||
static int __sramdata reg_pwm = DEF_REG_PWM;
|
||||
|
|
@ -249,6 +297,16 @@ module_param(pmic_i2c, int, 0644);
|
|||
static int pmic_addr = DEF_PMIC_ADDR;
|
||||
module_param(pmic_addr, int, 0644);
|
||||
|
||||
static int tps65910_dcdc[] = DEF_TPS65910_DCDC;
|
||||
module_param_array(tps65910_dcdc, int, NULL, 0644);
|
||||
static int tps65910_ldo[] = DEF_TPS65910_LDO;
|
||||
module_param_array(tps65910_ldo, int, NULL, 0644);
|
||||
|
||||
static int act8931_dcdc[] = DEF_ACT8931_DCDC;
|
||||
module_param_array(act8931_dcdc, int, NULL, 0644);
|
||||
static int act8931_ldo[] = DEF_ACT8931_LDO;
|
||||
module_param_array(act8931_ldo, int, NULL, 0644);
|
||||
|
||||
static inline int check_pmic_param(void)
|
||||
{
|
||||
if(pmic_type <= PMIC_TYPE_WM8326 || pmic_type >= PMIC_TYPE_MAX){
|
||||
|
|
@ -268,6 +326,54 @@ static inline int check_pmic_param(void)
|
|||
|
||||
return 0;
|
||||
}
|
||||
int pmic_dcdc_set(int index, int on)
|
||||
{
|
||||
struct regulator *dcdc = NULL;
|
||||
|
||||
if(index < 0)
|
||||
return -EINVAL;
|
||||
|
||||
if(pmic_is_tps65910()) {
|
||||
dcdc = regulator_get(NULL, tps65910_dcdc_info[index].name);
|
||||
}
|
||||
if(pmic_is_act8931()) {
|
||||
dcdc = regulator_get(NULL, act8931_dcdc_info[index].name);
|
||||
}
|
||||
if(IS_ERR_OR_NULL(dcdc))
|
||||
return -EINVAL;
|
||||
if(on)
|
||||
regulator_enable(dcdc);
|
||||
else
|
||||
regulator_disable(dcdc);
|
||||
regulator_put(dcdc);
|
||||
return 0;
|
||||
|
||||
}
|
||||
EXPORT_SYNBOL(pmic_dcdc_set);
|
||||
int pmic_ldo_set(int index, int on)
|
||||
{
|
||||
struct regulator *ldo = NULL;
|
||||
|
||||
if(index < 0)
|
||||
return -EINVAL;
|
||||
|
||||
if(pmic_is_tps65910()) {
|
||||
ldo = regulator_get(NULL, tps65910_ldo_info[index].name);
|
||||
}
|
||||
if(pmic_is_act8931()) {
|
||||
ldo = regulator_get(NULL, act8931_ldo_info[index].name);
|
||||
}
|
||||
if(IS_ERR_OR_NULL(ldo))
|
||||
return -EINVAL;
|
||||
if(on)
|
||||
regulator_enable(ldo);
|
||||
else
|
||||
regulator_disable(ldo);
|
||||
regulator_put(ldo);
|
||||
return 0;
|
||||
|
||||
}
|
||||
EXPORT_SYNBOL(pmic_ldo_set);
|
||||
/* ion */
|
||||
static uint ion_size = DEF_ION_SIZE;
|
||||
module_param(ion_size, uint, 0644);
|
||||
|
|
@ -299,6 +405,8 @@ static int wifi_pwr = DEF_WIFI_PWR;
|
|||
module_param(wifi_pwr, int, 0644);
|
||||
static uint wifi_type = DEF_WIFI_TYPE;
|
||||
module_param(wifi_type, uint, 0644);
|
||||
static int wifi_ldo = DEF_WIFI_LDO;
|
||||
module_param(wifi_ldo, int, 0644);
|
||||
static inline int check_wifi_param(void)
|
||||
{
|
||||
if(wifi_type != WIFI_NONE){
|
||||
|
|
@ -400,6 +508,8 @@ module_param_array(dvfs_ddr, uint, &dvfs_ddr_num, 0400);
|
|||
|
||||
|
||||
/* global */
|
||||
static int is_phonepad = DEF_IS_PHONEPAD;
|
||||
module_param(is_phonepad, int, 0644);
|
||||
static int pwr_on = DEF_PWR_ON;
|
||||
module_param(pwr_on, int, 0644);
|
||||
|
||||
|
|
@ -412,3 +522,4 @@ static inline void rk2928_power_off(void)
|
|||
port_output_off(pwr_on);
|
||||
port_deinit(pwr_on);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,21 +29,26 @@ static int act8931_set_init(struct act8931 *act8931)
|
|||
|
||||
for(i = 0; i < ARRAY_SIZE(act8931_dcdc_info); i++)
|
||||
{
|
||||
dcdc =regulator_get(NULL, act8931_dcdc_info[i].name);
|
||||
regulator_set_voltage(dcdc, act8931_dcdc_info[i].min_uv, act8931_dcdc_info[i].max_uv);
|
||||
regulator_enable(dcdc);
|
||||
printk("%s %s =%dmV end\n", __func__,act8931_dcdc_info[i].name, regulator_get_voltage(dcdc));
|
||||
regulator_put(dcdc);
|
||||
udelay(100);
|
||||
|
||||
if(act8931_dcdc_info[i].min_uv == 0 && act8931_dcdc_info[i].max_uv == 0)
|
||||
continue;
|
||||
dcdc =regulator_get(NULL, act8931_dcdc_info[i].name);
|
||||
regulator_set_voltage(dcdc, act8931_dcdc_info[i].min_uv, act8931_dcdc_info[i].max_uv);
|
||||
regulator_enable(dcdc);
|
||||
printk("%s %s =%dmV end\n", __func__,act8931_dcdc_info[i].name, regulator_get_voltage(dcdc));
|
||||
regulator_put(dcdc);
|
||||
udelay(100);
|
||||
}
|
||||
|
||||
for(i = 0; i < ARRAY_SIZE(act8931_ldo_info); i++)
|
||||
{
|
||||
ldo =regulator_get(NULL, act8931_ldo_info[i].name);
|
||||
regulator_set_voltage(ldo, act8931_ldo_info[i].min_uv, act8931_ldo_info[i].max_uv);
|
||||
regulator_enable(ldo);
|
||||
//printk("%s %s =%dmV end\n", __func__,act8931_ldo_info[i].name, regulator_get_voltage(ldo));
|
||||
regulator_put(ldo);
|
||||
if(act8931_ldo_info[i].min_uv == 0 && act8931_ldo_info[i].max_uv == 0)
|
||||
continue;
|
||||
ldo =regulator_get(NULL, act8931_ldo_info[i].name);
|
||||
regulator_set_voltage(ldo, act8931_ldo_info[i].min_uv, act8931_ldo_info[i].max_uv);
|
||||
regulator_enable(ldo);
|
||||
printk("%s %s =%dmV end\n", __func__,act8931_ldo_info[i].name, regulator_get_voltage(ldo));
|
||||
regulator_put(ldo);
|
||||
}
|
||||
|
||||
printk("%s,line=%d END\n", __func__,__LINE__);
|
||||
|
|
|
|||
|
|
@ -71,11 +71,22 @@ static void rk29_sdmmc_gpio_open(int device_id, int on)
|
|||
#ifdef CONFIG_SDMMC1_RK29
|
||||
if(on)
|
||||
{
|
||||
gpio_request(RK2928_PIN0_PB1, "mmc1-clk");
|
||||
gpio_direction_output(RK2928_PIN0_PB1,GPIO_HIGH);//set mmc1-clk to high
|
||||
|
||||
gpio_request(RK2928_PIN0_PB0, "mmc1-cmd");
|
||||
gpio_direction_output(RK2928_PIN0_PB0,GPIO_HIGH);//set mmc1-cmd to high.
|
||||
|
||||
gpio_request(RK2928_PIN0_PB3, "mmc1-data0");
|
||||
gpio_direction_output(RK2928_PIN0_PB3,GPIO_HIGH);//set mmc1-data0 to high.
|
||||
|
||||
gpio_request(RK2928_PIN0_PB4, "mmc1-data1");
|
||||
gpio_direction_output(RK2928_PIN0_PB4,GPIO_HIGH);//set mmc1-data1 to high.
|
||||
|
||||
gpio_request(RK2928_PIN0_PB5, "mmc1-data2");
|
||||
gpio_direction_output(RK2928_PIN0_PB5,GPIO_HIGH);//set mmc1-data2 to high.
|
||||
|
||||
gpio_request(RK2928_PIN0_PB6, "mmc1-data3");
|
||||
gpio_direction_output(RK2928_PIN0_PB6,GPIO_HIGH);//set mmc1-data3 to high.
|
||||
mdelay(100);
|
||||
}
|
||||
|
|
@ -93,6 +104,22 @@ static void rk29_sdmmc_gpio_open(int device_id, int on)
|
|||
gpio_request(RK2928_PIN0_PB3, "mmc1-data0");
|
||||
gpio_direction_output(RK2928_PIN0_PB3,GPIO_LOW);//set mmc1-data0 to low.
|
||||
|
||||
#if defined(CONFIG_SDMMC1_RK29) && !defined(CONFIG_SDMMC_RK29_OLD)
|
||||
rk29_mux_api_set(GPIO0B4_MMC1_D1_NAME, GPIO0B_GPIO0B4);
|
||||
gpio_request(RK2928_PIN0_PB4, "mmc1-data1");
|
||||
gpio_direction_output(RK2928_PIN0_PB4,GPIO_LOW);//set mmc1-data1 to low.
|
||||
|
||||
rk29_mux_api_set(GPIO0B5_MMC1_D2_NAME, GPIO0B_GPIO0B5);
|
||||
gpio_request(RK2928_PIN0_PB5, "mmc1-data2");
|
||||
gpio_direction_output(RK2928_PIN0_PB5,GPIO_LOW);//set mmc1-data2 to low.
|
||||
|
||||
rk29_mux_api_set(GPIO0B6_MMC1_D3_NAME, GPIO0B_GPIO0B6);
|
||||
gpio_request(RK2928_PIN0_PB6, "mmc1-data3");
|
||||
gpio_direction_output(RK2928_PIN0_PB6,GPIO_LOW);//set mmc1-data3 to low.
|
||||
|
||||
//rk29_sdmmc_gpio_open(1, 0); //added by xbw at 2011-10-13
|
||||
#endif
|
||||
|
||||
mdelay(100);
|
||||
}
|
||||
#endif
|
||||
|
|
@ -349,7 +376,7 @@ static int __init rk29sdk_wifi_bt_gpio_control_init(void)
|
|||
gpio_direction_output(RK30SDK_WIFI_GPIO_RESET_N, !RK30SDK_WIFI_GPIO_RESET_ENABLE_VALUE);
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SDMMC1_RK29) && !defined(CONFIG_SDMMC_RK29_OLD)
|
||||
#if 0//defined(CONFIG_SDMMC1_RK29) && !defined(CONFIG_SDMMC_RK29_OLD)
|
||||
|
||||
rk29_mux_api_set(GPIO0B4_MMC1_D1_NAME, GPIO0B_GPIO0B4);
|
||||
gpio_request(RK2928_PIN0_PB4, "mmc1-data1");
|
||||
|
|
@ -376,10 +403,10 @@ int rk29sdk_wifi_power(int on)
|
|||
{
|
||||
pr_info("%s: %d\n", __func__, on);
|
||||
if (on){
|
||||
if(usbwifi_power_status == 1) {
|
||||
/*if(usbwifi_power_status == 1) {
|
||||
rkusb_wifi_power(0);
|
||||
mdelay(50);
|
||||
}
|
||||
}*/
|
||||
rkusb_wifi_power(1);
|
||||
usbwifi_power_status = 1;
|
||||
pr_info("wifi turn on power\n");
|
||||
|
|
|
|||
|
|
@ -264,21 +264,25 @@ int tps65910_post_init(struct tps65910 *tps65910)
|
|||
|
||||
for(i = 0; i < ARRAY_SIZE(tps65910_dcdc_info); i++)
|
||||
{
|
||||
dcdc =regulator_get(NULL, tps65910_dcdc_info[i].name);
|
||||
regulator_set_voltage(dcdc, tps65910_dcdc_info[i].min_uv, tps65910_dcdc_info[i].max_uv);
|
||||
regulator_enable(dcdc);
|
||||
printk("%s %s =%dmV end\n", __func__,tps65910_dcdc_info[i].name, regulator_get_voltage(dcdc));
|
||||
regulator_put(dcdc);
|
||||
udelay(100);
|
||||
if(tps65910_dcdc_info[i].min_uv == 0 && tps65910_dcdc_info[i].max_uv == 0)
|
||||
continue;
|
||||
dcdc =regulator_get(NULL, tps65910_dcdc_info[i].name);
|
||||
regulator_set_voltage(dcdc, tps65910_dcdc_info[i].min_uv, tps65910_dcdc_info[i].max_uv);
|
||||
regulator_enable(dcdc);
|
||||
printk("%s %s =%dmV end\n", __func__,tps65910_dcdc_info[i].name, regulator_get_voltage(dcdc));
|
||||
regulator_put(dcdc);
|
||||
udelay(100);
|
||||
}
|
||||
|
||||
for(i = 0; i < ARRAY_SIZE(tps65910_ldo_info); i++)
|
||||
{
|
||||
ldo =regulator_get(NULL, tps65910_ldo_info[i].name);
|
||||
regulator_set_voltage(ldo, tps65910_ldo_info[i].min_uv, tps65910_ldo_info[i].max_uv);
|
||||
regulator_enable(ldo);
|
||||
//printk("%s %s =%dmV end\n", __func__,tps65910_dcdc_info[i].name, regulator_get_voltage(ldo));
|
||||
regulator_put(ldo);
|
||||
if(tps65910_ldo_info[i].min_uv == 0 && tps65910_ldo_info[i].max_uv == 0)
|
||||
continue;
|
||||
ldo =regulator_get(NULL, tps65910_ldo_info[i].name);
|
||||
regulator_set_voltage(ldo, tps65910_ldo_info[i].min_uv, tps65910_ldo_info[i].max_uv);
|
||||
regulator_enable(ldo);
|
||||
printk("%s %s =%dmV end\n", __func__,tps65910_ldo_info[i].name, regulator_get_voltage(ldo));
|
||||
regulator_put(ldo);
|
||||
}
|
||||
|
||||
printk("%s,line=%d END\n", __func__,__LINE__);
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
#include "../../../drivers/spi/rk29_spim.h"
|
||||
#endif
|
||||
|
||||
#include "board-rk2928-sdk-camera.c"
|
||||
#include "board-rk2928-camera.c"
|
||||
#include "board-rk2928-key.c"
|
||||
|
||||
|
||||
|
|
@ -119,7 +119,10 @@ static int rk29_backlight_pwm_suspend(void)
|
|||
|
||||
rk30_mux_api_set(cfg->mux_name, cfg->io_mode);
|
||||
|
||||
gpio_direction_output(cfg->gpio, GPIO_HIGH);
|
||||
if(bl_ref)
|
||||
gpio_direction_output(cfg->gpio, GPIO_LOW);
|
||||
else
|
||||
gpio_direction_output(cfg->gpio, GPIO_HIGH);
|
||||
|
||||
port_output_off(bl_en);
|
||||
|
||||
|
|
@ -178,7 +181,7 @@ static int rk_fb_io_init(struct rk29_fb_setting_info *fb_setting)
|
|||
int ret = 0;
|
||||
|
||||
if(lcd_cabc != -1){
|
||||
ret = port_output_init(lcd_en, 0, "lcd_cabc");
|
||||
ret = port_output_init(lcd_cabc, 0, "lcd_cabc");
|
||||
if(ret < 0)
|
||||
printk("%s: port output init faild\n", __func__);
|
||||
}
|
||||
|
|
@ -394,31 +397,9 @@ static int __init pwm_reg_board_init(void)
|
|||
************************************************************/
|
||||
#if defined(CONFIG_RTL8192CU) || defined(CONFIG_RTL8188EU)
|
||||
static void rkusb_wifi_power(int on) {
|
||||
struct regulator *ldo = NULL;
|
||||
|
||||
#ifndef RK2926_TB_DEFAULT_CONFIG
|
||||
#if defined(CONFIG_MFD_TPS65910)
|
||||
if(pmic_is_tps65910()) {
|
||||
ldo = regulator_get(NULL, "vmmc"); //vccio_wl
|
||||
}
|
||||
#endif
|
||||
#if defined(CONFIG_REGULATOR_ACT8931)
|
||||
if(pmic_is_act8931()) {
|
||||
ldo = regulator_get(NULL, "act_ldo4"); //vccio_wl
|
||||
}
|
||||
#endif
|
||||
|
||||
if(on) {
|
||||
regulator_enable(ldo);
|
||||
printk("%s: vccio_wl enable\n", __func__);
|
||||
} else {
|
||||
printk("%s: vccio_wl disable\n", __func__);
|
||||
regulator_disable(ldo);
|
||||
}
|
||||
|
||||
regulator_put(ldo);
|
||||
|
||||
pmic_ldo_set(wifi_ldo, on);
|
||||
udelay(100);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -526,6 +507,81 @@ static int __init sdmmc_board_init(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SDMMC1_RK29
|
||||
#define CONFIG_SDMMC1_USE_DMA
|
||||
static int rk29_sdmmc1_cfg_gpio(void)
|
||||
{
|
||||
#if defined(CONFIG_SDMMC_RK29_OLD)
|
||||
rk30_mux_api_set(GPIO0B0_MMC1_CMD_NAME, GPIO0B_MMC1_CMD);
|
||||
rk30_mux_api_set(GPIO0B1_MMC1_CLKOUT_NAME, GPIO0B_MMC1_CLKOUT);
|
||||
rk30_mux_api_set(GPIO0B3_MMC1_D0_NAME, GPIO0B_MMC1_D0);
|
||||
rk30_mux_api_set(GPIO0B4_MMC1_D1_NAME, GPIO0B_MMC1_D1);
|
||||
rk30_mux_api_set(GPIO0B5_MMC1_D2_NAME, GPIO0B_MMC1_D2);
|
||||
rk30_mux_api_set(GPIO0B6_MMC1_D3_NAME, GPIO0B_MMC1_D3);
|
||||
//rk30_mux_api_set(GPIO0B2_MMC1_DETN_NAME, GPIO0B_MMC1_DETN);
|
||||
|
||||
#else
|
||||
|
||||
#if defined(CONFIG_SDMMC1_RK29_WRITE_PROTECT)
|
||||
gpio_request(SDMMC1_WRITE_PROTECT_PIN, "sdio-wp");
|
||||
gpio_direction_input(SDMMC1_WRITE_PROTECT_PIN);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct rk29_sdmmc_platform_data default_sdmmc1_data = {
|
||||
.host_ocr_avail =
|
||||
(MMC_VDD_25_26 | MMC_VDD_26_27 | MMC_VDD_27_28 | MMC_VDD_28_29 |
|
||||
MMC_VDD_29_30 | MMC_VDD_30_31 | MMC_VDD_31_32 | MMC_VDD_32_33 |
|
||||
MMC_VDD_33_34),
|
||||
|
||||
#if !defined(CONFIG_USE_SDMMC1_FOR_WIFI_DEVELOP_BOARD)
|
||||
.host_caps = (MMC_CAP_4_BIT_DATA | MMC_CAP_SDIO_IRQ |
|
||||
MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED),
|
||||
#else
|
||||
.host_caps =
|
||||
(MMC_CAP_4_BIT_DATA | MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED),
|
||||
#endif
|
||||
|
||||
.io_init = rk29_sdmmc1_cfg_gpio,
|
||||
|
||||
#if !defined(CONFIG_SDMMC_RK29_OLD)
|
||||
.set_iomux = rk29_sdmmc_set_iomux,
|
||||
#endif
|
||||
|
||||
.dma_name = "sdio",
|
||||
#ifdef CONFIG_SDMMC1_USE_DMA
|
||||
.use_dma = 1,
|
||||
#else
|
||||
.use_dma = 0,
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_USE_SDMMC1_FOR_WIFI_DEVELOP_BOARD)
|
||||
#ifdef CONFIG_WIFI_CONTROL_FUNC
|
||||
.status = rk29sdk_wifi_status,
|
||||
.register_status_notify = rk29sdk_wifi_status_register,
|
||||
#endif
|
||||
#if 1
|
||||
.detect_irq = INVALID_GPIO,//RK29SDK_WIFI_SDIO_CARD_DETECT_N,
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SDMMC1_RK29_WRITE_PROTECT)
|
||||
.write_prt = SDMMC1_WRITE_PROTECT_PIN,
|
||||
#else
|
||||
.write_prt = INVALID_GPIO,
|
||||
#endif
|
||||
|
||||
#else
|
||||
.detect_irq = INVALID_GPIO,
|
||||
.enable_sd_wakeup = 0,
|
||||
#endif
|
||||
|
||||
};
|
||||
#endif //endif--#ifdef CONFIG_SDMMC1_RK29
|
||||
|
||||
#ifdef CONFIG_SND_SOC_RK2928
|
||||
static struct resource resources_acodec[] = {
|
||||
{
|
||||
|
|
@ -657,120 +713,7 @@ static struct platform_device *devices[] __initdata = {
|
|||
&rk30_device_adc_battery,
|
||||
#endif
|
||||
};
|
||||
|
||||
#if defined (CONFIG_MFD_TPS65910) && defined (CONFIG_REGULATOR_ACT8931)
|
||||
#define TPS65910_HOST_IRQ INVALID_GPIO
|
||||
|
||||
static struct pmu_info tps65910_dcdc_info[] = {
|
||||
{
|
||||
.name = "vdd_cpu", //arm
|
||||
.min_uv = 1200000,
|
||||
.max_uv = 1200000,
|
||||
},
|
||||
{
|
||||
.name = "vdd2", //ddr
|
||||
.min_uv = 1200000,
|
||||
.max_uv = 1200000,
|
||||
},
|
||||
{
|
||||
.name = "vio", //vcc_io
|
||||
.min_uv = 3300000,
|
||||
.max_uv = 3300000,
|
||||
},
|
||||
|
||||
};
|
||||
static struct pmu_info tps65910_ldo_info[] = {
|
||||
#if defined(RK2928_TB_DEFAULT_CONFIG) || defined(RK2926_TB_DEFAULT_CONFIG)
|
||||
{
|
||||
.name = "vpll", //vcc25
|
||||
.min_uv = 2500000,
|
||||
.max_uv = 2500000,
|
||||
},
|
||||
{
|
||||
.name = "vdig1", //vcc18_cif
|
||||
.min_uv = 1800000,
|
||||
.max_uv = 1800000,
|
||||
},
|
||||
{
|
||||
.name = "vdac", //vccio_wl
|
||||
.min_uv = 1800000,
|
||||
.max_uv = 1800000,
|
||||
},
|
||||
#else
|
||||
{
|
||||
.name = "vdig1", //vcc18_cif
|
||||
.min_uv = 1500000,
|
||||
.max_uv = 1500000,
|
||||
},
|
||||
|
||||
{
|
||||
.name = "vdig2", //vdd11
|
||||
.min_uv = 1200000,
|
||||
.max_uv = 1200000,
|
||||
},
|
||||
{
|
||||
.name = "vaux1", //vcc28_cif
|
||||
.min_uv = 2800000,
|
||||
.max_uv = 2800000,
|
||||
},
|
||||
{
|
||||
.name = "vaux2", //vcca33
|
||||
.min_uv = 3300000,
|
||||
.max_uv = 3300000,
|
||||
},
|
||||
{
|
||||
.name = "vaux33", //vcc_tp
|
||||
.min_uv = 3300000,
|
||||
.max_uv = 3300000,
|
||||
},
|
||||
{
|
||||
.name = "vmmc", //
|
||||
.min_uv = 3300000,
|
||||
.max_uv = 3300000,
|
||||
},
|
||||
#endif
|
||||
};
|
||||
static struct pmu_info act8931_dcdc_info[] = {
|
||||
{
|
||||
.name = "act_dcdc1", //vcc_io
|
||||
.min_uv = 3300000,
|
||||
.max_uv = 3300000,
|
||||
},
|
||||
{
|
||||
.name = "act_dcdc2", //ddr
|
||||
.min_uv = 1500000,
|
||||
.max_uv = 1500000,
|
||||
},
|
||||
{
|
||||
.name = "vdd_cpu", //vdd_arm
|
||||
.min_uv = 1200000,
|
||||
.max_uv = 1200000,
|
||||
},
|
||||
|
||||
};
|
||||
static struct pmu_info act8931_ldo_info[] = {
|
||||
{
|
||||
.name = "act_ldo1", //vcc28_cif
|
||||
.min_uv = 2800000,
|
||||
.max_uv = 2800000,
|
||||
},
|
||||
{
|
||||
.name = "act_ldo2", //vcc18_cif
|
||||
.min_uv = 1800000,
|
||||
.max_uv = 1800000,
|
||||
},
|
||||
{
|
||||
.name = "act_ldo3", //vcca30
|
||||
.min_uv = 3000000,
|
||||
.max_uv = 3000000,
|
||||
},
|
||||
{
|
||||
.name = "act_ldo4", //vcc_wl
|
||||
.min_uv = 3300000,
|
||||
.max_uv = 3300000,
|
||||
},
|
||||
};
|
||||
|
||||
#include "board-rk2928-sdk-tps65910.c"
|
||||
#include "board-rk2928-sdk-act8931.c"
|
||||
static struct i2c_board_info __initdata pmic_info = {
|
||||
|
|
@ -778,7 +721,7 @@ static struct i2c_board_info __initdata pmic_info = {
|
|||
};
|
||||
static int __init pmic_board_init(void)
|
||||
{
|
||||
int ret = 0;
|
||||
int ret = 0, i;
|
||||
struct port_config port;
|
||||
|
||||
ret = check_pmic_param();
|
||||
|
|
@ -793,10 +736,26 @@ static int __init pmic_board_init(void)
|
|||
pmic_info.platform_data = &tps65910_data;
|
||||
|
||||
tps65910_data.irq = port.gpio;
|
||||
for(i = 0; i < ARRAY_SIZE(tps65910_dcdc_info); i++){
|
||||
tps65910_dcdc_info[i].min_uv = tps65910_dcdc[2*i];
|
||||
tps65910_dcdc_info[i].max_uv = tps65910_dcdc[2*i + 1];
|
||||
}
|
||||
for(i = 0; i < ARRAY_SIZE(tps65910_ldo_info); i++){
|
||||
tps65910_ldo_info[i].min_uv = tps65910_ldo[2*i];
|
||||
tps65910_ldo_info[i].max_uv = tps65910_ldo[2*i + 1];
|
||||
}
|
||||
}
|
||||
if(pmic_type == PMIC_TYPE_ACT8931){
|
||||
strcpy(pmic_info.type, "act8931");
|
||||
pmic_info.platform_data = &act8931_data;
|
||||
for(i = 0; i < ARRAY_SIZE(act8931_dcdc_info); i++){
|
||||
act8931_dcdc_info[i].min_uv = act8931_dcdc[2*i];
|
||||
act8931_dcdc_info[i].max_uv = act8931_dcdc[2*i + 1];
|
||||
}
|
||||
for(i = 0; i < ARRAY_SIZE(act8931_ldo_info); i++){
|
||||
act8931_ldo_info[i].min_uv = act8931_ldo[2*i];
|
||||
act8931_ldo_info[i].max_uv = act8931_ldo[2*i + 1];
|
||||
}
|
||||
}
|
||||
pmic_info.addr = pmic_addr;
|
||||
i2c_register_board_info(pmic_i2c, &pmic_info, 1);
|
||||
|
|
@ -1128,6 +1087,9 @@ static int __init rk2928_config_init(void)
|
|||
if(ret < 0)
|
||||
return ret;
|
||||
ret = ls_board_init();
|
||||
if(ret < 0)
|
||||
return ret;
|
||||
ret = cam_board_init();
|
||||
if(ret < 0)
|
||||
return ret;
|
||||
ret = ps_board_init();
|
||||
|
|
@ -1232,10 +1194,8 @@ static void __init rk2928_board_init(void)
|
|||
rk30_i2c_register_board_info();
|
||||
spi_register_board_info(board_spi_devices, ARRAY_SIZE(board_spi_devices));
|
||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
#if defined(RK2928_PHONEPAD_DEFAULT_CONFIG)
|
||||
phonepad_board_init();
|
||||
#endif
|
||||
|
||||
if(is_phonepad)
|
||||
phonepad_board_init();
|
||||
}
|
||||
static void __init rk2928_reserve(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,11 +2,36 @@
|
|||
#define __MACH_CONFIG_H
|
||||
#include <mach/board.h>
|
||||
|
||||
#define RK2926_TB_DEFAULT_CONFIG
|
||||
//#define RK2926_TB_DEFAULT_CONFIG
|
||||
//#define RK2928_TB_DEFAULT_CONFIG
|
||||
//#define RK2926_SDK_DEFAULT_CONFIG
|
||||
//#define RK2928_SDK_DEFAULT_CONFIG
|
||||
//#define RK2928_PHONEPAD_DEFAULT_CONFIG
|
||||
#define RK2928_PHONEPAD_DEFAULT_CONFIG
|
||||
|
||||
|
||||
/* camera id */
|
||||
#define BACK_SENSOR_0 NONE
|
||||
#define BACK_SENSOR_0_ADDR 0x00
|
||||
#define BACK_SENSOR_1 NONE
|
||||
#define BACK_SENSOR_1_ADDR 0x00
|
||||
#define BACK_SENSOR_2 NONE
|
||||
#define BACK_SENSOR_2_ADDR 0x00
|
||||
|
||||
#define FRONT_SENSOR_0 RK29_CAM_SENSOR_GC0308
|
||||
#define FRONT_SENSOR_0_ADDR 0x42
|
||||
#define FRONT_SENSOR_1 RK29_CAM_SENSOR_OV2659
|
||||
#define FRONT_SENSOR_1_ADDR 0x60
|
||||
#define FRONT_SENSOR_2 RK29_CAM_SENSOR_HI704
|
||||
#define FRONT_SENSOR_2_ADDR 0x60
|
||||
|
||||
enum {
|
||||
CAM_ID_BACK_SENSOR_0 = 0,
|
||||
CAM_ID_BACK_SENSOR_1,
|
||||
CAM_ID_BACK_SENSOR_2,
|
||||
CAM_ID_FRONT_SENSOR_0,
|
||||
CAM_ID_FRONT_SENSOR_1,
|
||||
CAM_ID_FRONT_SENSOR_2,
|
||||
};
|
||||
|
||||
enum {
|
||||
GS_TYPE_NONE = 0,
|
||||
|
|
@ -35,6 +60,9 @@ enum {
|
|||
WIFI_SDIO_MAX,
|
||||
};
|
||||
|
||||
int pmic_dcdc_set(int index, int on);
|
||||
int pmic_ldo_set(int index, int on);
|
||||
|
||||
/**************************** rk2926 top board ******************************/
|
||||
#if defined(RK2926_TB_DEFAULT_CONFIG)
|
||||
/* keyboard */
|
||||
|
|
@ -92,13 +120,23 @@ enum {
|
|||
};
|
||||
/* psensor */
|
||||
enum {
|
||||
DEF_PS_TYPE = LS_TYPE_NONE,
|
||||
DEF_PS_TYPE = PS_TYPE_NONE,
|
||||
DEF_PS_I2C = -1,
|
||||
DEF_PS_ADDR = -1,
|
||||
DEF_PS_IRQ = -1,
|
||||
DEF_PS_PWR = -1,
|
||||
};
|
||||
|
||||
/* camera */
|
||||
enum {
|
||||
DEF_FRONT_CAM_ID = CAM_ID_FRONT_SENSOR_1,
|
||||
DEF_FRONT_CAM_I2C = 0,
|
||||
DEF_FRONT_CAM_PWR = 0x000003b3,
|
||||
};
|
||||
enum {
|
||||
DEF_BACK_CAM_ID = -1,
|
||||
DEF_BACK_CAM_I2C = -1,
|
||||
DEF_BACK_CAM_PWR = -1,
|
||||
};
|
||||
/* pwm regulator */
|
||||
enum {
|
||||
DEF_REG_PWM = 1,
|
||||
|
|
@ -111,6 +149,16 @@ enum {
|
|||
DEF_PMIC_I2C = 1,
|
||||
DEF_PMIC_ADDR = 0x2d,
|
||||
};
|
||||
/* tps656910_dcdc: vdd_cpu, vdd2, vdd3, vio
|
||||
* tps65910_ldo: vdig1, vdig2, vaux1, vaux2, vaux33, vmmc, vdac, vpll
|
||||
* act8931_dcdc: act_dcdc1, act_dcdc2, vdd_cpu
|
||||
* act8931_ldo: act_ldo1, act_ldo2, act_ldo3, act_ldo4
|
||||
*/
|
||||
#define DEF_TPS65910_DCDC {1200000,1200000,1200000,1200000,0,0,3300000,3300000}
|
||||
#define DEF_TPS65910_LDO {1800000,1800000,0,0,0,0,0,0,0,0,0,0,1800000,1800000,2500000,2500000}
|
||||
#define DEF_ACT8931_DCDC {0,0,0,0,0,0}
|
||||
#define DEF_ACT8931_LDO {0,0,0,0,0,0,0,0}
|
||||
|
||||
/* ion */
|
||||
enum {
|
||||
DEF_ION_SIZE = 80 * 1024 * 1024,
|
||||
|
|
@ -129,6 +177,7 @@ enum {
|
|||
DEF_WIFI_RST = -1,
|
||||
DEF_WIFI_PWR = -1,
|
||||
DEF_WIFI_TYPE = WIFI_NONE,
|
||||
DEF_WIFI_LDO = 5,
|
||||
};
|
||||
/* rtc */
|
||||
enum {
|
||||
|
|
@ -148,6 +197,7 @@ enum {
|
|||
|
||||
/* global */
|
||||
enum {
|
||||
DEF_IS_PHONEPAD = 0,
|
||||
DEF_PWR_ON = 0x000001a2,
|
||||
};
|
||||
/**************************** rk2928 top board ******************************/
|
||||
|
|
@ -207,13 +257,24 @@ enum {
|
|||
};
|
||||
/* psensor */
|
||||
enum {
|
||||
DEF_PS_TYPE = LS_TYPE_NONE,
|
||||
DEF_PS_TYPE = PS_TYPE_NONE,
|
||||
DEF_PS_I2C = -1,
|
||||
DEF_PS_ADDR = -1,
|
||||
DEF_PS_IRQ = -1,
|
||||
DEF_PS_PWR = -1,
|
||||
};
|
||||
|
||||
/* camera */
|
||||
enum {
|
||||
DEF_FRONT_CAM_ID = CAM_ID_FRONT_SENSOR_1,
|
||||
DEF_FRONT_CAM_I2C = 0,
|
||||
DEF_FRONT_CAM_PWR = 0x000003b3,
|
||||
};
|
||||
enum {
|
||||
DEF_BACK_CAM_ID = -1,
|
||||
DEF_BACK_CAM_I2C = -1,
|
||||
DEF_BACK_CAM_PWR = -1,
|
||||
};
|
||||
|
||||
/* pwm regulator */
|
||||
enum {
|
||||
|
|
@ -227,6 +288,15 @@ enum {
|
|||
DEF_PMIC_I2C = 1,
|
||||
DEF_PMIC_ADDR = 0x2d,
|
||||
};
|
||||
/* tps656910_dcdc: vdd_cpu, vdd2, vdd3, vio
|
||||
* tps65910_ldo: vdig1, vdig2, vaux1, vaux2, vaux33, vmmc, vdac, vpll
|
||||
* act8931_dcdc: act_dcdc1, act_dcdc2, vdd_cpu
|
||||
* act8931_ldo: act_ldo1, act_ldo2, act_ldo3, act_ldo4
|
||||
*/
|
||||
#define DEF_TPS65910_DCDC {1200000,1200000,1200000,1200000,0,0,3300000,3300000}
|
||||
#define DEF_TPS65910_LDO {1800000,1800000,0,0,0,0,0,0,0,0,0,0,1800000,1800000,2500000,2500000}
|
||||
#define DEF_ACT8931_DCDC {0,0,0,0,0,0}
|
||||
#define DEF_ACT8931_LDO {0,0,0,0,0,0,0,0}
|
||||
/* ion */
|
||||
enum {
|
||||
DEF_ION_SIZE = 80 * 1024 * 1024,
|
||||
|
|
@ -245,6 +315,7 @@ enum {
|
|||
DEF_WIFI_RST = -1,
|
||||
DEF_WIFI_PWR = -1,
|
||||
DEF_WIFI_TYPE = WIFI_NONE,
|
||||
DEF_WIFI_LDO = 5,
|
||||
};
|
||||
/* rtc */
|
||||
enum {
|
||||
|
|
@ -325,13 +396,24 @@ enum {
|
|||
};
|
||||
/* psensor */
|
||||
enum {
|
||||
DEF_PS_TYPE = LS_TYPE_NONE,
|
||||
DEF_PS_TYPE = PS_TYPE_NONE,
|
||||
DEF_PS_I2C = -1,
|
||||
DEF_PS_ADDR = -1,
|
||||
DEF_PS_IRQ = -1,
|
||||
DEF_PS_PWR = -1,
|
||||
};
|
||||
|
||||
/* camera */
|
||||
enum {
|
||||
DEF_FRONT_CAM_ID = CAM_ID_FRONT_SENSOR_0,
|
||||
DEF_FRONT_CAM_I2C = 1,
|
||||
DEF_FRONT_CAM_PWR = 0x000003b3,
|
||||
};
|
||||
enum {
|
||||
DEF_BACK_CAM_ID = -1,
|
||||
DEF_BACK_CAM_I2C = -1,
|
||||
DEF_BACK_CAM_PWR = -1,
|
||||
};
|
||||
|
||||
/* pwm regulator */
|
||||
enum {
|
||||
|
|
@ -345,6 +427,15 @@ enum {
|
|||
DEF_PMIC_I2C = 0,
|
||||
DEF_PMIC_ADDR = 0x5b,
|
||||
};
|
||||
/* tps656910_dcdc: vdd_cpu, vdd2, vdd3, vio
|
||||
* tps65910_ldo: vdig1, vdig2, vaux1, vaux2, vaux33, vmmc, vdac, vpll
|
||||
* act8931_dcdc: act_dcdc1, act_dcdc2, vdd_cpu
|
||||
* act8931_ldo: act_ldo1, act_ldo2, act_ldo3, act_ldo4
|
||||
*/
|
||||
#define DEF_TPS65910_DCDC {1200000,1200000,1200000,1200000,0,0,3300000,3300000}
|
||||
#define DEF_TPS65910_LDO {1500000,1500000,1200000,1200000,2800000,2800000,3300000,3300000,3300000,3300000,3300000,3300000,0,0,0,0}
|
||||
#define DEF_ACT8931_DCDC {3300000,3300000,1500000,1500000,1200000,1200000}
|
||||
#define DEF_ACT8931_LDO {2800000,2800000,1800000,1800000,3000000,3000000,3300000,3300000}
|
||||
/* ion */
|
||||
enum {
|
||||
DEF_ION_SIZE = 80 * 1024 * 1024,
|
||||
|
|
@ -363,6 +454,7 @@ enum {
|
|||
DEF_WIFI_RST = -1,
|
||||
DEF_WIFI_PWR = -1,
|
||||
DEF_WIFI_TYPE = WIFI_NONE,
|
||||
DEF_WIFI_LDO = 3,
|
||||
};
|
||||
/* rtc */
|
||||
enum {
|
||||
|
|
@ -382,6 +474,7 @@ enum {
|
|||
|
||||
/* global */
|
||||
enum {
|
||||
DEF_IS_PHONEPAD = 0,
|
||||
DEF_PWR_ON = 0x000001a2,
|
||||
};
|
||||
/**************************** rk2928 sdk ******************************/
|
||||
|
|
@ -441,13 +534,24 @@ enum {
|
|||
};
|
||||
/* psensor */
|
||||
enum {
|
||||
DEF_PS_TYPE = LS_TYPE_NONE,
|
||||
DEF_PS_TYPE = PS_TYPE_NONE,
|
||||
DEF_PS_I2C = -1,
|
||||
DEF_PS_ADDR = -1,
|
||||
DEF_PS_IRQ = -1,
|
||||
DEF_PS_PWR = -1,
|
||||
};
|
||||
|
||||
/* camera */
|
||||
enum {
|
||||
DEF_FRONT_CAM_ID = CAM_ID_FRONT_SENSOR_0,
|
||||
DEF_FRONT_CAM_I2C = 1,
|
||||
DEF_FRONT_CAM_PWR = 0x000003d7,
|
||||
};
|
||||
enum {
|
||||
DEF_BACK_CAM_ID = -1,
|
||||
DEF_BACK_CAM_I2C = -1,
|
||||
DEF_BACK_CAM_PWR = -1,
|
||||
};
|
||||
|
||||
/* pwm regulator */
|
||||
enum {
|
||||
|
|
@ -461,6 +565,15 @@ enum {
|
|||
DEF_PMIC_I2C = 0,
|
||||
DEF_PMIC_ADDR = 0x5b,
|
||||
};
|
||||
/* tps656910_dcdc: vdd_cpu, vdd2, vdd3, vio
|
||||
* tps65910_ldo: vdig1, vdig2, vaux1, vaux2, vaux33, vmmc, vdac, vpll
|
||||
* act8931_dcdc: act_dcdc1, act_dcdc2, vdd_cpu
|
||||
* act8931_ldo: act_ldo1, act_ldo2, act_ldo3, act_ldo4
|
||||
*/
|
||||
#define DEF_TPS65910_DCDC {1200000,1200000,1200000,1200000,0,0,3300000,3300000}
|
||||
#define DEF_TPS65910_LDO {1500000,1500000,1200000,1200000,2800000,2800000,3300000,3300000,3300000,3300000,3300000,3300000,0,0,0,0}
|
||||
#define DEF_ACT8931_DCDC {3300000,3300000,1500000,1500000,1200000,1200000}
|
||||
#define DEF_ACT8931_LDO {2800000,2800000,1800000,1800000,3000000,3000000,3300000,3300000}
|
||||
/* ion */
|
||||
enum {
|
||||
DEF_ION_SIZE = 80 * 1024 * 1024,
|
||||
|
|
@ -479,6 +592,7 @@ enum {
|
|||
DEF_WIFI_RST = -1,
|
||||
DEF_WIFI_PWR = -1,
|
||||
DEF_WIFI_TYPE = WIFI_NONE,
|
||||
DEF_WIFI_LDO = 3,
|
||||
};
|
||||
/* rtc */
|
||||
enum {
|
||||
|
|
@ -498,6 +612,7 @@ enum {
|
|||
|
||||
/* global */
|
||||
enum {
|
||||
DEF_IS_PHONEPAD = 0,
|
||||
DEF_PWR_ON = 0x000001a1,
|
||||
};
|
||||
/**************************** rk2928 phonepad ******************************/
|
||||
|
|
@ -516,7 +631,7 @@ enum{
|
|||
/* backlight */
|
||||
enum{
|
||||
DEF_BL_PWM = 0,
|
||||
DEF_BL_REF = 0,
|
||||
DEF_BL_REF = 1,
|
||||
DEF_BL_MIN = 80,
|
||||
DEF_BL_EN = 0x000001b0,
|
||||
};
|
||||
|
|
@ -564,6 +679,17 @@ enum {
|
|||
DEF_PS_PWR = -1,
|
||||
};
|
||||
|
||||
/* camera */
|
||||
enum {
|
||||
DEF_FRONT_CAM_ID = CAM_ID_FRONT_SENSOR_2,
|
||||
DEF_FRONT_CAM_I2C = 1,
|
||||
DEF_FRONT_CAM_PWR = 0x000003b3,
|
||||
};
|
||||
enum {
|
||||
DEF_BACK_CAM_ID = -1,
|
||||
DEF_BACK_CAM_I2C = -1,
|
||||
DEF_BACK_CAM_PWR = -1,
|
||||
};
|
||||
|
||||
/* pwm regulator */
|
||||
enum {
|
||||
|
|
@ -575,8 +701,17 @@ enum {
|
|||
DEF_PMIC_SLP = 0x000001a1,
|
||||
DEF_PMIC_IRQ = 0x000003c6,
|
||||
DEF_PMIC_I2C = 0,
|
||||
DEF_PMIC_ADDR = 0x5b,
|
||||
DEF_PMIC_ADDR = 0x2d,
|
||||
};
|
||||
/* tps656910_dcdc: vdd_cpu, vdd2, vdd3, vio
|
||||
* tps65910_ldo: vdig1, vdig2, vaux1, vaux2, vaux33, vmmc, vdac, vpll
|
||||
* act8931_dcdc: act_dcdc1, act_dcdc2, vdd_cpu
|
||||
* act8931_ldo: act_ldo1, act_ldo2, act_ldo3, act_ldo4
|
||||
*/
|
||||
#define DEF_TPS65910_DCDC {1200000,1200000,1200000,1200000,0,0,3300000,3300000}
|
||||
#define DEF_TPS65910_LDO {1500000,1500000,1200000,1200000,2800000,2800000,3300000,3300000,3300000,3300000,3300000,3300000,0,0,0,0}
|
||||
#define DEF_ACT8931_DCDC {0,0,0,0,0,0}
|
||||
#define DEF_ACT8931_LDO {0,0,0,0,0,0,0,0}
|
||||
/* ion */
|
||||
enum {
|
||||
DEF_ION_SIZE = 80 * 1024 * 1024,
|
||||
|
|
@ -595,6 +730,7 @@ enum {
|
|||
DEF_WIFI_RST = -1,
|
||||
DEF_WIFI_PWR = -1,
|
||||
DEF_WIFI_TYPE = WIFI_NONE,
|
||||
DEF_WIFI_LDO = -1,
|
||||
};
|
||||
/* rtc */
|
||||
enum {
|
||||
|
|
@ -614,6 +750,7 @@ enum {
|
|||
|
||||
/* global */
|
||||
enum {
|
||||
DEF_IS_PHONEPAD = 1,
|
||||
DEF_PWR_ON = 0x000001a2,
|
||||
};
|
||||
|
||||
|
|
@ -675,13 +812,24 @@ enum {
|
|||
};
|
||||
/* psensor */
|
||||
enum {
|
||||
DEF_PS_TYPE = LS_TYPE_NONE,
|
||||
DEF_PS_TYPE = PS_TYPE_NONE,
|
||||
DEF_PS_I2C = -1,
|
||||
DEF_PS_ADDR = -1,
|
||||
DEF_PS_IRQ = -1,
|
||||
DEF_PS_PWR = -1,
|
||||
};
|
||||
|
||||
/* camera */
|
||||
enum {
|
||||
DEF_FRONT_CAM_ID = -1,
|
||||
DEF_FRONT_CAM_I2C = -1,
|
||||
DEF_FRONT_CAM_PWR = -1,
|
||||
};
|
||||
enum {
|
||||
DEF_BACK_CAM_ID = -1,
|
||||
DEF_BACK_CAM_I2C = -1,
|
||||
DEF_BACK_CAM_PWR = -1,
|
||||
};
|
||||
|
||||
/* pwm regulator */
|
||||
enum {
|
||||
|
|
@ -695,6 +843,15 @@ enum {
|
|||
DEF_PMIC_I2C = -1,
|
||||
DEF_PMIC_ADDR = -1,
|
||||
};
|
||||
/* tps656910_dcdc: vdd_cpu, vdd2, vdd3, vio
|
||||
* tps65910_ldo: vdig1, vdig2, vaux1, vaux2, vaux33, vmmc, vdac, vpll
|
||||
* act8931_dcdc: act_dcdc1, act_dcdc2, vdd_cpu
|
||||
* act8931_ldo: act_ldo1, act_ldo2, act_ldo3, act_ldo4
|
||||
*/
|
||||
#define DEF_TPS65910_DCDC {0,0,0,0,0,0,0,0}
|
||||
#define DEF_TPS65910_LDO {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
|
||||
#define DEF_ACT8931_DCDC {0,0,0,0,0,0}
|
||||
#define DEF_ACT8931_LDO {0,0,0,0,0,0,0,0}
|
||||
/* ion */
|
||||
enum {
|
||||
DEF_ION_SIZE = 80 * 1024 * 1024,
|
||||
|
|
@ -713,6 +870,7 @@ enum {
|
|||
DEF_WIFI_RST = -1,
|
||||
DEF_WIFI_PWR = -1,
|
||||
DEF_WIFI_TYPE = WIFI_NONE,
|
||||
DEF_WIFI_LDO = -1,
|
||||
};
|
||||
/* rtc */
|
||||
enum {
|
||||
|
|
@ -732,6 +890,7 @@ enum {
|
|||
|
||||
/* global */
|
||||
enum {
|
||||
DEF_IS_PHONEPAD = 0,
|
||||
DEF_PWR_ON = -1,
|
||||
};
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -284,5 +284,7 @@ typedef struct rk29_camera_sensor_cb {
|
|||
int (*sensor_cb)(void *arg);
|
||||
int (*scale_crop_cb)(struct work_struct *work);
|
||||
}rk29_camera_sensor_cb_s;
|
||||
|
||||
int camera_set_platform_param(int id, int i2c, int gpio);
|
||||
#endif /* __ASM_ARCH_CAMERA_H_ */
|
||||
|
||||
|
|
|
|||
|
|
@ -1317,6 +1317,49 @@ static struct platform_device android_pmem_cam_device = {
|
|||
},
|
||||
};
|
||||
#endif
|
||||
#ifdef CONFIG_RK_CONFIG
|
||||
int camera_set_platform_param(int id, int i2c, int gpio)
|
||||
{
|
||||
int i;
|
||||
char *dev_name[] = {
|
||||
SENSOR_DEVICE_NAME_0,
|
||||
SENSOR_DEVICE_NAME_01,
|
||||
SENSOR_DEVICE_NAME_02,
|
||||
SENSOR_DEVICE_NAME_1,
|
||||
SENSOR_DEVICE_NAME_11,
|
||||
SENSOR_DEVICE_NAME_12
|
||||
};
|
||||
char *module_name[] = {
|
||||
SENSOR_NAME_0,
|
||||
SENSOR_NAME_01,
|
||||
SENSOR_NAME_02,
|
||||
SENSOR_NAME_1,
|
||||
SENSOR_NAME_11,
|
||||
SENSOR_NAME_12
|
||||
};
|
||||
|
||||
if(id < 0 || id >= 6)
|
||||
return -EINVAL;
|
||||
for(i = 0; i < 6; i++){
|
||||
if(i == id){
|
||||
printk("%s: id = %d, i2c = %d, gpio = %d\n", __func__, id, i2c, gpio);
|
||||
}
|
||||
if(rk_camera_platform_data.gpio_res[i].dev_name &&
|
||||
strcmp(rk_camera_platform_data.gpio_res[i].dev_name, dev_name[id]) == 0)
|
||||
rk_camera_platform_data.gpio_res[i].gpio_powerdown = gpio;
|
||||
if(rk_camera_platform_data.register_dev[i].link_info.module_name &&
|
||||
strcmp(rk_camera_platform_data.register_dev[i].link_info.module_name, module_name[id]) == 0)
|
||||
rk_camera_platform_data.register_dev[i].link_info.i2c_adapter_id = i2c;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int camera_set_platform_param(int id, int i2c, int gpio)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -105,6 +105,7 @@ enum {
|
|||
DEF_ADDR = 0x38,
|
||||
DEF_X_MAX = 800,
|
||||
DEF_Y_MAX = 480,
|
||||
DEF_TP_LDO = 4,
|
||||
};
|
||||
static int en = DEF_EN;
|
||||
module_param(en, int, 0644);
|
||||
|
|
@ -122,13 +123,15 @@ static int x_max = DEF_X_MAX;
|
|||
module_param(x_max, int, 0644);
|
||||
static int y_max = DEF_Y_MAX;
|
||||
module_param(y_max, int, 0644);
|
||||
static int tp_ldo = DEF_TP_LDO;
|
||||
module_param(tp_ldo, int, 0644);
|
||||
|
||||
static int tp_hw_init(void)
|
||||
{
|
||||
int ret = 0;
|
||||
struct regulator *ldo = regulator_get(NULL, "vaux33");
|
||||
|
||||
regulator_disable(ldo);
|
||||
pmic_ldo_set(tp_ldo, 0);
|
||||
|
||||
ret = gpio_request(get_port_config(irq).gpio, "tp_irq");
|
||||
if(ret < 0){
|
||||
printk("%s: gpio_request(irq gpio) failed\n", __func__);
|
||||
|
|
@ -141,8 +144,7 @@ static int tp_hw_init(void)
|
|||
return ret;
|
||||
}
|
||||
msleep(50);
|
||||
regulator_enable(ldo);
|
||||
regulator_put(ldo);
|
||||
pmic_ldo_set(tp_ldo, 1);
|
||||
msleep(300);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -1255,7 +1255,7 @@ static struct file_operations nc_fops = {
|
|||
};
|
||||
#endif // SITRONIX_FW_UPGRADE_FEATURE
|
||||
|
||||
static int __devinit sitronix_ts_init(void)
|
||||
static int __init sitronix_ts_init(void)
|
||||
{
|
||||
#ifdef SITRONIX_FW_UPGRADE_FEATURE
|
||||
int result;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user