blob: 149a72e7e37aa39a99798d04d741041732c97294 [file] [log] [blame]
Lee Jones6af7fd82012-08-30 15:53:39 +01001/*
2 * Copyright 2012 ST-Ericsson AB
3 *
4 * The code contained herein is licensed under the GNU General Public
5 * License. You may obtain a copy of the GNU General Public License
6 * Version 2 or later at the following locations:
7 *
8 * http://www.opensource.org/licenses/gpl-license.html
9 * http://www.gnu.org/copyleft/gpl.html
10 */
11
Linus Walleij2ce05a12013-08-07 15:37:52 +020012#include "ste-dbx5x0.dtsi"
Linus Walleij83200622014-02-03 14:32:20 +010013#include "ste-href-ab8500.dtsi"
Linus Walleij2ce05a12013-08-07 15:37:52 +020014#include "ste-href.dtsi"
Lee Jones6af7fd82012-08-30 15:53:39 +010015
16/ {
Lee Jonesd1b8bfa2012-09-26 13:29:09 +010017 model = "ST-Ericsson HREF (v60+) platform with Device Tree";
Lee Jones79b40752012-10-15 10:07:55 +010018 compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500";
Lee Jones6b8db132012-09-26 17:09:17 +010019
Gabriel Fernandezb1ba1432013-03-01 14:38:07 +010020 soc {
Lee Jones7127c572012-09-14 15:27:41 +010021 // External Micro SD slot
22 sdi0_per1@80126000 {
Linus Walleijbf7a9b62013-10-02 16:12:52 +020023 cd-gpios = <&gpio2 31 0x4>; // 95
Lee Jones7127c572012-09-14 15:27:41 +010024 };
Linus Walleij1e662352013-11-13 13:46:57 +010025
Ulf Hanssona1ab5e42013-12-12 14:31:37 +010026 vmmci: regulator-gpio {
27 gpios = <&gpio0 5 0x4>;
28 enable-gpio = <&gpio5 9 0x4>;
29 };
30
Linus Walleij1e662352013-11-13 13:46:57 +010031 pinctrl {
Linus Walleij7ab05bd2013-11-15 15:50:11 +010032 /*
33 * Set this up using hogs, as time goes by and as seems fit, these
34 * can be moved over to being controlled by respective device.
35 */
Linus Walleij1c850e42013-11-15 14:44:59 +010036 pinctrl-names = "default";
Linus Walleij7ab05bd2013-11-15 15:50:11 +010037 pinctrl-0 = <&ipgpio_hrefv60_mode>,
Linus Walleij7ab05bd2013-11-15 15:50:11 +010038 <&etm_hrefv60_mode>,
39 <&nahj_hrefv60_mode>,
40 <&nfc_hrefv60_mode>,
41 <&force_hrefv60_mode>,
42 <&dipro_hrefv60_mode>,
43 <&vaudio_hf_hrefv60_mode>,
44 <&gbf_hrefv60_mode>,
45 <&hdtv_hrefv60_mode>,
Linus Walleij1d8aca92015-07-08 15:15:22 +020046 <&gpios_hrefv60_mode>;
Linus Walleij1c850e42013-11-15 14:44:59 +010047
Linus Walleij1e662352013-11-13 13:46:57 +010048 sdi0 {
Linus Walleij1e662352013-11-13 13:46:57 +010049 sdi0_default_mode: sdi0_default {
Linus Walleij1d8aca92015-07-08 15:15:22 +020050 /* SD card detect GPIO pin, extend default state */
Linus Walleij1e662352013-11-13 13:46:57 +010051 default_hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +020052 pins = "GPIO95_E8";
Linus Walleij1e662352013-11-13 13:46:57 +010053 ste,config = <&gpio_in_pu>;
54 };
Linus Walleij1d8aca92015-07-08 15:15:22 +020055 /* VMMCI level-shifter enable */
56 default_hrefv60_cfg2 {
57 pins = "GPIO169_D22";
Linus Walleij83bf6b132015-10-13 19:46:54 +020058 ste,config = <&gpio_out_hi>;
Linus Walleij1d8aca92015-07-08 15:15:22 +020059 };
60 /* VMMCI level-shifter voltage select */
61 default_hrefv60_cfg3 {
62 pins = "GPIO5_AG6";
63 ste,config = <&gpio_out_hi>;
64 };
Linus Walleij1e662352013-11-13 13:46:57 +010065 };
66 };
Linus Walleij1c850e42013-11-15 14:44:59 +010067 ipgpio {
68 /*
69 * XENON Flashgun on image processor GPIO (controlled from image
70 * processor firmware), mux in these image processor GPIO lines 0
71 * (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant
72 * LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias
73 * from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output.
74 */
75 ipgpio_hrefv60_mode: ipgpio_hrefv60 {
76 hrefv60_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +020077 function = "ipgpio";
78 groups = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1";
Linus Walleij1c850e42013-11-15 14:44:59 +010079 };
80 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +020081 pins = "GPIO6_AF6", "GPIO7_AG5";
Linus Walleij1c850e42013-11-15 14:44:59 +010082 ste,config = <&in_pu>;
83 };
84 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +020085 pins = "GPIO21_AB3";
Linus Walleij1c850e42013-11-15 14:44:59 +010086 ste,config = <&gpio_out_lo>;
87 };
88 hrefv60_cfg3 {
Linus Walleij1637d482014-09-30 12:16:25 +020089 pins = "GPIO64_F3";
Linus Walleij1c850e42013-11-15 14:44:59 +010090 ste,config = <&out_lo>;
91 };
Linus Walleij7ab05bd2013-11-15 15:50:11 +010092 };
93 };
Linus Walleij7ab05bd2013-11-15 15:50:11 +010094 etm {
95 /*
96 * Drive D19-D23 for the ETM PTM trace interface low,
97 * (presumably pins are unconnected therefore grounded here,
98 * the "other alt C1" setting enables these pins)
99 */
100 etm_hrefv60_mode: etm_hrefv60 {
101 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200102 pins =
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100103 "GPIO70_G5",
104 "GPIO71_G4",
105 "GPIO72_H4",
106 "GPIO73_H3",
107 "GPIO74_J3";
108 ste,config = <&gpio_out_lo>;
109 };
Linus Walleij1c850e42013-11-15 14:44:59 +0100110 };
111 };
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100112 nahj {
113 nahj_hrefv60_mode: nahj_hrefv60 {
114 /* NAHJ CTRL on GPIO76 to low, CTRL_INV on GPIO216 to high */
115 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200116 pins = "GPIO76_J2";
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100117 ste,config = <&gpio_out_lo>;
118 };
119 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200120 pins = "GPIO216_AG12";
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100121 ste,config = <&gpio_out_hi>;
122 };
123 };
124 };
125 nfc {
126 nfc_hrefv60_mode: nfc_hrefv60 {
127 /* NFC ENA and RESET to low, pulldown IRQ line */
128 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200129 pins =
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100130 "GPIO77_H1", /* NFC_ENA */
131 "GPIO142_C11"; /* NFC_RESET */
132 ste,config = <&gpio_out_lo>;
133 };
134 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200135 pins = "GPIO144_B13"; /* NFC_IRQ */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100136 ste,config = <&gpio_in_pd>;
137 };
138 };
139 };
140 force {
141 force_hrefv60_mode: force_hrefv60 {
142 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200143 pins = "GPIO91_B6"; /* FORCE_SENSING_INT */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100144 ste,config = <&gpio_in_pu>;
145 };
146 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200147 pins =
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100148 "GPIO92_D6", /* FORCE_SENSING_RST */
149 "GPIO97_D9"; /* FORCE_SENSING_WU */
150 ste,config = <&gpio_out_lo>;
151 };
152 };
153 };
154 dipro {
155 dipro_hrefv60_mode: dipro_hrefv60 {
156 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200157 pins = "GPIO139_C9"; /* DIPRO_INT */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100158 ste,config = <&gpio_in_pu>;
159 };
160 };
161 };
162 vaudio_hf {
163 vaudio_hf_hrefv60_mode: vaudio_hf_hrefv60 {
164 /* Audio Amplifier HF enable GPIO */
165 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200166 pins = "GPIO149_B14"; /* VAUDIO_HF_EN, enable MAX8968 */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100167 ste,config = <&gpio_out_hi>;
168 };
169 };
170 };
171 gbf {
172 gbf_hrefv60_mode: gbf_hrefv60 {
173 /*
174 * GBF (GPS, Bluetooth, FM-radio) interface,
175 * pull low to reset state
176 */
177 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200178 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100179 ste,config = <&gpio_out_lo>;
180 };
181 };
182 };
183 hdtv {
184 hdtv_hrefv60_mode: hdtv_hrefv60 {
185 /* MSP : HDTV INTERFACE GPIO line */
186 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200187 pins = "GPIO192_AJ27";
Linus Walleij7ab05bd2013-11-15 15:50:11 +0100188 ste,config = <&gpio_in_pd>;
189 };
190 };
191 };
Linus Walleij17afa712013-11-15 14:55:30 +0100192 mcde {
193 lcd_hrefv60_mode: lcd_hrefv60 {
194 /*
195 * Display Interface 1 uses GPIO 65 for RST (reset).
196 * Display Interface 2 uses GPIO 66 for RST (reset).
197 * Drive DISP1 reset high (not reset), driver DISP2 reset low (reset)
198 */
199 hrefv60_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200200 pins ="GPIO65_F1";
Linus Walleij17afa712013-11-15 14:55:30 +0100201 ste,config = <&gpio_out_hi>;
202 };
203 hrefv60_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200204 pins ="GPIO66_G3";
Linus Walleij17afa712013-11-15 14:55:30 +0100205 ste,config = <&gpio_out_lo>;
206 };
207 };
208 };
Linus Walleij1d8aca92015-07-08 15:15:22 +0200209 gpios {
210 /* Dangling GPIO pins */
211 gpios_hrefv60_mode: gpios_hrefv60 {
212 default_cfg1 {
213 /* Normally UART1 RXD, now dangling */
214 pins = "GPIO4_AH6";
215 ste,config = <&in_pu>;
216 };
217 };
218 };
Linus Walleij1e662352013-11-13 13:46:57 +0100219 };
Lee Jonescbebba72012-09-28 14:41:06 +0100220 };
Lee Jones6af7fd82012-08-30 15:53:39 +0100221};