summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikhil Bhandary <nikhil.bhandary@stericsson.com>2011-09-14 18:37:51 +0530
committerRabin Vincent <rabin.vincent@stericsson.com>2011-09-22 15:41:34 +0530
commitdacc378d3827cb270504048e0eab888784ceb3be (patch)
tree2e7bcc8b9cba366b4c1d477cac7b873880abca13
parentb0bfaac433203e2270bb56070bf560f6e7d48b6f (diff)
mach-ux500: Enable Camera PMIC for S5500V2 Board
ST-Ericsson Id: 351836 ST-Ericsson FOSS-OUT ID: Trivial Signed-off-by: Nikhil Bhandary <nikhil.bhandary@stericsson.com> Change-Id: I8968c6741692ded9fc57b550db4617533b0a3a1f Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/30969 Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
-rw-r--r--arch/arm/mach-ux500/board-u5500-mmio.c31
-rw-r--r--arch/arm/mach-ux500/board-u5500-pins.c4
-rw-r--r--arch/arm/mach-ux500/board-u5500-regulators.c1
-rw-r--r--arch/arm/mach-ux500/board-u5500.h1
4 files changed, 36 insertions, 1 deletions
diff --git a/arch/arm/mach-ux500/board-u5500-mmio.c b/arch/arm/mach-ux500/board-u5500-mmio.c
index ca751da16fa..bbf2b4bf949 100644
--- a/arch/arm/mach-ux500/board-u5500-mmio.c
+++ b/arch/arm/mach-ux500/board-u5500-mmio.c
@@ -40,7 +40,7 @@ struct mmio_board_data{
* Fill names of regulators required for powering up the
* camera sensor in below array
*/
-static char *regulator_names[] = {"v-mmio-camera"};
+static char *regulator_names[] = {"v-mmio-camera", "v-ana"};
static int mmio_clock_init(struct mmio_platform_data *pdata)
{
@@ -231,6 +231,28 @@ static int mmio_power_enable(struct mmio_platform_data *pdata)
goto err_regulator;
}
}
+
+ err = gpio_request(GPIO_CAMERA_PMIC_EN, "Camera PMIC GPIO");
+ if (err) {
+ dev_err(pdata->dev, "Error %d while requesting"
+ "Camera PMIC GPIO\n",
+ err);
+ return err;
+ }
+
+ err = gpio_direction_output(GPIO_CAMERA_PMIC_EN, 0);
+ if (err) {
+ dev_err(pdata->dev, "Error %d while setting"
+ "Camera PMIC GPIO"
+ "output mode\n", err);
+ return err;
+ }
+
+ if (!(is_s5500_board()))
+ gpio_set_value(GPIO_CAMERA_PMIC_EN, 1);
+ else
+ gpio_set_value(GPIO_CAMERA_PMIC_EN, 0);
+
dev_dbg(pdata->dev , "Board %s() Exit\n", __func__);
return 0;
err_regulator:
@@ -251,6 +273,13 @@ static void mmio_power_disable(struct mmio_platform_data *pdata)
*/
for (i = 0; i < extra->number_of_regulators; i++)
regulator_disable(extra->mmio_regulators[i]);
+
+ if (!(is_s5500_board()))
+ gpio_set_value(GPIO_CAMERA_PMIC_EN, 0);
+ else
+ gpio_set_value(GPIO_CAMERA_PMIC_EN, 1);
+
+ gpio_free(GPIO_CAMERA_PMIC_EN);
}
static int mmio_clock_enable(struct mmio_platform_data *pdata)
diff --git a/arch/arm/mach-ux500/board-u5500-pins.c b/arch/arm/mach-ux500/board-u5500-pins.c
index 2bfff680ef4..bb2500c24e1 100644
--- a/arch/arm/mach-ux500/board-u5500-pins.c
+++ b/arch/arm/mach-ux500/board-u5500-pins.c
@@ -68,6 +68,10 @@ static pin_cfg_t u5500_pins_default[] = {
GPIO202_ACCU0_RXD | PIN_INPUT_PULLUP,
GPIO203_ACCU0_TXD | PIN_OUTPUT_HIGH,
+
+ /* Board Id Identification B5500 or S5500 */
+ GPIO0_GPIO | PIN_INPUT_PULLUP,
+
};
static UX500_PINS(db5500_kp_pins,
diff --git a/arch/arm/mach-ux500/board-u5500-regulators.c b/arch/arm/mach-ux500/board-u5500-regulators.c
index e3fd4efcb1e..d8c72966c82 100644
--- a/arch/arm/mach-ux500/board-u5500-regulators.c
+++ b/arch/arm/mach-ux500/board-u5500-regulators.c
@@ -27,6 +27,7 @@ static struct regulator_consumer_supply ab5500_ldo_h_consumers[] = {
REGULATOR_SUPPLY("vdd", "1-004b"), /* Synaptics */
REGULATOR_SUPPLY("vin", "2-0036"), /* LM3530 */
REGULATOR_SUPPLY("vcpin", "spi1.0"),
+ REGULATOR_SUPPLY("v-ana", "mmio_camera"),
};
static struct regulator_consumer_supply ab5500_ldo_k_consumers[] = {
diff --git a/arch/arm/mach-ux500/board-u5500.h b/arch/arm/mach-ux500/board-u5500.h
index 1b53508e716..85762e5efb1 100644
--- a/arch/arm/mach-ux500/board-u5500.h
+++ b/arch/arm/mach-ux500/board-u5500.h
@@ -13,6 +13,7 @@
#define GPIO_BOARD_VERSION 0
#define GPIO_PRIMARY_CAM_XSHUTDOWN 1
#define GPIO_SECONDARY_CAM_XSHUTDOWN 2
+#define GPIO_CAMERA_PMIC_EN 212
#define CYPRESS_TOUCH_INT_PIN 179
#define CYPRESS_TOUCH_RST_GPIO 135
#define CYPRESS_SLAVE_SELECT_GPIO 186