ARM: tegra12: set CPU rate to 2.2GHz for sku 0x87
[linux-3.10.git] / arch / arm / mach-tegra / board-loki.h
1 /*
2  * arch/arm/mach-tegra/board-loki.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_LOKI_H
21 #define _MACH_TEGRA_BOARD_LOKI_H
22
23 #include <mach/gpio-tegra.h>
24 #include <mach/irqs.h>
25 #include "gpio-names.h"
26
27 int loki_pinmux_init(void);
28 int loki_panel_init(void);
29 int loki_kbc_init(void);
30 int loki_sdhci_init(void);
31 int loki_sensors_init(void);
32 int loki_regulator_init(void);
33 int loki_suspend_init(void);
34 int loki_pmon_init(void);
35 int loki_edp_init(void);
36 int loki_rail_alignment_init(void);
37 int loki_soctherm_init(void);
38 int loki_emc_init(void);
39
40 /* Invensense MPU Definitions */
41 #define MPU_GYRO_NAME                   "mpu6050"
42 #define MPU_GYRO_IRQ_GPIO               TEGRA_GPIO_PR2
43 #define MPU_GYRO_ADDR                   0x68
44 #define MPU_GYRO_BUS_NUM                0
45 #define MPU_GYRO_ORIENTATION            MTMAT_BOT_CCW_0
46 #define MPU_GYRO_ORIENTATION_FAB0       MTMAT_BOT_CCW_90
47 #define MPU_GYRO_ORIENTATION_T_1_95     { 0, 1, 0, 0, 0, 1, 1, 0, 0 }
48 #define MPU_COMPASS_NAME                "ak8975"
49 #define MPU_COMPASS_ADDR                0x0C
50 #define MPU_COMPASS_ORIENTATION         MTMAT_BOT_CCW_180
51
52 /* PCA954x I2C bus expander bus addresses */
53 #define PCA954x_I2C_BUS_BASE    6
54 #define PCA954x_I2C_BUS0        (PCA954x_I2C_BUS_BASE + 0)
55 #define PCA954x_I2C_BUS1        (PCA954x_I2C_BUS_BASE + 1)
56 #define PCA954x_I2C_BUS2        (PCA954x_I2C_BUS_BASE + 2)
57 #define PCA954x_I2C_BUS3        (PCA954x_I2C_BUS_BASE + 3)
58
59
60 #define PALMAS_TEGRA_GPIO_BASE  TEGRA_NR_GPIOS
61 #define PALMAS_TEGRA_IRQ_BASE   TEGRA_NR_IRQS
62 #define AS3722_GPIO_BASE        TEGRA_NR_GPIOS
63 #define AS3722_GPIO_END (AS3722_GPIO_BASE + AS3722_NUM_GPIO)
64
65 /* PMU_TCA6416 GPIOs */
66 #define PMU_TCA6416_GPIO_BASE   (AS3722_GPIO_END)
67 #define PMU_TCA6416_GPIO(x)     (PMU_TCA6416_GPIO_BASE + x)
68 #define PMU_TCA6416_NR_GPIOS    18
69 /* External peripheral act as interrupt controller */
70 /* AS3720 IRQs */
71 #define AS3722_IRQ_BASE         TEGRA_NR_IRQS
72
73 #define CAM_RSTN TEGRA_GPIO_PBB3
74 #define CAM_FLASH_STROBE TEGRA_GPIO_PBB4
75 #define CAM2_PWDN TEGRA_GPIO_PBB6
76 #define CAM1_PWDN TEGRA_GPIO_PBB5
77 #define CAM_AF_PWDN TEGRA_GPIO_PBB7
78
79 /* Modem related GPIOs */
80 #define MDM_RST                 TEGRA_GPIO_PS3
81 #define MDM_COLDBOOT            TEGRA_GPIO_PO5
82
83 /* Hall Effect Sensor GPIO */
84 #define TEGRA_GPIO_HALL         TEGRA_GPIO_PS0
85
86 /* Baseband IDs */
87 enum tegra_bb_type {
88         TEGRA_BB_BRUCE = 1,
89         TEGRA_BB_HSIC_HUB = 6,
90 };
91
92 #define UTMI1_PORT_OWNER_XUSB   0x1
93 #define UTMI2_PORT_OWNER_XUSB   0x2
94 #define UTMI3_PORT_OWNER_XUSB   0x4
95 #define HSIC1_PORT_OWNER_XUSB   0x8
96
97 /* Touchscreen definitions */
98 enum touch_panel_id {
99         TOUCH_PANEL_RESERVED = 0,
100         TOUCH_PANEL_WINTEK,
101         TOUCH_PANEL_TPK,
102         TOUCH_PANEL_TOUCHTURNS,
103         TOUCH_PANEL_THOR_WINTEK,
104         TOUCH_PANEL_LOKI_WINTEK_5_66_UNLAMIN,
105 };
106
107 #define TOUCH_GPIO_IRQ_RAYDIUM_SPI      TEGRA_GPIO_PK2
108 #define TOUCH_GPIO_RST_RAYDIUM_SPI      TEGRA_GPIO_PK4
109 #define TOUCH_SPI_ID                    0       /*SPI 1 on ardbeg_interposer*/
110 #define TOUCH_SPI_CS                    0       /*CS  0 on ardbeg_interposer*/
111
112 /* Audio-related GPIOs */
113 /*Same GPIO's used for T114(Interposer) and T124*/
114 /*Below GPIO's are same for Laguna and Loki*/
115 #define TEGRA_GPIO_CDC_IRQ      TEGRA_GPIO_PH4
116 #define TEGRA_GPIO_HP_DET               TEGRA_GPIO_PR7
117 /*LDO_EN signal is required only for RT5639 and not for RT5645,
118 on Laguna the LDO_EN signal comes from a GPIO expander and
119 this is exposed as a fixed regulator directly handeled from
120 machine driver of rt5639 and for ardebeg we use the below tegra
121 GPIO, also the GPIO is same for T114 interposer and T124*/
122 #define TEGRA_GPIO_LDO_EN       TEGRA_GPIO_PV3
123
124 /*GPIOs used by board panel file */
125 #define DSI_PANEL_RST_GPIO      TEGRA_GPIO_PH3
126 #define DSI_PANEL_BL_PWM_GPIO   TEGRA_GPIO_PH1
127
128 /* HDMI Hotplug detection pin */
129 #define loki_hdmi_hpd   TEGRA_GPIO_PN7
130
131 /* I2C related GPIOs */
132 /* Same for interposer and t124 */
133 #define TEGRA_GPIO_I2C1_SCL     TEGRA_GPIO_PC4
134 #define TEGRA_GPIO_I2C1_SDA     TEGRA_GPIO_PC5
135 #define TEGRA_GPIO_I2C2_SCL     TEGRA_GPIO_PT5
136 #define TEGRA_GPIO_I2C2_SDA     TEGRA_GPIO_PT6
137 #define TEGRA_GPIO_I2C3_SCL     TEGRA_GPIO_PBB1
138 #define TEGRA_GPIO_I2C3_SDA     TEGRA_GPIO_PBB2
139 #define TEGRA_GPIO_I2C4_SCL     TEGRA_GPIO_PV4
140 #define TEGRA_GPIO_I2C4_SDA     TEGRA_GPIO_PV5
141 #define TEGRA_GPIO_I2C5_SCL     TEGRA_GPIO_PZ6
142 #define TEGRA_GPIO_I2C5_SDA     TEGRA_GPIO_PZ7
143
144 /* AUO Display related GPIO */
145 #define DSI_PANEL_RST_GPIO      TEGRA_GPIO_PH3 /* GMI_AD11 */
146 #define LCD_RST_L               TEGRA_GPIO_PH5 /* GMI_AD13 */
147 #define LCD_LR                  TEGRA_GPIO_PH6 /* GMI_AD14 */
148 #define LCD_TE                  TEGRA_GPIO_PI4 /* GMI_RST_N */
149 #define DSI_PANEL_BL_PWM        TEGRA_GPIO_PH1 /*GMI_AD9 */
150 #define en_vdd_bl       TEGRA_GPIO_PP2 /* DAP3_DOUT */
151 #define lvds_en         TEGRA_GPIO_PI0 /* GMI_WR_N */
152 #define refclk_en       TEGRA_GPIO_PG4 /* GMI_AD4 */
153
154 /* HID keyboard and trackpad irq same for interposer and t124 */
155 #define I2C_KB_IRQ      TEGRA_GPIO_PC7
156 #define I2C_TP_IRQ      TEGRA_GPIO_PW3
157
158 /* TN8 specific */
159
160 int tn8_regulator_init(void);
161 int loki_fan_init(void);
162
163 enum {
164         P2530_LOKI = 0,
165         E2549 = 1,
166         E2548 = 2,
167         P2530_FOSTER = 3,
168         P2530_LOKI_PREM = 4,
169 };
170
171 #endif