diff options
author | Rajat Verma <rajat.verma@stericsson.com> | 2011-10-07 12:13:05 +0530 |
---|---|---|
committer | Rabin VINCENT <rabin.vincent@stericsson.com> | 2011-10-10 10:18:34 +0200 |
commit | ed5f682f3b9d55229ff372ca682a1943b0af7e4e (patch) | |
tree | 64403d35f9a11a23185e73fed0d7915dda047090 /arch/arm | |
parent | 6149195baccd2f5a2b9481677fbf0cbcfde3c3c1 (diff) |
ux500: camera_flash: add platform data for adp1653
board specific information such as enable_gpio
and interrupt line information should be obtained
using platform_data and not hardcoded inside the
driver itself.
ST-Ericsson Linux next: NA
ST-Ericsson ID: 361940
ST-Ericsson FOSS-OUT ID: Trivial
Change-Id: I73a0f3e986bd3cbf19a0797190d514af9b84e3df
Signed-off-by: Rajat Verma <rajat.verma@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33282
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-stuib.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-u8500uib.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-ux500/board-mop500.h | 3 |
3 files changed, 30 insertions, 1 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-stuib.c b/arch/arm/mach-ux500/board-mop500-stuib.c index f9b30f27303..751a98a6d7e 100644 --- a/arch/arm/mach-ux500/board-mop500-stuib.c +++ b/arch/arm/mach-ux500/board-mop500-stuib.c @@ -13,6 +13,7 @@ #include <linux/lsm303dlh.h> #include <linux/l3g4200d.h> #include <linux/i2c.h> +#include <linux/i2c/adp1653_plat.h> #include <linux/input/matrix_keypad.h> #include <linux/input/lps001wp.h> #include <asm/mach-types.h> @@ -48,6 +49,10 @@ static struct lps001wp_prs_platform_data __initdata lps001wp_pdata = { .min_interval = 10, }; +static struct adp1653_platform_data __initdata adp1653_pdata_u8500_uib = { + .irq_no = CAMERA_FLASH_INT_PIN +}; + static struct i2c_board_info __initdata mop500_i2c2_devices[] = { { /* LSM303DLH Accelerometer */ @@ -69,6 +74,10 @@ static struct i2c_board_info __initdata mop500_i2c2_devices[] = { I2C_BOARD_INFO("lps001wp_prs_sysfs", 0x5C), .platform_data = &lps001wp_pdata, }, + { + I2C_BOARD_INFO("adp1653", 0x30), + .platform_data = &adp1653_pdata_u8500_uib + } }; /* @@ -302,10 +311,13 @@ void __init mop500_stuib_init(void) if (machine_is_hrefv60()) { tsc_plat_device.cs_pin = HREFV60_TOUCH_RST_GPIO; tsc_plat2_device.cs_pin = HREFV60_TOUCH_RST_GPIO; + adp1653_pdata_u8500_uib.enable_gpio = + HREFV60_CAMERA_FLASH_ENABLE; } else { tsc_plat_device.cs_pin = GPIO_BU21013_CS; tsc_plat2_device.cs_pin = GPIO_BU21013_CS; - + adp1653_pdata_u8500_uib.enable_gpio = + GPIO_CAMERA_FLASH_ENABLE; } mop500_uib_i2c_add(0, mop500_i2c0_devices_stuib, diff --git a/arch/arm/mach-ux500/board-mop500-u8500uib.c b/arch/arm/mach-ux500/board-mop500-u8500uib.c index adb6a1a0a3b..9e1cafa8893 100644 --- a/arch/arm/mach-ux500/board-mop500-u8500uib.c +++ b/arch/arm/mach-ux500/board-mop500-u8500uib.c @@ -8,6 +8,7 @@ #include <linux/kernel.h> #include <linux/init.h> #include <linux/i2c.h> +#include <linux/i2c/adp1653_plat.h> #include <linux/gpio.h> #include <linux/interrupt.h> #include <linux/lsm303dlh.h> @@ -45,6 +46,11 @@ static struct l3g4200d_gyr_platform_data __initdata l3g4200d_pdata_u8500 = { .negative_y = 0, .negative_z = 1, }; + +static struct adp1653_platform_data __initdata adp1653_pdata_u8500_uib = { + .irq_no = CAMERA_FLASH_INT_PIN +}; + static struct i2c_board_info __initdata mop500_i2c2_devices_u8500[] = { { /* LSM303DLH Accelerometer */ @@ -61,6 +67,10 @@ static struct i2c_board_info __initdata mop500_i2c2_devices_u8500[] = { I2C_BOARD_INFO("l3g4200d", 0x68), .platform_data = &l3g4200d_pdata_u8500, }, + { + I2C_BOARD_INFO("adp1653", 0x30), + .platform_data = &adp1653_pdata_u8500_uib + } }; /* @@ -155,10 +165,14 @@ void __init mop500_u8500uib_init(void) lsm303dlh_pdata_u8500.irq_a1 = HREFV60_ACCEL_INT1_GPIO; lsm303dlh_pdata_u8500.irq_a2 = HREFV60_ACCEL_INT2_GPIO; lsm303dlh_pdata_u8500.irq_m = HREFV60_MAGNET_DRDY_GPIO; + adp1653_pdata_u8500_uib.enable_gpio = + HREFV60_CAMERA_FLASH_ENABLE; } else { lsm303dlh_pdata_u8500.irq_a1 = GPIO_ACCEL_INT1; lsm303dlh_pdata_u8500.irq_a2 = GPIO_ACCEL_INT2; lsm303dlh_pdata_u8500.irq_m = GPIO_MAGNET_DRDY; + adp1653_pdata_u8500_uib.enable_gpio = + GPIO_CAMERA_FLASH_ENABLE; } mop500_uib_i2c_add(2, mop500_i2c2_devices_u8500, diff --git a/arch/arm/mach-ux500/board-mop500.h b/arch/arm/mach-ux500/board-mop500.h index 273aa24b57e..80f241f79ce 100644 --- a/arch/arm/mach-ux500/board-mop500.h +++ b/arch/arm/mach-ux500/board-mop500.h @@ -35,8 +35,10 @@ #define HREFV60_DISP2_RST_GPIO 66 #define HREFV60_MMIO_XENON_CHARGE 170 #define HREFV60_XSHUTDOWN_SECONDARY_SENSOR 140 +#define HREFV60_CAMERA_FLASH_ENABLE 22 #define XSHUTDOWN_PRIMARY_SENSOR 141 #define XSHUTDOWN_SECONDARY_SENSOR 142 +#define CAMERA_FLASH_INT_PIN 7 #define CYPRESS_TOUCH_INT_PIN 84 #define CYPRESS_TOUCH_RST_GPIO 143 #define CYPRESS_SLAVE_SELECT_GPIO 216 @@ -46,6 +48,7 @@ /* GPIOs on the TC35892 expander */ #define GPIO_MAGNET_DRDY MOP500_EGPIO(1) #define GPIO_SDMMC_CD MOP500_EGPIO(3) +#define GPIO_CAMERA_FLASH_ENABLE MOP500_EGPIO(4) #define GPIO_MMIO_XENON_CHARGE MOP500_EGPIO(5) #define GPIO_PROX_SENSOR MOP500_EGPIO(7) #define GPIO_HAL_SENSOR MOP500_EGPIO(8) |