ARM: tegra: cardhu: add AC present interrupt gpio
[linux-2.6.git] / arch / arm / mach-tegra / board-cardhu.h
1 /*
2  * arch/arm/mach-tegra/board-cardhu.h
3  *
4  * Copyright (c) 2011, NVIDIA Corporation.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14  * more details.
15  *
16  * You should have received a copy of the GNU General Public License along
17  * with this program; if not, write to the Free Software Foundation, Inc.,
18  * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19  */
20
21 #ifndef _MACH_TEGRA_BOARD_CARDHU_H
22 #define _MACH_TEGRA_BOARD_CARDHU_H
23
24 #include <mach/gpio.h>
25 #include <mach/irqs.h>
26
27 #define BOARD_E1187   0x0B57
28 #define BOARD_E1186   0x0B56
29 #define BOARD_E1198   0x0B62
30 #define BOARD_E1291   0x0C5B
31 #define BOARD_PM269   0x0245
32
33 /* External peripheral act as gpio */
34 /* TPS6591x GPIOs */
35 #define TPS6591X_GPIO_BASE      TEGRA_NR_GPIOS
36 #define TPS6591X_GPIO_GP0       (TPS6591X_GPIO_BASE + 0)
37 #define TPS6591X_GPIO_GP1       (TPS6591X_GPIO_BASE + 1)
38 #define TPS6591X_GPIO_GP2       (TPS6591X_GPIO_BASE + 2)
39 #define TPS6591X_GPIO_GP3       (TPS6591X_GPIO_BASE + 3)
40 #define TPS6591X_GPIO_GP4       (TPS6591X_GPIO_BASE + 4)
41 #define TPS6591X_GPIO_GP5       (TPS6591X_GPIO_BASE + 5)
42 #define TPS6591X_GPIO_GP6       (TPS6591X_GPIO_BASE + 6)
43 #define TPS6591X_GPIO_GP7       (TPS6591X_GPIO_BASE + 7)
44 #define TPS6591X_GPIO_GP8       (TPS6591X_GPIO_BASE + 8)
45 #define TPS6591X_GPIO_END       (TPS6591X_GPIO_GP8 + 1)
46
47 /* PMU_TCA6416 GPIOs */
48 #define PMU_TCA6416_GPIO_BASE   (TPS6591X_GPIO_END)
49 #define PMU_TCA6416_GPIO_PORT00 (PMU_TCA6416_GPIO_BASE + 0)
50 #define PMU_TCA6416_GPIO_PORT01 (PMU_TCA6416_GPIO_BASE + 1)
51 #define PMU_TCA6416_GPIO_PORT02 (PMU_TCA6416_GPIO_BASE + 2)
52 #define PMU_TCA6416_GPIO_PORT03 (PMU_TCA6416_GPIO_BASE + 3)
53 #define PMU_TCA6416_GPIO_PORT04 (PMU_TCA6416_GPIO_BASE + 4)
54 #define PMU_TCA6416_GPIO_PORT05 (PMU_TCA6416_GPIO_BASE + 5)
55 #define PMU_TCA6416_GPIO_PORT06 (PMU_TCA6416_GPIO_BASE + 6)
56 #define PMU_TCA6416_GPIO_PORT07 (PMU_TCA6416_GPIO_BASE + 7)
57 #define PMU_TCA6416_GPIO_PORT10 (PMU_TCA6416_GPIO_BASE + 8)
58 #define PMU_TCA6416_GPIO_PORT11 (PMU_TCA6416_GPIO_BASE + 9)
59 #define PMU_TCA6416_GPIO_PORT12 (PMU_TCA6416_GPIO_BASE + 10)
60 #define PMU_TCA6416_GPIO_PORT13 (PMU_TCA6416_GPIO_BASE + 11)
61 #define PMU_TCA6416_GPIO_PORT14 (PMU_TCA6416_GPIO_BASE + 12)
62 #define PMU_TCA6416_GPIO_PORT15 (PMU_TCA6416_GPIO_BASE + 13)
63 #define PMU_TCA6416_GPIO_PORT16 (PMU_TCA6416_GPIO_BASE + 14)
64 #define PMU_TCA6416_GPIO_PORT17 (PMU_TCA6416_GPIO_BASE + 15)
65 #define PMU_TCA6416_GPIO_END    (PMU_TCA6416_GPIO_BASE + 16)
66
67 /* CAM_TCA6416 GPIOs */
68 #define CAM_TCA6416_GPIO_BASE           PMU_TCA6416_GPIO_END
69 #define CAM1_PWR_DN_GPIO                        CAM_TCA6416_GPIO_BASE + 0
70 #define CAM1_RST_L_GPIO                         CAM_TCA6416_GPIO_BASE + 1
71 #define CAM1_AF_PWR_DN_L_GPIO           CAM_TCA6416_GPIO_BASE + 2
72 #define CAM1_LDO_SHUTDN_L_GPIO          CAM_TCA6416_GPIO_BASE + 3
73 #define CAM2_PWR_DN_GPIO                        CAM_TCA6416_GPIO_BASE + 4
74 #define CAM2_RST_L_GPIO                         CAM_TCA6416_GPIO_BASE + 5
75 #define CAM2_AF_PWR_DN_L_GPIO           CAM_TCA6416_GPIO_BASE + 6
76 #define CAM2_LDO_SHUTDN_L_GPIO          CAM_TCA6416_GPIO_BASE + 7
77 #define CAM_FRONT_PWR_DN_GPIO           CAM_TCA6416_GPIO_BASE + 8
78 #define CAM_FRONT_RST_L_GPIO            CAM_TCA6416_GPIO_BASE + 9
79 #define CAM_FRONT_AF_PWR_DN_L_GPIO      CAM_TCA6416_GPIO_BASE + 10
80 #define CAM_FRONT_LDO_SHUTDN_L_GPIO     CAM_TCA6416_GPIO_BASE + 11
81 #define CAM_FRONT_LED_EXP                       CAM_TCA6416_GPIO_BASE + 12
82 #define CAM_SNN_LED_REAR_EXP            CAM_TCA6416_GPIO_BASE + 13
83 /* PIN 19 NOT USED and is reserved */
84 #define CAM_NOT_USED                            CAM_TCA6416_GPIO_BASE + 14
85 #define CAM_I2C_MUX_RST_EXP                     CAM_TCA6416_GPIO_BASE + 15
86 #define CAM_TCA6416_GPIO_END            CAM_TCA6416_GPIO_BASE + 16
87
88 /* CAMERA RELATED GPIOs on CARDHU */
89 #define OV5650_RESETN_GPIO                      TEGRA_GPIO_PBB0
90 #define CAM1_POWER_DWN_GPIO                     TEGRA_GPIO_PBB5
91 #define CAM2_POWER_DWN_GPIO                     TEGRA_GPIO_PBB6
92 #define CAM3_POWER_DWN_GPIO                     TEGRA_GPIO_PBB7
93 #define CAMERA_CSI_CAM_SEL_GPIO         TEGRA_GPIO_PBB4
94 #define CAMERA_CSI_MUX_SEL_GPIO         TEGRA_GPIO_PCC1
95 #define CAM1_LDO_EN_GPIO                        TEGRA_GPIO_PR6
96 #define CAM2_LDO_EN_GPIO                        TEGRA_GPIO_PR7
97 #define CAM3_LDO_EN_GPIO                        TEGRA_GPIO_PS0
98
99 /* PCA954x I2C bus expander bus addresses */
100 #define PCA954x_I2C_BUS_BASE    6
101 #define PCA954x_I2C_BUS0        (PCA954x_I2C_BUS_BASE + 0)
102 #define PCA954x_I2C_BUS1        (PCA954x_I2C_BUS_BASE + 1)
103 #define PCA954x_I2C_BUS2        (PCA954x_I2C_BUS_BASE + 2)
104 #define PCA954x_I2C_BUS3        (PCA954x_I2C_BUS_BASE + 3)
105
106 #define AC_PRESENT_GPIO         TPS6591X_GPIO_GP4
107
108 /*****************Interrupt tables ******************/
109 /* External peripheral act as interrupt controller */
110 /* TPS6591x IRQs */
111 #define TPS6591X_IRQ_BASE       TEGRA_NR_IRQS
112 #define TPS6591X_IRQ_END        (TPS6591X_IRQ_BASE + 24)
113
114
115
116 int cardhu_charge_init(void);
117 int cardhu_regulator_init(void);
118 int cardhu_suspend_init(void);
119 int cardhu_sdhci_init(void);
120 int cardhu_pinmux_init(void);
121 int cardhu_panel_init(void);
122 int cardhu_sensors_init(void);
123 int cardhu_kbc_init(void);
124 int cardhu_scroll_init(void);
125 int cardhu_keys_init(void);
126 int cardhu_gpio_switch_regulator_init(void);
127 int cardhu_pins_state_init(void);
128 int cardhu_emc_init(void);
129 int cardhu_power_off_init(void);
130
131 #endif