Merge remote-tracking branch 'asoc/topic/component' into asoc-next
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / qcom-mdm9615-wp8548-mangoh-green.dts
1 /*
2  * Device Tree Source for mangOH Green Board with WP8548 Module
3  *
4  * Copyright (C) 2016 BayLibre, SAS.
5  * Author : Neil Armstrong <narmstrong@baylibre.com>
6  *
7  * This file is dual-licensed: you can use it either under the terms
8  * of the GPL or the X11 license, at your option. Note that this dual
9  * licensing only applies to this file, and not this project as a
10  * whole.
11  *
12  *  a) This file is free software; you can redistribute it and/or
13  *     modify it under the terms of the GNU General Public License as
14  *     published by the Free Software Foundation; either version 2 of the
15  *     License, or (at your option) any later version.
16  *
17  *     This file is distributed in the hope that it will be useful,
18  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
19  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  *     GNU General Public License for more details.
21  *
22  * Or, alternatively,
23  *
24  *  b) Permission is hereby granted, free of charge, to any person
25  *     obtaining a copy of this software and associated documentation
26  *     files (the "Software"), to deal in the Software without
27  *     restriction, including without limitation the rights to use,
28  *     copy, modify, merge, publish, distribute, sublicense, and/or
29  *     sell copies of the Software, and to permit persons to whom the
30  *     Software is furnished to do so, subject to the following
31  *     conditions:
32  *
33  *     The above copyright notice and this permission notice shall be
34  *     included in all copies or substantial portions of the Software.
35  *
36  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43  *     OTHER DEALINGS IN THE SOFTWARE.
44  */
45
46 #include <dt-bindings/input/input.h>
47
48 #include "qcom-mdm9615-wp8548.dtsi"
49 #include <dt-bindings/interrupt-controller/irq.h>
50 #include <dt-bindings/gpio/gpio.h>
51
52 / {
53         model = "MangOH Green with WP8548 Module";
54         compatible = "swir,mangoh-green-wp8548", "swir,wp8548", "qcom,mdm9615";
55
56         aliases {
57                 spi0 = &gsbi3_spi;
58                 serial0 = &gsbi4_serial;
59                 serial1 = &gsbi5_serial;
60                 i2c0 = &gsbi5_i2c;
61                 mmc0 = &sdcc1;
62         };
63
64         chosen {
65                 stdout-path = "serial1:115200n8";
66         };
67 };
68
69 &msmgpio {
70         /* MangOH GPIO Mapping :
71          * - 2 : GPIOEXP_INT2
72          * - 7 : IOT1_GPIO2
73          * - 8 : IOT0_GPIO4
74          * - 13: IOT0_GPIO3
75          * - 21: IOT1_GPIO4
76          * - 22: IOT2_GPIO1
77          * - 23: IOT2_GPIO2
78          * - 24: IOT2_GPIO3
79          * - 25: IOT1_GPIO1
80          * - 32: IOT1_GPIO3
81          * - 33: IOT0_GPIO2
82          * - 42: IOT0_GPIO1 and SD Card Detect
83          */
84
85         gpioext1_pins: gpioext1_pins {
86                 pins {
87                         pins = "gpio2";
88                         function = "gpio";
89                         input-enable;
90                         bias-disable;
91                 };
92         };
93
94         sdc_cd_pins: sdc_cd_pins {
95                 pins {
96                         pins = "gpio42";
97                         function = "gpio";
98                         drive-strength = <2>;
99                         bias-pull-up;
100                 };
101         };
102 };
103
104 &gsbi3_spi {
105         spi@0 {
106                 compatible = "swir,mangoh-iotport-spi", "spidev";
107                 spi-max-frequency = <24000000>;
108                 reg = <0>;
109         };
110 };
111
112 &gsbi5_i2c {
113         mux@71 {
114                 compatible = "nxp,pca9548";
115                 #address-cells = <1>;
116                 #size-cells = <0>;
117                 reg = <0x71>;
118
119                 i2c_iot0: i2c@0 {
120                         #address-cells = <1>;
121                         #size-cells = <0>;
122                         reg = <0>;
123                 };
124
125                 i2c_iot1: i2c@1 {
126                         #address-cells = <1>;
127                         #size-cells = <0>;
128                         reg = <1>;
129                 };
130
131                 i2c_iot2: i2c@2 {
132                         #address-cells = <1>;
133                         #size-cells = <0>;
134                         reg = <2>;
135                 };
136
137                 i2c@3 {
138                         #address-cells = <1>;
139                         #size-cells = <0>;
140                         reg = <3>;
141
142                         usbhub: hub@8 {
143                                 compatible = "smsc,usb3503a";
144                                 reg = <0x8>;
145                                 connect-gpios = <&gpioext2 1 GPIO_ACTIVE_HIGH>;
146                                 intn-gpios = <&gpioext2 0 GPIO_ACTIVE_LOW>;
147                                 initial-mode = <1>;
148                         };
149                 };
150
151                 i2c@4 {
152                         #address-cells = <1>;
153                         #size-cells = <0>;
154                         reg = <4>;
155
156                         gpioext0: gpio@3e {
157                                 /* GPIO Expander 0 Mapping :
158                                  * - 0: ARDUINO_RESET_Level shift
159                                  * - 1: BattChrgr_PG_N
160                                  * - 2: BattGauge_GPIO
161                                  * - 3: LED_ON (out active high)
162                                  * - 4: ATmega_reset_GPIO
163                                  * - 5: X
164                                  * - 6: PCM_ANALOG_SELECT (out active high)
165                                  * - 7: X
166                                  * - 8: Board_rev_res1 (in)
167                                  * - 9: Board_rev_res2 (in)
168                                  * - 10: UART_EXP1_ENn (out active low / pull-down)
169                                  * - 11: UART_EXP1_IN (out pull-down)
170                                  * - 12: UART_EXP2_IN (out pull-down)
171                                  * - 13: SDIO_SEL (out pull-down)
172                                  * - 14: SPI_EXP1_ENn (out active low / pull-down)
173                                  * - 15: SPI_EXP1_IN (out pull-down)
174                                  */
175                                 #gpio-cells = <2>;
176                                 #interrupt-cells = <2>;
177                                 compatible = "semtech,sx1509q";
178                                 reg = <0x3e>;
179                                 interrupt-parent = <&gpioext1>;
180                                 interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
181
182                                 probe-reset;
183
184                                 gpio-controller;
185                                 interrupt-controller;
186                         };
187                 };
188
189                 i2c@5 {
190                         #address-cells = <1>;
191                         #size-cells = <0>;
192                         reg = <5>;
193
194                         gpioext1: gpio@3f {
195                                 /* GPIO Expander 1 Mapping :
196                                  * - 0: GPIOEXP_INT1
197                                  * - 1: Battery detect
198                                  * - 2: GPIO_SCF3_RESET
199                                  * - 3: LED_CARD_DETECT_IOT0 (in)
200                                  * - 4: LED_CARD_DETECT_IOT1 (in)
201                                  * - 5: LED_CARD_DETECT_IOT2 (in)
202                                  * - 6: UIM2_PWM_SELECT
203                                  * - 7: UIM2_M2_S_SELECT
204                                  * - 8: TP900
205                                  * - 9: SENSOR_INT1 (in)
206                                  * - 10: SENSOR_INT2 (in)
207                                  * - 11: CARD_DETECT_IOT0 (in pull-up)
208                                  * - 12: CARD_DETECT_IOT2 (in pull-up)
209                                  * - 13: CARD_DETECT_IOT1 (in pull-up)
210                                  * - 14: GPIOEXP_INT3 (in active low / pull-up)
211                                  * - 15: BattChrgr_INT_N
212                                  */
213                                 pinctrl-0 = <&gpioext1_pins>;
214                                 pinctrl-names = "default";
215
216                                 #gpio-cells = <2>;
217                                 #interrupt-cells = <2>;
218                                 compatible = "semtech,sx1509q";
219                                 reg = <0x3f>;
220                                 interrupt-parent = <&msmgpio>;
221                                 interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
222
223                                 probe-reset;
224
225                                 gpio-controller;
226                                 interrupt-controller;
227                         };
228                 };
229
230                 i2c@6 {
231                         #address-cells = <1>;
232                         #size-cells = <0>;
233                         reg = <6>;
234
235                         gpioext2: gpio@70 {
236                                 /* GPIO Expander 2 Mapping :
237                                  * - 0: USB_HUB_INTn
238                                  * - 1: HUB_CONNECT
239                                  * - 2: GPIO_IOT2_RESET (out active low / pull-up)
240                                  * - 3: GPIO_IOT1_RESET (out active low / pull-up)
241                                  * - 4: GPIO_IOT0_RESET (out active low / pull-up)
242                                  * - 5: TP901
243                                  * - 6: TP902
244                                  * - 7: TP903
245                                  * - 8: UART_EXP2_ENn (out active low / pull-down)
246                                  * - 9: PCM_EXP1_ENn (out active low)
247                                  * - 10: PCM_EXP1_SEL (out)
248                                  * - 11: ARD_FTDI
249                                  * - 12: TP904
250                                  * - 13: TP905
251                                  * - 14: TP906
252                                  * - 15: RS232_Enable (out active high / pull-up)
253                                  */
254                                 #gpio-cells = <2>;
255                                 #interrupt-cells = <2>;
256                                 compatible = "semtech,sx1509q";
257                                 reg = <0x70>;
258                                 interrupt-parent = <&gpioext1>;
259                                 interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
260
261                                 probe-reset;
262
263                                 gpio-controller;
264                                 interrupt-controller;
265                         };
266                 };
267
268                 i2c@7 {
269                         #address-cells = <1>;
270                         #size-cells = <0>;
271                         reg = <7>;
272                 };
273         };
274 };
275
276 &sdcc1 {
277         pinctrl-0 = <&sdc_cd_pins>;
278         pinctrl-names = "default";
279         disable-wp;
280         cd-gpios = <&msmgpio 42 GPIO_ACTIVE_LOW>; /* Active low CD */
281 };