ARM: tegra12: set CPU rate to 2.2GHz for sku 0x87
[linux-3.10.git] / arch / arm / mach-tegra / board-pluto.h
1 /*
2  * arch/arm/mach-tegra/board-pluto.h
3  *
4  * Copyright (c) 2012, 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 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_PLUTO_H
21 #define _MACH_TEGRA_BOARD_PLUTO_H
22
23 #include <mach/gpio-tegra.h>
24 #include <mach/irqs.h>
25 #include <linux/mfd/palmas.h>
26 #include <linux/mfd/max77665.h>
27 #include "gpio-names.h"
28 #include <linux/thermal.h>
29 #include <linux/platform_data/thermal_sensors.h>
30 #include "tegra11_soctherm.h"
31
32 /* External peripheral act as gpio */
33 /* PALMAS GPIO */
34 #define PALMAS_TEGRA_GPIO_BASE  TEGRA_NR_GPIOS
35
36 /* Audio-related GPIOs */
37 #define TEGRA_GPIO_CDC_IRQ              TEGRA_GPIO_PW3
38 #define TEGRA_GPIO_LDO1_EN              TEGRA_GPIO_PV3
39 #define TEGRA_GPIO_SPKR_EN              TEGRA_GPIO_PN4
40 #define TEGRA_GPIO_HP_DET               TEGRA_GPIO_PR7
41 #define TEGRA_GPIO_INT_MIC_EN           -1
42 #define TEGRA_GPIO_EXT_MIC_EN           -1
43
44 #define TEGRA_SOC_OC_IRQ_BASE           TEGRA_NR_IRQS
45 #define TEGRA_SOC_OC_NUM_IRQ            TEGRA_SOC_OC_IRQ_MAX
46
47 /* External peripheral act as interrupt controller */
48 /* PLUTO IRQs */
49 #define PALMAS_TEGRA_IRQ_BASE   (TEGRA_SOC_OC_IRQ_BASE + TEGRA_SOC_OC_NUM_IRQ)
50 #define MAX77665_TEGRA_IRQ_BASE (PALMAS_TEGRA_IRQ_BASE + PALMAS_NUM_IRQ)
51
52 /* AIC326X IRQs */
53 /* Assuming TPS is the PMIC on Ent */
54 #define AIC3262_CODEC_IRQ_BASE (MAX77665_TEGRA_IRQ_BASE + MAX77665_NUM_IRQ)
55 #define AIC3262_CODEC_IRQ_END  (AIC3262_CODEC_IRQ_BASE + 6)
56
57 /* I2C related GPIOs */
58 #define TEGRA_GPIO_I2C1_SCL             TEGRA_GPIO_PC4
59 #define TEGRA_GPIO_I2C1_SDA             TEGRA_GPIO_PC5
60 #define TEGRA_GPIO_I2C2_SCL             TEGRA_GPIO_PT5
61 #define TEGRA_GPIO_I2C2_SDA             TEGRA_GPIO_PT6
62 #define TEGRA_GPIO_I2C3_SCL             TEGRA_GPIO_PBB1
63 #define TEGRA_GPIO_I2C3_SDA             TEGRA_GPIO_PBB2
64 #define TEGRA_GPIO_I2C4_SCL             TEGRA_GPIO_PV4
65 #define TEGRA_GPIO_I2C4_SDA             TEGRA_GPIO_PV5
66 #define TEGRA_GPIO_I2C5_SCL             TEGRA_GPIO_PZ6
67 #define TEGRA_GPIO_I2C5_SDA             TEGRA_GPIO_PZ7
68
69 /* Camera related GPIOs */
70 #define CAM_RSTN                        TEGRA_GPIO_PBB3
71 #define CAM_FLASH_STROBE                TEGRA_GPIO_PBB4
72 #define CAM1_POWER_DWN_GPIO             TEGRA_GPIO_PBB5
73 #define CAM2_POWER_DWN_GPIO             TEGRA_GPIO_PBB6
74 #define CAM_AF_PWDN                     TEGRA_GPIO_PBB7
75 #define CAM_GPIO1                       TEGRA_GPIO_PCC1
76 #define CAM_GPIO2                       TEGRA_GPIO_PCC2
77
78 /* Touchscreen definitions */
79 #define SYNAPTICS_ATTN_GPIO             TEGRA_GPIO_PK2
80 #define SYNAPTICS_RESET_GPIO            TEGRA_GPIO_PK4
81
82 #define TOUCH_GPIO_IRQ_RAYDIUM_SPI      TEGRA_GPIO_PK2
83 #define TOUCH_GPIO_RST_RAYDIUM_SPI      TEGRA_GPIO_PK4
84
85 /* Invensense MPU Definitions */
86 #define MPU_GYRO_NAME           "mpu6050"
87 #define MPU_GYRO_IRQ_GPIO       TEGRA_GPIO_PO7
88 #define MPU_GYRO_ADDR           0x69
89 #define MPU_GYRO_BUS_NUM        0
90 #define MPU_GYRO_ORIENTATION    { -1, 0, 0, 0, -1, 0, 0, 0, 1 }
91 #define MPU_COMPASS_NAME        "ak8975"
92 #define MPU_COMPASS_IRQ_GPIO    0
93 #define MPU_COMPASS_ADDR        0x0D
94 #define MPU_COMPASS_BUS_NUM     0
95 #define MPU_COMPASS_ORIENTATION { -1, 0, 0, 0, -1, 0, 0, 0, 1 }
96
97 /* Modem1 related GPIOs */
98 #define MDM_RST                         TEGRA_GPIO_PR3
99 #define MDM_COLDBOOT                    TEGRA_GPIO_PO5
100
101 /* Modem2 related GPIOs */
102 #define MDM2_PWR_ON                     TEGRA_GPIO_PX1
103 #define MDM2_RST                        TEGRA_GPIO_PR5
104 #define MDM2_COLDBOOT                   TEGRA_GPIO_PR4
105 #define MDM2_REQ1                       TEGRA_GPIO_PV0
106 #define MDM2_ACK1                       TEGRA_GPIO_PO2
107 #define MDM2_REQ2                       TEGRA_GPIO_PV1
108 #define MDM2_ACK2                       TEGRA_GPIO_PO3
109
110 /* Modem2 related GPIOs (for Pluto Rev A02 only) */
111 #define MDM2_PWR_ON_FOR_PLUTO_A02       TEGRA_GPIO_PR6
112                                         /* If Pluto A03 or later, use PX1 */
113
114 /* OEM1 Modem related GPIOs */
115
116 #define BB_OEM1_GPIO_RST                TEGRA_GPIO_PR5
117 #define BB_OEM1_GPIO_ON                 TEGRA_GPIO_PR6
118 #define BB_OEM1_GPIO_ON_V               TEGRA_GPIO_PX1
119 #define BB_OEM1_GPIO_AWR                TEGRA_GPIO_PG2
120 #define BB_OEM1_GPIO_CWR                TEGRA_GPIO_PV1
121 #define BB_OEM1_GPIO_SPARE              TEGRA_GPIO_PO2
122 #define BB_OEM1_GPIO_WDI                TEGRA_GPIO_PV0
123
124 /* OEM2 Modem related GPIOs */
125
126 #define XMM_GPIO_BB_ON                  MDM2_PWR_ON /* AP -> BB */
127                                 /* E1193 Rev B7: pin 55 = MDM_PWRON_AP2BB */
128 #define XMM_GPIO_BB_RST                 MDM2_RST /* AP -> BB */
129                                 /* E1193 Rev B7: pin 53 = RESET_AP2BB* */
130 #define XMM_GPIO_IPC_HSIC_ACTIVE        MDM2_ACK2 /* AP -> BB */
131                                 /* E1193 Rev B7: pin 46 = HS2_AP2BB */
132 #define XMM_GPIO_IPC_HSIC_SUS_REQ       MDM2_REQ2 /* BB -> AP */
133                                 /* E1193 Rev B7: pin 41 = HS2_BB2AP */
134 #define XMM_GPIO_IPC_BB_WAKE            MDM2_ACK1 /* AP -> BB */
135                                 /* E1193 Rev B7: pin 45 = HS1_AP2BB */
136 #define XMM_GPIO_IPC_AP_WAKE            MDM2_REQ1 /* BB -> AP */
137                                 /* E1193 Rev B7: pin 43 = HS1_BB2AP */
138
139 int pluto_regulator_init(void);
140 int pluto_suspend_init(void);
141 int pluto_sdhci_init(void);
142 int pluto_sensors_init(void);
143 int pluto_emc_init(void);
144 int pluto_edp_init(void);
145 int pluto_panel_init(void);
146 int pluto_kbc_init(void);
147 int pluto_baseband_init(void);
148 int pluto_pmon_init(void);
149 int pluto_soctherm_init(void);
150
151 extern struct tegra_sdhci_platform_data pluto_tegra_sdhci_platform_data0;
152
153 /* PCA954x I2C bus expander bus addresses */
154 #define PCA954x_I2C_BUS_BASE    5
155 #define PCA954x_I2C_BUS0        (PCA954x_I2C_BUS_BASE + 0)
156 #define PCA954x_I2C_BUS1        (PCA954x_I2C_BUS_BASE + 1)
157 #define PCA954x_I2C_BUS2        (PCA954x_I2C_BUS_BASE + 2)
158 #define PCA954x_I2C_BUS3        (PCA954x_I2C_BUS_BASE + 3)
159
160 /* Baseband IDs */
161 enum tegra_bb_type {
162         TEGRA_BB_I500 = 1,
163         TEGRA_BB_I500SWD,
164         TEGRA_BB_OEM1,
165         TEGRA_BB_OEM2,
166         TEGRA_BB_OEM3,
167         TEGRA_BB_HSIC_HUB,
168 };
169
170 #define UTMI1_PORT_OWNER_XUSB   0x1
171 #define HSIC1_PORT_OWNER_XUSB   0x4
172 #define HSIC2_PORT_OWNER_XUSB   0x8
173
174 #endif