timekeeping: Update tk->cycle_last in resume
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-ux500 / board-mop500.h
1 /*
2 * Copyright (C) ST-Ericsson SA 2010
3 *
4 * License terms: GNU General Public License (GPL) version 2
5 */
6
7 #ifndef __BOARD_MOP500_H
8 #define __BOARD_MOP500_H
9
10 /* For NOMADIK_NR_GPIO */
11 #include <mach/irqs.h>
12 #include <mach/msp.h>
13 #include <linux/amba/mmci.h>
14
15 /* Snowball specific GPIO assignments, this board has no GPIO expander */
16 #define SNOWBALL_ACCEL_INT1_GPIO 163
17 #define SNOWBALL_ACCEL_INT2_GPIO 164
18 #define SNOWBALL_MAGNET_DRDY_GPIO 165
19 #define SNOWBALL_SDMMC_EN_GPIO 217
20 #define SNOWBALL_SDMMC_1V8_3V_GPIO 228
21 #define SNOWBALL_SDMMC_CD_GPIO 218
22
23 /* HREFv60-specific GPIO assignments, this board has no GPIO expander */
24 #define HREFV60_SDMMC_1V8_3V_GPIO 5
25 #define HREFV60_CAMERA_FLASH_ENABLE 21
26 #define HREFV60_MAGNET_DRDY_GPIO 32
27 #define HREFV60_DISP1_RST_GPIO 65
28 #define HREFV60_DISP2_RST_GPIO 66
29 #define HREFV60_ACCEL_INT1_GPIO 82
30 #define HREFV60_ACCEL_INT2_GPIO 83
31 #define HREFV60_SDMMC_CD_GPIO 95
32 #define HREFV60_XSHUTDOWN_SECONDARY_SENSOR 140
33 #define HREFV60_TOUCH_RST_GPIO 143
34 #define HREFV60_HAL_SW_GPIO 145
35 #define HREFV60_SDMMC_EN_GPIO 169
36 #define HREFV60_MMIO_XENON_CHARGE 170
37 #define HREFV60_PROX_SENSE_GPIO 217
38
39 /* MOP500 generic GPIOs */
40 #define CAMERA_FLASH_INT_PIN 7
41 #define CYPRESS_TOUCH_INT_PIN 84
42 #define XSHUTDOWN_PRIMARY_SENSOR 141
43 #define XSHUTDOWN_SECONDARY_SENSOR 142
44 #define CYPRESS_TOUCH_RST_GPIO 143
45 #define MOP500_HDMI_RST_GPIO 196
46 #define CYPRESS_SLAVE_SELECT_GPIO 216
47
48 /* GPIOs on the TC35892 expander */
49 #define MOP500_EGPIO(x) (NOMADIK_NR_GPIO + (x))
50 #define GPIO_MAGNET_DRDY MOP500_EGPIO(1)
51 #define GPIO_SDMMC_CD MOP500_EGPIO(3)
52 #define GPIO_CAMERA_FLASH_ENABLE MOP500_EGPIO(4)
53 #define GPIO_MMIO_XENON_CHARGE MOP500_EGPIO(5)
54 #define GPIO_PROX_SENSOR MOP500_EGPIO(7)
55 #define GPIO_HAL_SENSOR MOP500_EGPIO(8)
56 #define GPIO_ACCEL_INT1 MOP500_EGPIO(10)
57 #define GPIO_ACCEL_INT2 MOP500_EGPIO(11)
58 #define GPIO_BU21013_CS MOP500_EGPIO(13)
59 #define MOP500_DISP2_RST_GPIO MOP500_EGPIO(14)
60 #define MOP500_DISP1_RST_GPIO MOP500_EGPIO(15)
61 #define GPIO_SDMMC_EN MOP500_EGPIO(17)
62 #define GPIO_SDMMC_1V8_3V_SEL MOP500_EGPIO(18)
63 #define MOP500_EGPIO_END MOP500_EGPIO(24)
64
65 /*
66 * GPIOs on the AB8500 mixed-signals circuit
67 * Notice that we subtract 1 from the number passed into the macro, this is
68 * because the AB8500 GPIO pins are enumbered starting from 1, so the value in
69 * parens matches the GPIO pin number in the data sheet.
70 */
71 #define MOP500_AB8500_PIN_GPIO(x) (MOP500_EGPIO_END + (x) - 1)
72 /*Snowball AB8500 GPIO */
73 #define SNOWBALL_VSMPS2_1V8_GPIO MOP500_AB8500_PIN_GPIO(1) /* SYSCLKREQ2/GPIO1 */
74 #define SNOWBALL_PM_GPIO1_GPIO MOP500_AB8500_PIN_GPIO(2) /* SYSCLKREQ3/GPIO2 */
75 #define SNOWBALL_WLAN_CLK_REQ_GPIO MOP500_AB8500_PIN_GPIO(3) /* SYSCLKREQ4/GPIO3 */
76 #define SNOWBALL_PM_GPIO4_GPIO MOP500_AB8500_PIN_GPIO(4) /* SYSCLKREQ6/GPIO4 */
77 #define SNOWBALL_EN_3V6_GPIO MOP500_AB8500_PIN_GPIO(16) /* PWMOUT3/GPIO16 */
78 #define SNOWBALL_PME_ETH_GPIO MOP500_AB8500_PIN_GPIO(24) /* SYSCLKREQ7/GPIO24 */
79 #define SNOWBALL_EN_3V3_ETH_GPIO MOP500_AB8500_PIN_GPIO(26) /* GPIO26 */
80
81 struct device;
82 struct i2c_board_info;
83 extern struct mmci_platform_data mop500_sdi0_data;
84 extern struct mmci_platform_data mop500_sdi1_data;
85 extern struct mmci_platform_data mop500_sdi2_data;
86 extern struct mmci_platform_data mop500_sdi4_data;
87 extern struct msp_i2s_platform_data msp0_platform_data;
88 extern struct msp_i2s_platform_data msp1_platform_data;
89 extern struct msp_i2s_platform_data msp2_platform_data;
90 extern struct msp_i2s_platform_data msp3_platform_data;
91 extern struct arm_pmu_platdata db8500_pmu_platdata;
92 extern struct amba_pl011_data uart0_plat;
93 extern struct amba_pl011_data uart1_plat;
94 extern struct amba_pl011_data uart2_plat;
95 extern struct pl022_ssp_controller ssp0_plat;
96
97 extern void mop500_sdi_init(struct device *parent);
98 extern void snowball_sdi_init(struct device *parent);
99 extern void hrefv60_sdi_init(struct device *parent);
100 extern void mop500_sdi_tc35892_init(struct device *parent);
101 void __init mop500_u8500uib_init(void);
102 void __init mop500_stuib_init(void);
103 void __init mop500_pinmaps_init(void);
104 void __init snowball_pinmaps_init(void);
105 void __init hrefv60_pinmaps_init(void);
106 void mop500_audio_init(struct device *parent);
107
108 int __init mop500_uib_init(void);
109 void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info,
110 unsigned n);
111 #endif