Hanumath Prasad | 008f8a2 | 2010-08-19 12:06:32 +0100 | [diff] [blame] | 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 | |
Linus Walleij | 1baa574 | 2012-04-19 18:27:38 +0200 | [diff] [blame] | 10 | /* For NOMADIK_NR_GPIO */ |
| 11 | #include <mach/irqs.h> |
Lee Jones | 724ebbf | 2012-07-25 13:58:36 +0100 | [diff] [blame] | 12 | #include <mach/msp.h> |
Lee Jones | 5e1ac7d | 2012-05-29 14:40:04 +0800 | [diff] [blame] | 13 | #include <linux/amba/mmci.h> |
Linus Walleij | 1baa574 | 2012-04-19 18:27:38 +0200 | [diff] [blame] | 14 | |
Linus Walleij | 017beaa | 2011-11-11 18:48:52 +0100 | [diff] [blame] | 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 |
Mathieu J. Poirier | 885d0fe | 2011-03-25 09:28:58 -0600 | [diff] [blame] | 22 | |
Linus Walleij | 4b4f757 | 2011-02-15 15:01:35 +0100 | [diff] [blame] | 23 | /* HREFv60-specific GPIO assignments, this board has no GPIO expander */ |
Linus Walleij | 4b4f757 | 2011-02-15 15:01:35 +0100 | [diff] [blame] | 24 | #define HREFV60_SDMMC_1V8_3V_GPIO 5 |
Linus Walleij | 017beaa | 2011-11-11 18:48:52 +0100 | [diff] [blame] | 25 | #define HREFV60_CAMERA_FLASH_ENABLE 21 |
Linus Walleij | 4b4f757 | 2011-02-15 15:01:35 +0100 | [diff] [blame] | 26 | #define HREFV60_MAGNET_DRDY_GPIO 32 |
| 27 | #define HREFV60_DISP1_RST_GPIO 65 |
| 28 | #define HREFV60_DISP2_RST_GPIO 66 |
Linus Walleij | 017beaa | 2011-11-11 18:48:52 +0100 | [diff] [blame] | 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 |
Rabin Vincent | b8410a1 | 2010-08-09 19:18:17 +0530 | [diff] [blame] | 47 | |
| 48 | /* GPIOs on the TC35892 expander */ |
Linus Walleij | 4b4f757 | 2011-02-15 15:01:35 +0100 | [diff] [blame] | 49 | #define MOP500_EGPIO(x) (NOMADIK_NR_GPIO + (x)) |
Linus Walleij | 017beaa | 2011-11-11 18:48:52 +0100 | [diff] [blame] | 50 | #define GPIO_MAGNET_DRDY MOP500_EGPIO(1) |
Rabin Vincent | b8410a1 | 2010-08-09 19:18:17 +0530 | [diff] [blame] | 51 | #define GPIO_SDMMC_CD MOP500_EGPIO(3) |
Linus Walleij | 017beaa | 2011-11-11 18:48:52 +0100 | [diff] [blame] | 52 | #define GPIO_CAMERA_FLASH_ENABLE MOP500_EGPIO(4) |
| 53 | #define GPIO_MMIO_XENON_CHARGE MOP500_EGPIO(5) |
Philippe Langlais | a71b819 | 2011-01-14 10:53:59 +0100 | [diff] [blame] | 54 | #define GPIO_PROX_SENSOR MOP500_EGPIO(7) |
Linus Walleij | 017beaa | 2011-11-11 18:48:52 +0100 | [diff] [blame] | 55 | #define GPIO_HAL_SENSOR MOP500_EGPIO(8) |
| 56 | #define GPIO_ACCEL_INT1 MOP500_EGPIO(10) |
| 57 | #define GPIO_ACCEL_INT2 MOP500_EGPIO(11) |
Sundar Iyer | 0c24352 | 2011-01-21 10:56:17 +0530 | [diff] [blame] | 58 | #define GPIO_BU21013_CS MOP500_EGPIO(13) |
Linus Walleij | 017beaa | 2011-11-11 18:48:52 +0100 | [diff] [blame] | 59 | #define MOP500_DISP2_RST_GPIO MOP500_EGPIO(14) |
| 60 | #define MOP500_DISP1_RST_GPIO MOP500_EGPIO(15) |
Rabin Vincent | b8410a1 | 2010-08-09 19:18:17 +0530 | [diff] [blame] | 61 | #define GPIO_SDMMC_EN MOP500_EGPIO(17) |
| 62 | #define GPIO_SDMMC_1V8_3V_SEL MOP500_EGPIO(18) |
Bibek Basu | 3ef374a | 2011-02-15 12:56:16 +0530 | [diff] [blame] | 63 | #define MOP500_EGPIO_END MOP500_EGPIO(24) |
| 64 | |
Linus Walleij | 017beaa | 2011-11-11 18:48:52 +0100 | [diff] [blame] | 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 | */ |
Philippe Langlais | a1524ee | 2012-02-13 10:52:25 +0100 | [diff] [blame] | 71 | #define MOP500_AB8500_PIN_GPIO(x) (MOP500_EGPIO_END + (x) - 1) |
Linus Walleij | 017beaa | 2011-11-11 18:48:52 +0100 | [diff] [blame] | 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 */ |
Rabin Vincent | b8410a1 | 2010-08-09 19:18:17 +0530 | [diff] [blame] | 80 | |
Linus Walleij | 1baa574 | 2012-04-19 18:27:38 +0200 | [diff] [blame] | 81 | struct device; |
Rabin Vincent | 705e098 | 2011-01-21 10:56:16 +0530 | [diff] [blame] | 82 | struct i2c_board_info; |
Lee Jones | 5e1ac7d | 2012-05-29 14:40:04 +0800 | [diff] [blame] | 83 | extern struct mmci_platform_data mop500_sdi0_data; |
Lee Jones | 9cf24b1 | 2012-08-30 16:11:08 +0100 | [diff] [blame] | 84 | extern struct mmci_platform_data mop500_sdi1_data; |
| 85 | extern struct mmci_platform_data mop500_sdi2_data; |
Lee Jones | 5e1ac7d | 2012-05-29 14:40:04 +0800 | [diff] [blame] | 86 | extern struct mmci_platform_data mop500_sdi4_data; |
Lee Jones | 724ebbf | 2012-07-25 13:58:36 +0100 | [diff] [blame] | 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; |
Lee Jones | 96bbf79 | 2012-07-06 09:06:20 +0100 | [diff] [blame] | 91 | extern struct arm_pmu_platdata db8500_pmu_platdata; |
Rabin Vincent | 705e098 | 2011-01-21 10:56:16 +0530 | [diff] [blame] | 92 | |
Lee Jones | 1840342 | 2012-02-06 11:22:21 -0800 | [diff] [blame] | 93 | extern void mop500_sdi_init(struct device *parent); |
| 94 | extern void snowball_sdi_init(struct device *parent); |
| 95 | extern void hrefv60_sdi_init(struct device *parent); |
| 96 | extern void mop500_sdi_tc35892_init(struct device *parent); |
Rabin Vincent | 705e098 | 2011-01-21 10:56:16 +0530 | [diff] [blame] | 97 | void __init mop500_u8500uib_init(void); |
| 98 | void __init mop500_stuib_init(void); |
Linus Walleij | ed781d39 | 2012-05-03 00:44:52 +0200 | [diff] [blame] | 99 | void __init mop500_pinmaps_init(void); |
| 100 | void __init snowball_pinmaps_init(void); |
| 101 | void __init hrefv60_pinmaps_init(void); |
Lee Jones | 39b740b | 2012-09-14 15:46:29 +0100 | [diff] [blame] | 102 | void mop500_audio_init(struct device *parent); |
Lee Jones | ae6d35b | 2012-07-26 17:42:01 +0100 | [diff] [blame] | 103 | /* Due for removal once the MSP driver has been fully DT:ed. */ |
Lee Jones | 39b740b | 2012-09-14 15:46:29 +0100 | [diff] [blame] | 104 | void mop500_of_audio_init(struct device *parent); |
Rabin Vincent | 705e098 | 2011-01-21 10:56:16 +0530 | [diff] [blame] | 105 | |
Lee Jones | fd6948b | 2012-05-02 09:53:48 +0100 | [diff] [blame] | 106 | int __init mop500_uib_init(void); |
Rabin Vincent | 705e098 | 2011-01-21 10:56:16 +0530 | [diff] [blame] | 107 | void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info, |
| 108 | unsigned n); |
Hanumath Prasad | 008f8a2 | 2010-08-19 12:06:32 +0100 | [diff] [blame] | 109 | |
Lee Jones | f65c198 | 2012-05-29 10:03:09 +0800 | [diff] [blame] | 110 | /* TODO: Once all pieces are DT:ed, remove completely. */ |
| 111 | struct device * __init u8500_of_init_devices(void); |
| 112 | |
Hanumath Prasad | 008f8a2 | 2010-08-19 12:06:32 +0100 | [diff] [blame] | 113 | #endif |