arm: tegra: ventana: add defines and cleanup header file
Pritesh Raithatha [Tue, 17 Jan 2012 10:05:40 +0000 (15:05 +0530)]
-move sensors defines to board header file.
-add defines for pca954x i2c mux instead of using direct i2c
bus number.
-cleanup board-ventana.h.

Bug 925547

Change-Id: I76a42b66f3a3fa0adbc8c06b2edb9fd006c7ae44
Signed-off-by: Pritesh Raithatha <praithatha@nvidia.com>
Reviewed-on: http://git-master/r/75689
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>

arch/arm/mach-tegra/board-ventana-sensors.c
arch/arm/mach-tegra/board-ventana.c
arch/arm/mach-tegra/board-ventana.h

index c9c2f54..dd3ab86 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * arch/arm/mach-tegra/board-ventana-sensors.c
  *
- * Copyright (c) 2011, NVIDIA CORPORATION, All rights reserved.
+ * Copyright (c) 2011-2012, NVIDIA CORPORATION, All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
 #include "board-ventana.h"
 #include "cpu-tegra.h"
 
-#define ISL29018_IRQ_GPIO      TEGRA_GPIO_PZ2
-#define AKM8975_IRQ_GPIO       TEGRA_GPIO_PN5
-#define CAMERA_POWER_GPIO      TEGRA_GPIO_PV4
-#define CAMERA_CSI_MUX_SEL_GPIO        TEGRA_GPIO_PBB4
-#define CAMERA_FLASH_ACT_GPIO  TEGRA_GPIO_PD2
-#define NCT1008_THERM2_GPIO    TEGRA_GPIO_PN6
-
 static int ventana_camera_init(void)
 {
        int err;
@@ -254,18 +247,18 @@ static const struct i2c_board_info ventana_i2c2_board_info[] = {
 };
 
 static struct pca953x_platform_data ventana_tca6416_data = {
-       .gpio_base      = TEGRA_NR_GPIOS + 4, /* 4 gpios are already requested by tps6586x */
+       .gpio_base = TCA6416_GPIO_BASE,
 };
 
 static struct pca954x_platform_mode ventana_pca9546_modes[] = {
-       { .adap_id = 6, .deselect_on_exit = 1 }, /* REAR CAM1 */
-       { .adap_id = 7, .deselect_on_exit = 1 }, /* REAR CAM2 */
-       { .adap_id = 8, .deselect_on_exit = 1 }, /* FRONT CAM3 */
+       { .adap_id = PCA954x_I2C_BUS0, .deselect_on_exit = 1 }, /* REAR CAM1 */
+       { .adap_id = PCA954x_I2C_BUS1, .deselect_on_exit = 1 }, /* REAR CAM2 */
+       { .adap_id = PCA954x_I2C_BUS2, .deselect_on_exit = 1 }, /* FRONT CAM3 */
 };
 
 static struct pca954x_platform_data ventana_pca9546_data = {
-       .modes    = ventana_pca9546_modes,
-       .num_modes      = ARRAY_SIZE(ventana_pca9546_modes),
+       .modes = ventana_pca9546_modes,
+       .num_modes = ARRAY_SIZE(ventana_pca9546_modes),
 };
 
 static const struct i2c_board_info ventana_i2c3_board_info_tca6416[] = {
index e0ca2c6..23f946f 100644 (file)
@@ -232,7 +232,7 @@ static struct wm8903_platform_data ventana_wm8903_pdata = {
        .irq_active_low = 0,
        .micdet_cfg = 0,
        .micdet_delay = 100,
-       .gpio_base = VENTANA_GPIO_WM8903(0),
+       .gpio_base = WM8903_GPIO_BASE,
        .gpio_cfg = {
                (WM8903_GPn_FN_DMIC_LR_CLK_OUTPUT << WM8903_GP1_FN_SHIFT),
                (WM8903_GPn_FN_DMIC_LR_CLK_OUTPUT << WM8903_GP2_FN_SHIFT) |
index 61b7536..d9c142f 100644 (file)
@@ -27,43 +27,64 @@ int ventana_kbc_init(void);
 int ventana_emc_init(void);
 int ventana_charger_init(void);
 
-/* external gpios */
+/* PCA954x I2C bus expander bus addresses */
+#define PCA954x_I2C_BUS_BASE   6
+#define PCA954x_I2C_BUS0       (PCA954x_I2C_BUS_BASE + 0)
+#define PCA954x_I2C_BUS1       (PCA954x_I2C_BUS_BASE + 1)
+#define PCA954x_I2C_BUS2       (PCA954x_I2C_BUS_BASE + 2)
+
+/* Sensor gpios */
+#define ISL29018_IRQ_GPIO      TEGRA_GPIO_PZ2
+#define AKM8975_IRQ_GPIO       TEGRA_GPIO_PN5
+#define NCT1008_THERM2_GPIO    TEGRA_GPIO_PN6
+
+#define CAMERA_POWER_GPIO      TEGRA_GPIO_PV4
+#define CAMERA_CSI_MUX_SEL_GPIO        TEGRA_GPIO_PBB4
+#define CAMERA_FLASH_ACT_GPIO  TEGRA_GPIO_PD2
 
 /* TPS6586X gpios */
 #define TPS6586X_GPIO_BASE     TEGRA_NR_GPIOS
-#define AVDD_DSI_CSI_ENB_GPIO  (TPS6586X_GPIO_BASE + 1) /* gpio2 */
+#define TPS6586X_GPIO(_x_)     (TPS6586X_GPIO_BASE + (_x_))
+#define TPS6586X_NR_GPIOS      4
+#define AVDD_DSI_CSI_ENB_GPIO  TPS6586X_GPIO(1) /* gpio2 */
+#define TPS6586X_GPIO_END      TPS6586X_GPIO(TPS6586X_NR_GPIOS - 1)
 
 /* TCA6416 gpios */
-#define TCA6416_GPIO_BASE      (TEGRA_NR_GPIOS + 4)
-#define CAM1_PWR_DN_GPIO       (TCA6416_GPIO_BASE + 0) /* gpio0 */
-#define CAM1_RST_L_GPIO                (TCA6416_GPIO_BASE + 1) /* gpio1 */
-#define CAM1_AF_PWR_DN_L_GPIO  (TCA6416_GPIO_BASE + 2) /* gpio2 */
-#define CAM1_LDO_SHUTDN_L_GPIO (TCA6416_GPIO_BASE + 3) /* gpio3 */
-#define CAM2_PWR_DN_GPIO       (TCA6416_GPIO_BASE + 4) /* gpio4 */
-#define CAM2_RST_L_GPIO                (TCA6416_GPIO_BASE + 5) /* gpio5 */
-#define CAM2_AF_PWR_DN_L_GPIO  (TCA6416_GPIO_BASE + 6) /* gpio6 */
-#define CAM2_LDO_SHUTDN_L_GPIO (TCA6416_GPIO_BASE + 7) /* gpio7 */
-#define CAM3_PWR_DN_GPIO       (TCA6416_GPIO_BASE + 8) /* gpio8 */
-#define CAM3_RST_L_GPIO                (TCA6416_GPIO_BASE + 9) /* gpio9 */
-#define CAM3_AF_PWR_DN_L_GPIO  (TCA6416_GPIO_BASE + 10) /* gpio10 */
-#define CAM3_LDO_SHUTDN_L_GPIO (TCA6416_GPIO_BASE + 11) /* gpio11 */
-#define CAM_I2C_MUX_RST_GPIO   (TCA6416_GPIO_BASE + 15) /* gpio15 */
-#define TCA6416_GPIO_END       (TCA6416_GPIO_BASE + 31)
+#define TCA6416_GPIO_BASE      (TPS6586X_GPIO_END + 1)
+#define TCA6416_GPIO(_x_)      (TCA6416_GPIO_BASE + (_x_))
+#define TCA6416_NR_GPIOS       16
+#define CAM1_PWR_DN_GPIO       TCA6416_GPIO(0) /* gpio0 */
+#define CAM1_RST_L_GPIO                TCA6416_GPIO(1) /* gpio1 */
+#define CAM1_AF_PWR_DN_L_GPIO  TCA6416_GPIO(2) /* gpio2 */
+#define CAM1_LDO_SHUTDN_L_GPIO TCA6416_GPIO(3) /* gpio3 */
+#define CAM2_PWR_DN_GPIO       TCA6416_GPIO(4) /* gpio4 */
+#define CAM2_RST_L_GPIO                TCA6416_GPIO(5) /* gpio5 */
+#define CAM2_AF_PWR_DN_L_GPIO  TCA6416_GPIO(6) /* gpio6 */
+#define CAM2_LDO_SHUTDN_L_GPIO TCA6416_GPIO(7) /* gpio7 */
+#define CAM3_PWR_DN_GPIO       TCA6416_GPIO(8) /* gpio8 */
+#define CAM3_RST_L_GPIO                TCA6416_GPIO(9) /* gpio9 */
+#define CAM3_AF_PWR_DN_L_GPIO  TCA6416_GPIO(10) /* gpio10 */
+#define CAM3_LDO_SHUTDN_L_GPIO TCA6416_GPIO(11) /* gpio11 */
+#define CAM_LED_GPIO           TCA6416_GPIO(12) /* gpio12 */
+#define CAM_I2C_MUX_RST_GPIO   TCA6416_GPIO(15) /* gpio15 */
+#define TCA6416_GPIO_END       TCA6416_GPIO(TCA6416_NR_GPIOS - 1)
 
 /* WM8903 GPIOs */
-#define VENTANA_GPIO_WM8903(_x_)       (TCA6416_GPIO_END + 1 + (_x_))
-#define VENTANA_GPIO_WM8903_END                VENTANA_GPIO_WM8903(4)
+#define WM8903_GPIO_BASE       (TCA6416_GPIO_END + 1)
+#define WM8903_GPIO(_x_)       (WM8903_GPIO_BASE + (_x_))
+#define WM8903_NR_GPIOS                4
+#define WM8903_GPIO_END                WM8903_GPIO(WM8903_NR_GPIOS - 1)
 
 /* Audio-related GPIOs */
-#define TEGRA_GPIO_CDC_IRQ             TEGRA_GPIO_PX3
-#define TEGRA_GPIO_SPKR_EN             VENTANA_GPIO_WM8903(2)
-#define TEGRA_GPIO_HP_DET              TEGRA_GPIO_PW2
-#define TEGRA_GPIO_HP_DET              TEGRA_GPIO_PW2
-#define TEGRA_GPIO_INT_MIC_EN          TEGRA_GPIO_PX0
-#define TEGRA_GPIO_EXT_MIC_EN          TEGRA_GPIO_PX1
+#define TEGRA_GPIO_CDC_IRQ     TEGRA_GPIO_PX3
+#define TEGRA_GPIO_SPKR_EN     WM8903_GPIO(2)
+#define TEGRA_GPIO_HP_DET      TEGRA_GPIO_PW2
+#define TEGRA_GPIO_HP_DET      TEGRA_GPIO_PW2
+#define TEGRA_GPIO_INT_MIC_EN  TEGRA_GPIO_PX0
+#define TEGRA_GPIO_EXT_MIC_EN  TEGRA_GPIO_PX1
 
 /* AC detect GPIO */
-#define AC_PRESENT_GPIO                        TEGRA_GPIO_PV3
+#define AC_PRESENT_GPIO                TEGRA_GPIO_PV3
 
 /* Interrupt numbers from external peripherals */
 #define TPS6586X_INT_BASE      TEGRA_NR_IRQS