usb: ehci: tegra: add suspend_fail flag
[linux-2.6.git] / arch / arm / mach-tegra / board-enterprise.h
1 /*
2  * arch/arm/mach-tegra/board-enterprise.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_ENTERPRISE_H
22 #define _MACH_TEGRA_BOARD_ENTERPRISE_H
23
24 #include <mach/gpio.h>
25 #include <mach/irqs.h>
26 #include <linux/mfd/tps80031.h>
27
28 /* Processor Board  ID */
29 #define BOARD_E1205             0x0C05
30 #define BOARD_E1197             0x0B61
31 #define SKU_BATTERY_SUPPORT     0x1
32
33 /* Board Fab version */
34 #define BOARD_FAB_A00           0x0
35 #define BOARD_FAB_A01           0x1
36 #define BOARD_FAB_A02           0x2
37
38 /* vdd_cpu voltage follower */
39 #define BOARD_SKU_VF_BIT        0x0400
40
41 int enterprise_charge_init(void);
42 int enterprise_sdhci_init(void);
43 int enterprise_pinmux_init(void);
44 int enterprise_panel_init(void);
45 int enterprise_sensors_init(void);
46 int touch_init(void);
47 int enterprise_kbc_init(void);
48 int enterprise_emc_init(void);
49 int enterprise_regulator_init(void);
50 int enterprise_modem_init(void);
51 int enterprise_suspend_init(void);
52 int enterprise_edp_init(void);
53 void enterprise_bpc_mgmt_init(void);
54
55 /* Invensense MPU Definitions */
56 #define MPU_TYPE_MPU3050        1
57 #define MPU_TYPE_MPU6050        2
58 #define MPU_GYRO_TYPE           MPU_TYPE_MPU3050
59 #define MPU_GYRO_IRQ_GPIO       TEGRA_GPIO_PH4
60 #define MPU_GYRO_ADDR           0x68
61 #define MPU_GYRO_BUS_NUM        0
62 #define MPU_GYRO_ORIENTATION    { -1, 0, 0, 0, -1, 0, 0, 0, 1 }
63 #define MPU_ACCEL_NAME          "kxtf9"
64 #define MPU_ACCEL_IRQ_GPIO      0 /* DISABLE ACCELIRQ:  TEGRA_GPIO_PJ2 */
65 #define MPU_ACCEL_ADDR          0x0F
66 #define MPU_ACCEL_BUS_NUM       0
67 #define MPU_ACCEL_ORIENTATION   { 0, 1, 0, -1, 0, 0, 0, 0, 1 }
68 #define MPU_COMPASS_NAME        "ak8975"
69 #define MPU_COMPASS_IRQ_GPIO    0
70 #define MPU_COMPASS_ADDR        0x0C
71 #define MPU_COMPASS_BUS_NUM     0
72 #define MPU_COMPASS_ORIENTATION { 0, 1, 0, -1, 0, 0, 0, 0, 1 }
73
74 /* PCA954x I2C bus expander bus addresses */
75 #define PCA954x_I2C_BUS_BASE    6
76 #define PCA954x_I2C_BUS0        (PCA954x_I2C_BUS_BASE + 0)
77 #define PCA954x_I2C_BUS1        (PCA954x_I2C_BUS_BASE + 1)
78 #define PCA954x_I2C_BUS2        (PCA954x_I2C_BUS_BASE + 2)
79 #define PCA954x_I2C_BUS3        (PCA954x_I2C_BUS_BASE + 3)
80
81 /*****************External GPIO tables ******************/
82 /* External peripheral gpio base. */
83 #define ENT_TPS80031_GPIO_BASE     TEGRA_NR_GPIOS
84 #define ENT_TPS80031_GPIO_REGEN1 (ENT_TPS80031_GPIO_BASE + TPS80031_GPIO_REGEN1)
85 #define ENT_TPS80031_GPIO_REGEN2 (ENT_TPS80031_GPIO_BASE + TPS80031_GPIO_REGEN2)
86 #define ENT_TPS80031_GPIO_SYSEN  (ENT_TPS80031_GPIO_BASE + TPS80031_GPIO_SYSEN)
87 #define ENT_TPS80031_GPIO_END   (ENT_TPS80031_GPIO_BASE + TPS80031_GPIO_NR)
88
89 /*****************External Interrupt tables ******************/
90 /* External peripheral irq base */
91 #define ENT_TPS80031_IRQ_BASE   TEGRA_NR_IRQS
92 #define ENT_TPS80031_IRQ_END  (ENT_TPS80031_IRQ_BASE + TPS80031_INT_NR)
93
94 /*****************Camera GPIOs ******************/
95 #define CAM_CSI_MUX_SEL_GPIO    TEGRA_GPIO_PM3
96 #define CAM_CSI_MUX_SEL_REAR    1
97 #define CAM_CSI_MUX_SEL_FRONT   0
98
99 #define CAM1_RST_L_GPIO         TEGRA_GPIO_PM5 /*REAR RIGHT*/
100 #define CAM2_RST_L_GPIO         TEGRA_GPIO_PF4 /*REAR LEFT*/
101 #define CAM3_RST_L_GPIO         TEGRA_GPIO_PM2 /*FRONT*/
102 #define CAM3_RST_L_TRUE         0
103 #define CAM3_RST_L_FALSE        1
104 #define CAM3_PWDN_GPIO          TEGRA_GPIO_PN4 /*FRONT*/
105 #define CAM3_PWDN_TRUE          1
106 #define CAM3_PWDN_FALSE         0
107 #define CAM_FLASH_EN_GPIO       TEGRA_GPIO_PBB3
108 #define CAM_FLASH_MAX_TORCH_AMP 7
109 #define CAM_FLASH_MAX_FLASH_AMP 7
110 #define CAM_I2C_MUX_RST_EXP     TEGRA_GPIO_PF3 /*I2C Mux Reset*/
111
112 /* Audio-related GPIOs */
113 #define TEGRA_GPIO_HP_DET       TEGRA_GPIO_PW3
114
115 /* Baseband GPIO addresses */
116
117 #define GPIO_BB_RESET           TEGRA_GPIO_PE1
118 #define GPIO_BB_PWRON           TEGRA_GPIO_PE0
119 #define GPIO_BB_APACK           TEGRA_GPIO_PE3
120 #define GPIO_BB_APACK2          TEGRA_GPIO_PE2
121 #define GPIO_BB_CPACK           TEGRA_GPIO_PU5
122 #define GPIO_BB_CPACK2          TEGRA_GPIO_PV0
123 #define GPIO_BB_RSVD1           TEGRA_GPIO_PV1
124 #define GPIO_BB_RSVD2           TEGRA_GPIO_PU4
125
126 #define BB_GPIO_MDM_PWRON_AP2BB         TEGRA_GPIO_PE0 /* LCD_D0 */
127 #define BB_GPIO_RESET_AP2BB             TEGRA_GPIO_PE1 /* LCD_D1 */
128 #define BB_GPIO_LCD_PWR1                TEGRA_GPIO_PC1
129 #define BB_GPIO_LCD_PWR2                TEGRA_GPIO_PC6
130 #define BB_GPIO_HS1_AP2BB               TEGRA_GPIO_PE3 /* LCD_D3 */
131 #define BB_GPIO_HS1_BB2AP               TEGRA_GPIO_PU5
132
133 #define XMM_GPIO_BB_ON                  BB_GPIO_MDM_PWRON_AP2BB
134 #define XMM_GPIO_BB_RST                 BB_GPIO_RESET_AP2BB
135 #define XMM_GPIO_IPC_HSIC_ACTIVE        BB_GPIO_LCD_PWR1
136 #define XMM_GPIO_IPC_HSIC_SUS_REQ       BB_GPIO_LCD_PWR2
137 #define XMM_GPIO_IPC_BB_WAKE            BB_GPIO_HS1_AP2BB
138 #define XMM_GPIO_IPC_AP_WAKE            BB_GPIO_HS1_BB2AP
139
140 #define TDIODE_OFFSET   (9000)  /* in millicelsius */
141
142 /* Battery Peak Current Management */
143 #define TEGRA_BPC_TRIGGER               TEGRA_GPIO_PR3
144 #define TEGRA_BPC_TIMEOUT               100 /* ms */
145 #define TEGRA_BPC_CPU_PWR_LIMIT 0 /* in mW, (0 disables) */
146
147 #define TEGRA_CUR_MON_THRESHOLD         -2000
148 #define TEGRA_CUR_MON_RESISTOR          20
149 #define TEGRA_CUR_MON_MIN_CORES         2
150
151 /* Baseband IDs */
152
153 enum tegra_bb_type {
154         TEGRA_BB_PH450 = 1,
155         TEGRA_BB_XMM6260,
156         TEGRA_BB_M7400,
157 };
158
159 #endif /*_MACH_TEGRA_BOARD_ENTERPRISE_H */