blob: b5bfc1a78b1adb0313dd96ff301f7a10f8a842c3 [file] [log] [blame]
Hanumath Prasad008f8a22010-08-19 12:06:32 +01001/*
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
Linus Walleij1baa5742012-04-19 18:27:38 +020010/* For NOMADIK_NR_GPIO */
11#include <mach/irqs.h>
Lee Jones5e1ac7d2012-05-29 14:40:04 +080012#include <linux/amba/mmci.h>
Linus Walleij1baa5742012-04-19 18:27:38 +020013
Linus Walleij017beaa2011-11-11 18:48:52 +010014/* 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
Mathieu J. Poirier885d0fe2011-03-25 09:28:58 -060021
Linus Walleij4b4f7572011-02-15 15:01:35 +010022/* HREFv60-specific GPIO assignments, this board has no GPIO expander */
Linus Walleij4b4f7572011-02-15 15:01:35 +010023#define HREFV60_SDMMC_1V8_3V_GPIO 5
Linus Walleij017beaa2011-11-11 18:48:52 +010024#define HREFV60_CAMERA_FLASH_ENABLE 21
Linus Walleij4b4f7572011-02-15 15:01:35 +010025#define HREFV60_MAGNET_DRDY_GPIO 32
26#define HREFV60_DISP1_RST_GPIO 65
27#define HREFV60_DISP2_RST_GPIO 66
Linus Walleij017beaa2011-11-11 18:48:52 +010028#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
Rabin Vincentb8410a12010-08-09 19:18:17 +053046
47/* GPIOs on the TC35892 expander */
Linus Walleij4b4f7572011-02-15 15:01:35 +010048#define MOP500_EGPIO(x) (NOMADIK_NR_GPIO + (x))
Linus Walleij017beaa2011-11-11 18:48:52 +010049#define GPIO_MAGNET_DRDY MOP500_EGPIO(1)
Rabin Vincentb8410a12010-08-09 19:18:17 +053050#define GPIO_SDMMC_CD MOP500_EGPIO(3)
Linus Walleij017beaa2011-11-11 18:48:52 +010051#define GPIO_CAMERA_FLASH_ENABLE MOP500_EGPIO(4)
52#define GPIO_MMIO_XENON_CHARGE MOP500_EGPIO(5)
Philippe Langlaisa71b8192011-01-14 10:53:59 +010053#define GPIO_PROX_SENSOR MOP500_EGPIO(7)
Linus Walleij017beaa2011-11-11 18:48:52 +010054#define GPIO_HAL_SENSOR MOP500_EGPIO(8)
55#define GPIO_ACCEL_INT1 MOP500_EGPIO(10)
56#define GPIO_ACCEL_INT2 MOP500_EGPIO(11)
Sundar Iyer0c243522011-01-21 10:56:17 +053057#define GPIO_BU21013_CS MOP500_EGPIO(13)
Linus Walleij017beaa2011-11-11 18:48:52 +010058#define MOP500_DISP2_RST_GPIO MOP500_EGPIO(14)
59#define MOP500_DISP1_RST_GPIO MOP500_EGPIO(15)
Rabin Vincentb8410a12010-08-09 19:18:17 +053060#define GPIO_SDMMC_EN MOP500_EGPIO(17)
61#define GPIO_SDMMC_1V8_3V_SEL MOP500_EGPIO(18)
Bibek Basu3ef374a2011-02-15 12:56:16 +053062#define MOP500_EGPIO_END MOP500_EGPIO(24)
63
Linus Walleij017beaa2011-11-11 18:48:52 +010064/*
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 */
Philippe Langlaisa1524ee2012-02-13 10:52:25 +010070#define MOP500_AB8500_PIN_GPIO(x) (MOP500_EGPIO_END + (x) - 1)
Linus Walleij017beaa2011-11-11 18:48:52 +010071/*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 */
Rabin Vincentb8410a12010-08-09 19:18:17 +053079
Linus Walleij1baa5742012-04-19 18:27:38 +020080struct device;
Rabin Vincent705e0982011-01-21 10:56:16 +053081struct i2c_board_info;
Lee Jones5e1ac7d2012-05-29 14:40:04 +080082extern struct mmci_platform_data mop500_sdi0_data;
83extern struct mmci_platform_data mop500_sdi4_data;
Rabin Vincent705e0982011-01-21 10:56:16 +053084
Lee Jones18403422012-02-06 11:22:21 -080085extern void mop500_sdi_init(struct device *parent);
86extern void snowball_sdi_init(struct device *parent);
87extern void hrefv60_sdi_init(struct device *parent);
88extern void mop500_sdi_tc35892_init(struct device *parent);
Rabin Vincent705e0982011-01-21 10:56:16 +053089void __init mop500_u8500uib_init(void);
90void __init mop500_stuib_init(void);
Linus Walleijed781d32012-05-03 00:44:52 +020091void __init mop500_pinmaps_init(void);
92void __init snowball_pinmaps_init(void);
93void __init hrefv60_pinmaps_init(void);
Rabin Vincent705e0982011-01-21 10:56:16 +053094
Lee Jonesfd6948b2012-05-02 09:53:48 +010095int __init mop500_uib_init(void);
Rabin Vincent705e0982011-01-21 10:56:16 +053096void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info,
97 unsigned n);
Hanumath Prasad008f8a22010-08-19 12:06:32 +010098
Lee Jonesf65c1982012-05-29 10:03:09 +080099/* TODO: Once all pieces are DT:ed, remove completely. */
100struct device * __init u8500_of_init_devices(void);
101
Hanumath Prasad008f8a22010-08-19 12:06:32 +0100102#endif