]> Pileus Git - ~andy/linux/blob - arch/arm/mach-ux500/board-mop500.h
d04a8e6ce7ee57082106375162ec8b88e79939ee
[~andy/linux] / 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 <linux/amba/mmci.h>
13
14 /* Snowball specific GPIO assignments, this board has no GPIO expander */
15 #define SNOWBALL_ACCEL_INT1_GPIO        163
16 #define SNOWBALL_ACCEL_INT2_GPIO        164
17 #define SNOWBALL_MAGNET_DRDY_GPIO       165
18 #define SNOWBALL_SDMMC_EN_GPIO          217
19 #define SNOWBALL_SDMMC_1V8_3V_GPIO      228
20 #define SNOWBALL_SDMMC_CD_GPIO          218
21
22 /* HREFv60-specific GPIO assignments, this board has no GPIO expander */
23 #define HREFV60_SDMMC_1V8_3V_GPIO       5
24 #define HREFV60_CAMERA_FLASH_ENABLE     21
25 #define HREFV60_MAGNET_DRDY_GPIO        32
26 #define HREFV60_DISP1_RST_GPIO          65
27 #define HREFV60_DISP2_RST_GPIO          66
28 #define HREFV60_ACCEL_INT1_GPIO         82
29 #define HREFV60_ACCEL_INT2_GPIO         83
30 #define HREFV60_SDMMC_CD_GPIO           95
31 #define HREFV60_XSHUTDOWN_SECONDARY_SENSOR 140
32 #define HREFV60_TOUCH_RST_GPIO          143
33 #define HREFV60_HAL_SW_GPIO             145
34 #define HREFV60_SDMMC_EN_GPIO           169
35 #define HREFV60_MMIO_XENON_CHARGE       170
36 #define HREFV60_PROX_SENSE_GPIO         217
37
38 /* MOP500 generic GPIOs */
39 #define CAMERA_FLASH_INT_PIN            7
40 #define CYPRESS_TOUCH_INT_PIN           84
41 #define XSHUTDOWN_PRIMARY_SENSOR        141
42 #define XSHUTDOWN_SECONDARY_SENSOR      142
43 #define CYPRESS_TOUCH_RST_GPIO          143
44 #define MOP500_HDMI_RST_GPIO            196
45 #define CYPRESS_SLAVE_SELECT_GPIO       216
46
47 /* GPIOs on the TC35892 expander */
48 #define MOP500_EGPIO(x)                 (NOMADIK_NR_GPIO + (x))
49 #define GPIO_MAGNET_DRDY                MOP500_EGPIO(1)
50 #define GPIO_SDMMC_CD                   MOP500_EGPIO(3)
51 #define GPIO_CAMERA_FLASH_ENABLE        MOP500_EGPIO(4)
52 #define GPIO_MMIO_XENON_CHARGE          MOP500_EGPIO(5)
53 #define GPIO_PROX_SENSOR                MOP500_EGPIO(7)
54 #define GPIO_HAL_SENSOR                 MOP500_EGPIO(8)
55 #define GPIO_ACCEL_INT1                 MOP500_EGPIO(10)
56 #define GPIO_ACCEL_INT2                 MOP500_EGPIO(11)
57 #define GPIO_BU21013_CS                 MOP500_EGPIO(13)
58 #define MOP500_DISP2_RST_GPIO           MOP500_EGPIO(14)
59 #define MOP500_DISP1_RST_GPIO           MOP500_EGPIO(15)
60 #define GPIO_SDMMC_EN                   MOP500_EGPIO(17)
61 #define GPIO_SDMMC_1V8_3V_SEL           MOP500_EGPIO(18)
62 #define MOP500_EGPIO_END                MOP500_EGPIO(24)
63
64 /*
65  * GPIOs on the AB8500 mixed-signals circuit
66  * Notice that we subtract 1 from the number passed into the macro, this is
67  * because the AB8500 GPIO pins are enumbered starting from 1, so the value in
68  * parens matches the GPIO pin number in the data sheet.
69  */
70 #define MOP500_AB8500_PIN_GPIO(x)       (MOP500_EGPIO_END + (x) - 1)
71 /*Snowball AB8500 GPIO */
72 #define SNOWBALL_VSMPS2_1V8_GPIO        MOP500_AB8500_PIN_GPIO(1)       /* SYSCLKREQ2/GPIO1 */
73 #define SNOWBALL_PM_GPIO1_GPIO          MOP500_AB8500_PIN_GPIO(2)       /* SYSCLKREQ3/GPIO2 */
74 #define SNOWBALL_WLAN_CLK_REQ_GPIO      MOP500_AB8500_PIN_GPIO(3)       /* SYSCLKREQ4/GPIO3 */
75 #define SNOWBALL_PM_GPIO4_GPIO          MOP500_AB8500_PIN_GPIO(4)       /* SYSCLKREQ6/GPIO4 */
76 #define SNOWBALL_EN_3V6_GPIO            MOP500_AB8500_PIN_GPIO(16)      /* PWMOUT3/GPIO16 */
77 #define SNOWBALL_PME_ETH_GPIO           MOP500_AB8500_PIN_GPIO(24)      /* SYSCLKREQ7/GPIO24 */
78 #define SNOWBALL_EN_3V3_ETH_GPIO        MOP500_AB8500_PIN_GPIO(26)      /* GPIO26 */
79
80 struct device;
81 struct i2c_board_info;
82 extern struct mmci_platform_data mop500_sdi0_data;
83 extern struct mmci_platform_data mop500_sdi4_data;
84 extern struct arm_pmu_platdata db8500_pmu_platdata;
85
86 extern void mop500_sdi_init(struct device *parent);
87 extern void snowball_sdi_init(struct device *parent);
88 extern void hrefv60_sdi_init(struct device *parent);
89 extern void mop500_sdi_tc35892_init(struct device *parent);
90 void __init mop500_u8500uib_init(void);
91 void __init mop500_stuib_init(void);
92 void __init mop500_pinmaps_init(void);
93 void __init snowball_pinmaps_init(void);
94 void __init hrefv60_pinmaps_init(void);
95
96 int __init mop500_uib_init(void);
97 void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info,
98                 unsigned n);
99
100 /* TODO: Once all pieces are DT:ed, remove completely. */
101 struct device * __init u8500_of_init_devices(void);
102
103 #endif