Merge branch 'next/drivers' into HEAD
[deliverable/linux.git] / arch / arm / mach-ux500 / board-mop500.h
CommitLineData
008f8a2f
HP
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
1baa5743
LW
10/* For NOMADIK_NR_GPIO */
11#include <mach/irqs.h>
724ebbf4 12#include <mach/msp.h>
5e1ac7db 13#include <linux/amba/mmci.h>
1baa5743 14
017beaa6
LW
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
885d0fe4 22
4b4f757c 23/* HREFv60-specific GPIO assignments, this board has no GPIO expander */
4b4f757c 24#define HREFV60_SDMMC_1V8_3V_GPIO 5
017beaa6 25#define HREFV60_CAMERA_FLASH_ENABLE 21
4b4f757c
LW
26#define HREFV60_MAGNET_DRDY_GPIO 32
27#define HREFV60_DISP1_RST_GPIO 65
28#define HREFV60_DISP2_RST_GPIO 66
017beaa6
LW
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
b8410a15
RV
47
48/* GPIOs on the TC35892 expander */
4b4f757c 49#define MOP500_EGPIO(x) (NOMADIK_NR_GPIO + (x))
017beaa6 50#define GPIO_MAGNET_DRDY MOP500_EGPIO(1)
b8410a15 51#define GPIO_SDMMC_CD MOP500_EGPIO(3)
017beaa6
LW
52#define GPIO_CAMERA_FLASH_ENABLE MOP500_EGPIO(4)
53#define GPIO_MMIO_XENON_CHARGE MOP500_EGPIO(5)
a71b819b 54#define GPIO_PROX_SENSOR MOP500_EGPIO(7)
017beaa6
LW
55#define GPIO_HAL_SENSOR MOP500_EGPIO(8)
56#define GPIO_ACCEL_INT1 MOP500_EGPIO(10)
57#define GPIO_ACCEL_INT2 MOP500_EGPIO(11)
0c24352e 58#define GPIO_BU21013_CS MOP500_EGPIO(13)
017beaa6
LW
59#define MOP500_DISP2_RST_GPIO MOP500_EGPIO(14)
60#define MOP500_DISP1_RST_GPIO MOP500_EGPIO(15)
b8410a15
RV
61#define GPIO_SDMMC_EN MOP500_EGPIO(17)
62#define GPIO_SDMMC_1V8_3V_SEL MOP500_EGPIO(18)
3ef374a2
BB
63#define MOP500_EGPIO_END MOP500_EGPIO(24)
64
017beaa6
LW
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 */
a1524eeb 71#define MOP500_AB8500_PIN_GPIO(x) (MOP500_EGPIO_END + (x) - 1)
017beaa6
LW
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 */
b8410a15 80
1baa5743 81struct device;
705e0984 82struct i2c_board_info;
5e1ac7db 83extern struct mmci_platform_data mop500_sdi0_data;
9cf24b15
LJ
84extern struct mmci_platform_data mop500_sdi1_data;
85extern struct mmci_platform_data mop500_sdi2_data;
5e1ac7db 86extern struct mmci_platform_data mop500_sdi4_data;
724ebbf4
LJ
87extern struct msp_i2s_platform_data msp0_platform_data;
88extern struct msp_i2s_platform_data msp1_platform_data;
89extern struct msp_i2s_platform_data msp2_platform_data;
90extern struct msp_i2s_platform_data msp3_platform_data;
96bbf791 91extern struct arm_pmu_platdata db8500_pmu_platdata;
705e0984 92
18403424
LJ
93extern void mop500_sdi_init(struct device *parent);
94extern void snowball_sdi_init(struct device *parent);
95extern void hrefv60_sdi_init(struct device *parent);
96extern void mop500_sdi_tc35892_init(struct device *parent);
705e0984
RV
97void __init mop500_u8500uib_init(void);
98void __init mop500_stuib_init(void);
ed781d39
LW
99void __init mop500_pinmaps_init(void);
100void __init snowball_pinmaps_init(void);
101void __init hrefv60_pinmaps_init(void);
39b740bf 102void mop500_audio_init(struct device *parent);
ae6d35b9 103/* Due for removal once the MSP driver has been fully DT:ed. */
39b740bf 104void mop500_of_audio_init(struct device *parent);
705e0984 105
fd6948bb 106int __init mop500_uib_init(void);
705e0984
RV
107void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info,
108 unsigned n);
008f8a2f 109
f65c1982
LJ
110/* TODO: Once all pieces are DT:ed, remove completely. */
111struct device * __init u8500_of_init_devices(void);
112
008f8a2f 113#endif
This page took 0.1676 seconds and 5 git commands to generate.