summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorRajat Verma <rajat.verma@stericsson.com>2011-10-07 12:13:05 +0530
committerRabin VINCENT <rabin.vincent@stericsson.com>2011-10-10 10:18:34 +0200
commited5f682f3b9d55229ff372ca682a1943b0af7e4e (patch)
tree64403d35f9a11a23185e73fed0d7915dda047090 /arch/arm
parent6149195baccd2f5a2b9481677fbf0cbcfde3c3c1 (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.c14
-rw-r--r--arch/arm/mach-ux500/board-mop500-u8500uib.c14
-rw-r--r--arch/arm/mach-ux500/board-mop500.h3
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)