ARM: tegra: pcie: Remove dock detect variable
[linux-3.10.git] / arch / arm / mach-tegra / board-ardbeg.h
1 /*
2  * arch/arm/mach-tegra/board-ardbeg.h
3  *
4  * Copyright (c) 2013, NVIDIA Corporation. All rights reserved.
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 version 2 as
8  * published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
13  * more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18  */
19
20 #ifndef _MACH_TEGRA_BOARD_ARDBEG_H
21 #define _MACH_TEGRA_BOARD_ARDBEG_H
22
23 #include <linux/mfd/as3722-plat.h>
24 #include <mach/gpio-tegra.h>
25 #include <mach/irqs.h>
26 #include "gpio-names.h"
27
28 int ardbeg_emc_init(void);
29 int ardbeg_display_init(void);
30 int ardbeg_panel_init(void);
31 int ardbeg_sdhci_init(void);
32 int ardbeg_sata_init(void);
33 void arbdeg_sata_clk_gate(void);
34 int ardbeg_sensors_init(void);
35 int ardbeg_regulator_init(void);
36 int ardbeg_suspend_init(void);
37 int ardbeg_pmon_init(void);
38 int ardbeg_rail_alignment_init(void);
39 int ardbeg_soctherm_init(void);
40 int ardbeg_edp_init(void);
41 void shield_new_sysedp_init(void);
42 void shield_sysedp_dynamic_capping_init(void);
43 void shield_sysedp_batmon_init(void);
44
45
46 /* Invensense MPU Definitions */
47 #define MPU_GYRO_NAME                   "mpu9250"
48 #define MPU_GYRO_IRQ_GPIO               TEGRA_GPIO_PS0
49 #define MPU_GYRO_ADDR                   0x69
50 #define MPU_GYRO_BUS_NUM                0
51 #define MPU_GYRO_ORIENTATION            MTMAT_TOP_CCW_0
52 #define MPU_GYRO_ORIENTATION_E1762      MTMAT_TOP_CCW_270
53 #define MPU_COMPASS_NAME                "ak8975"
54 #define MPU_COMPASS_ADDR                0x0C
55 #define MPU_COMPASS_ADDR_TN8            0x0D
56 #define MPU_COMPASS_ORIENTATION         MTMAT_BOT_CCW_270
57 #define MPU_BMP_NAME                    "bmp280"
58 #define MPU_BMP_ADDR                    0x77
59
60 /* generated soc_therm OC interrupts */
61 #define TEGRA_SOC_OC_IRQ_BASE   TEGRA_NR_IRQS
62 #define TEGRA_SOC_OC_NUM_IRQ    TEGRA_SOC_OC_IRQ_MAX
63
64 /* PCA954x I2C bus expander bus addresses */
65 #define PCA954x_I2C_BUS_BASE    6
66 #define PCA954x_I2C_BUS0        (PCA954x_I2C_BUS_BASE + 0)
67 #define PCA954x_I2C_BUS1        (PCA954x_I2C_BUS_BASE + 1)
68 #define PCA954x_I2C_BUS2        (PCA954x_I2C_BUS_BASE + 2)
69 #define PCA954x_I2C_BUS3        (PCA954x_I2C_BUS_BASE + 3)
70
71
72 #define PALMAS_TEGRA_GPIO_BASE  TEGRA_NR_GPIOS
73 #define PALMAS_TEGRA_IRQ_BASE   (TEGRA_SOC_OC_IRQ_BASE + TEGRA_SOC_OC_NUM_IRQ)
74 #define AS3722_GPIO_BASE        TEGRA_NR_GPIOS
75 #define AS3722_GPIO_END (AS3722_GPIO_BASE + AS3722_NUM_GPIO)
76
77 /* PMU_TCA6416 GPIOs */
78 #define PMU_TCA6416_GPIO_BASE   (AS3722_GPIO_END)
79 #define PMU_TCA6416_GPIO(x)     (PMU_TCA6416_GPIO_BASE + x)
80 #define PMU_TCA6416_NR_GPIOS    18
81 /* External peripheral act as interrupt controller */
82 /* AS3720 IRQs */
83 #define AS3722_IRQ_BASE         (TEGRA_SOC_OC_IRQ_BASE + TEGRA_SOC_OC_NUM_IRQ)
84
85 #define CAM_RSTN TEGRA_GPIO_PBB3
86 #define CAM_FLASH_STROBE TEGRA_GPIO_PBB4
87 #define CAM2_PWDN TEGRA_GPIO_PBB6
88 #define CAM1_PWDN TEGRA_GPIO_PBB5
89 #define CAM_AF_PWDN TEGRA_GPIO_PBB7
90 #define CAM_BOARD_E1806
91
92 /* Modem related GPIOs */
93 #define MODEM_EN                TEGRA_GPIO_PS4
94 #define MDM_RST                 TEGRA_GPIO_PS3
95 #define MDM_COLDBOOT            TEGRA_GPIO_PO5
96 #define MDM_SAR0                TEGRA_GPIO_PG2
97
98 /* Baseband IDs */
99 enum tegra_bb_type {
100         TEGRA_BB_BRUCE = 1,
101         TEGRA_BB_HSIC_HUB = 6,
102 };
103
104 #define UTMI1_PORT_OWNER_XUSB   0x1
105 #define UTMI2_PORT_OWNER_XUSB   0x2
106 #define HSIC1_PORT_OWNER_XUSB   0x4
107 #define HSIC2_PORT_OWNER_XUSB   0x8
108
109 /* Touchscreen definitions */
110 #define TOUCH_GPIO_IRQ_RAYDIUM_SPI      TEGRA_GPIO_PK2
111 #define TOUCH_GPIO_RST_RAYDIUM_SPI      TEGRA_GPIO_PK4
112 #define TOUCH_SPI_ID                    0       /*SPI 1 on ardbeg_interposer*/
113 #define TOUCH_SPI_CS                    0       /*CS  0 on ardbeg_interposer*/
114 #define NORRIN_TOUCH_SPI_ID                     2       /*SPI 2 on Norrin*/
115 #define NORRIN_TOUCH_SPI_CS                     1       /*CS  1 on Norrin*/
116
117 #define TOUCH_GPIO_IRQ_MAXIM_STI_SPI    TEGRA_GPIO_PK2
118 #define TOUCH_GPIO_RST_MAXIM_STI_SPI    TEGRA_GPIO_PK4
119
120 /* Audio-related GPIOs */
121 /*Same GPIO's used for T114(Interposer) and T124*/
122 /*Below GPIO's are same for Laguna and Ardbeg*/
123 #define TEGRA_GPIO_CDC_IRQ      TEGRA_GPIO_PH4
124 #define TEGRA_GPIO_HP_DET               TEGRA_GPIO_PR7
125 /*LDO_EN signal is required only for RT5639 and not for RT5645,
126 on Laguna the LDO_EN signal comes from a GPIO expander and
127 this is exposed as a fixed regulator directly handeled from
128 machine driver of rt5639 and for ardebeg we use the below tegra
129 GPIO, also the GPIO is same for T114 interposer and T124*/
130 #define TEGRA_GPIO_LDO_EN       TEGRA_GPIO_PR2
131
132 /*GPIOs used by board panel file */
133 #define DSI_PANEL_RST_GPIO      TEGRA_GPIO_PH3
134 #define DSI_PANEL_BL_PWM_GPIO   TEGRA_GPIO_PH1
135
136 /* HDMI Hotplug detection pin */
137 #define ardbeg_hdmi_hpd TEGRA_GPIO_PN7
138
139 /* I2C related GPIOs */
140 /* Same for interposer and t124 */
141 #define TEGRA_GPIO_I2C1_SCL     TEGRA_GPIO_PC4
142 #define TEGRA_GPIO_I2C1_SDA     TEGRA_GPIO_PC5
143 #define TEGRA_GPIO_I2C2_SCL     TEGRA_GPIO_PT5
144 #define TEGRA_GPIO_I2C2_SDA     TEGRA_GPIO_PT6
145 #define TEGRA_GPIO_I2C3_SCL     TEGRA_GPIO_PBB1
146 #define TEGRA_GPIO_I2C3_SDA     TEGRA_GPIO_PBB2
147 #define TEGRA_GPIO_I2C4_SCL     TEGRA_GPIO_PV4
148 #define TEGRA_GPIO_I2C4_SDA     TEGRA_GPIO_PV5
149 #define TEGRA_GPIO_I2C5_SCL     TEGRA_GPIO_PZ6
150 #define TEGRA_GPIO_I2C5_SDA     TEGRA_GPIO_PZ7
151
152 /* Laguna specific */
153
154 int laguna_pinmux_init(void);
155 int laguna_regulator_init(void);
156 int laguna_pm358_pmon_init(void);
157 int laguna_edp_init(void);
158
159 /* Norrin specific */
160 int norrin_regulator_init(void);
161
162 /* AUO Display related GPIO */
163 #define DSI_PANEL_RST_GPIO      TEGRA_GPIO_PH3 /* GMI_AD11 */
164 #define LCD_RST_L               TEGRA_GPIO_PH5 /* GMI_AD13 */
165 #define LCD_LR                  TEGRA_GPIO_PH6 /* GMI_AD14 */
166 #define LCD_TE                  TEGRA_GPIO_PI4 /* GMI_RST_N */
167 #define DSI_PANEL_BL_PWM        TEGRA_GPIO_PH1 /*GMI_AD9 */
168 #define en_vdd_bl       TEGRA_GPIO_PP2 /* DAP3_DOUT */
169 #define lvds_en         TEGRA_GPIO_PI0 /* GMI_WR_N */
170 #define refclk_en       TEGRA_GPIO_PG4 /* GMI_AD4 */
171
172 /* HID keyboard and trackpad irq same for interposer and t124 */
173 #define I2C_KB_IRQ      TEGRA_GPIO_PC7
174 #define I2C_TP_IRQ      TEGRA_GPIO_PW3
175
176 /* TN8 specific */
177
178 int tn8_regulator_init(void);
179 int tn8_fixed_regulator_init(void);
180 int tn8_edp_init(void);
181 void tn8_new_sysedp_init(void);
182 void tn8_sysedp_dynamic_capping_init(void);
183 void tn8_sysedp_batmon_init(void);
184
185 /* SATA Specific */
186
187 #define CLK_RST_CNTRL_RST_DEV_W_SET 0x7000E438
188 #define CLK_RST_CNTRL_RST_DEV_V_SET 0x7000E430
189 #define SET_CEC_RST 0x100
190
191 #endif