WIP FPC-III support
[linux/fpc-iii.git] / arch / arm / boot / dts / imx50-kobo-aura.dts
blob97cfd970fe742528938b01434109ba710ad0f6e4
1 // SPDX-License-Identifier: GPL-2.0+
2 // Copyright 2019 Jonathan Neuschäfer
3 //
4 // The Kobo Aura e-book reader, model N514. The mainboard is marked as E606F0B.
6 /dts-v1/;
7 #include "imx50.dtsi"
8 #include <dt-bindings/input/input.h>
9 #include <dt-bindings/interrupt-controller/irq.h>
11 / {
12         model = "Kobo Aura (N514)";
13         compatible = "kobo,aura", "fsl,imx50";
15         chosen {
16                 stdout-path = "serial1:115200n8";
17         };
19         memory@70000000 {
20                 device_type = "memory";
21                 reg = <0x70000000 0x10000000>;
22         };
24         gpio-leds {
25                 compatible = "gpio-leds";
26                 pinctrl-names = "default";
27                 pinctrl-0 = <&pinctrl_leds>;
29                 on {
30                         label = "kobo_aura:orange:on";
31                         gpios = <&gpio6 24 GPIO_ACTIVE_LOW>;
32                         panic-indicator;
33                 };
34         };
36         gpio-keys {
37                 compatible = "gpio-keys";
38                 pinctrl-names = "default";
39                 pinctrl-0 = <&pinctrl_gpiokeys>;
41                 power {
42                         label = "Power Button";
43                         gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;
44                         linux,code = <KEY_POWER>;
45                 };
47                 hallsensor {
48                         label = "Hallsensor";
49                         gpios = <&gpio5 15 GPIO_ACTIVE_LOW>;
50                         linux,code = <KEY_RESERVED>;
51                         linux,input-type = <EV_SW>;
52                 };
54                 frontlight {
55                         label = "Frontlight";
56                         gpios = <&gpio4 1 GPIO_ACTIVE_LOW>;
57                         linux,code = <KEY_DISPLAYTOGGLE>;
58                 };
59         };
61         sd2_pwrseq: pwrseq {
62                 compatible = "mmc-pwrseq-simple";
63                 pinctrl-names = "default";
64                 pinctrl-0 = <&pinctrl_sd2_reset>;
65                 reset-gpios = <&gpio4 17 GPIO_ACTIVE_LOW>;
66         };
68         sd2_vmmc: gpio-regulator {
69                 compatible = "regulator-gpio";
70                 pinctrl-names = "default";
71                 pinctrl-0 = <&pinctrl_sd2_vmmc>;
72                 regulator-name = "vmmc";
73                 states = <3300000 0>;
74                 regulator-min-microvolt = <3300000>;
75                 regulator-max-microvolt = <3300000>;
76                 enable-gpio = <&gpio4 12 GPIO_ACTIVE_LOW>;
77                 startup-delay-us = <100000>;
78         };
81 &esdhc1 {
82         pinctrl-names = "default";
83         pinctrl-0 = <&pinctrl_sd1>;
84         max-frequency = <50000000>;
85         bus-width = <4>;
86         cd-gpios = <&gpio5 17 GPIO_ACTIVE_LOW>;
87         disable-wp;
88         status = "okay";
90         /* External µSD card */
93 &esdhc2 {
94         pinctrl-names = "default";
95         pinctrl-0 = <&pinctrl_sd2>;
96         bus-width = <4>;
97         max-frequency = <50000000>;
98         disable-wp;
99         mmc-pwrseq = <&sd2_pwrseq>;
100         vmmc-supply = <&sd2_vmmc>;
101         status = "okay";
103         /* CyberTan WC121 SDIO WiFi (BCM43362) */
106 &esdhc3 {
107         pinctrl-names = "default";
108         pinctrl-0 = <&pinctrl_sd3>;
109         bus-width = <8>;
110         non-removable;
111         max-frequency = <50000000>;
112         disable-wp;
113         status = "okay";
115         /* Internal eMMC */
118 &i2c1 {
119         pinctrl-names = "default";
120         pinctrl-0 = <&pinctrl_i2c1>;
121         status = "okay";
123         touchscreen@15 {
124                 reg = <0x15>;
125                 compatible = "elan,ektf2132";
126                 pinctrl-names = "default";
127                 pinctrl-0 = <&pinctrl_ts>;
128                 power-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
129                 interrupts-extended = <&gpio5 13 IRQ_TYPE_EDGE_FALLING>;
130         };
133 &i2c2 {
134         pinctrl-names = "default";
135         pinctrl-0 = <&pinctrl_i2c2>;
136         status = "okay";
138         /* TODO: TPS65185 PMIC for E Ink at 0x68 */
141 &i2c3 {
142         pinctrl-names = "default";
143         pinctrl-0 = <&pinctrl_i2c3>;
144         status = "okay";
146         /* TODO: embedded controller at 0x43 */
149 &iomuxc {
150         pinctrl_gpiokeys: gpiokeysgrp {
151                 fsl,pins = <
152                         MX50_PAD_CSPI_MISO__GPIO4_10            0x0
153                         MX50_PAD_SD2_D7__GPIO5_15               0x0
154                         MX50_PAD_KEY_ROW0__GPIO4_1              0x0
155                 >;
156         };
158         pinctrl_i2c1: i2c1grp {
159                 fsl,pins = <
160                         MX50_PAD_I2C1_SCL__I2C1_SCL             0x400001fd
161                         MX50_PAD_I2C1_SDA__I2C1_SDA             0x400001fd
162                 >;
163         };
165         pinctrl_i2c2: i2c2grp {
166                 fsl,pins = <
167                         MX50_PAD_I2C2_SCL__I2C2_SCL             0x400001fd
168                         MX50_PAD_I2C2_SDA__I2C2_SDA             0x400001fd
169                 >;
170         };
172         pinctrl_i2c3: i2c3grp {
173                 fsl,pins = <
174                         MX50_PAD_I2C3_SCL__I2C3_SCL             0x400001fd
175                         MX50_PAD_I2C3_SDA__I2C3_SDA             0x400001fd
176                 >;
177         };
179         pinctrl_leds: ledsgrp {
180                 fsl,pins = <
181                         MX50_PAD_PWM1__GPIO6_24                 0x0
182                 >;
183         };
185         pinctrl_sd1: sd1grp {
186                 fsl,pins = <
187                         MX50_PAD_SD1_CMD__ESDHC1_CMD            0x1e4
188                         MX50_PAD_SD1_CLK__ESDHC1_CLK            0xd4
189                         MX50_PAD_SD1_D0__ESDHC1_DAT0            0x1d4
190                         MX50_PAD_SD1_D1__ESDHC1_DAT1            0x1d4
191                         MX50_PAD_SD1_D2__ESDHC1_DAT2            0x1d4
192                         MX50_PAD_SD1_D3__ESDHC1_DAT3            0x1d4
194                         MX50_PAD_SD2_CD__GPIO5_17               0x0
195                 >;
196         };
198         pinctrl_sd2: sd2grp {
199                 fsl,pins = <
200                         MX50_PAD_SD2_CMD__ESDHC2_CMD            0x1e4
201                         MX50_PAD_SD2_CLK__ESDHC2_CLK            0xd4
202                         MX50_PAD_SD2_D0__ESDHC2_DAT0            0x1d4
203                         MX50_PAD_SD2_D1__ESDHC2_DAT1            0x1d4
204                         MX50_PAD_SD2_D2__ESDHC2_DAT2            0x1d4
205                         MX50_PAD_SD2_D3__ESDHC2_DAT3            0x1d4
206                 >;
207         };
209         pinctrl_sd2_reset: sd2-resetgrp {
210                 fsl,pins = <
211                         MX50_PAD_ECSPI2_MOSI__GPIO4_17          0x0
212                 >;
213         };
215         pinctrl_sd2_vmmc: sd2-vmmcgrp {
216                 fsl,pins = <
217                         MX50_PAD_ECSPI1_SCLK__GPIO4_12          0x0
218                 >;
219         };
221         pinctrl_sd3: sd3grp {
222                 fsl,pins = <
223                         MX50_PAD_SD3_CMD__ESDHC3_CMD            0x1e4
224                         MX50_PAD_SD3_CLK__ESDHC3_CLK            0xd4
225                         MX50_PAD_SD3_D0__ESDHC3_DAT0            0x1d4
226                         MX50_PAD_SD3_D1__ESDHC3_DAT1            0x1d4
227                         MX50_PAD_SD3_D2__ESDHC3_DAT2            0x1d4
228                         MX50_PAD_SD3_D3__ESDHC3_DAT3            0x1d4
229                         MX50_PAD_SD3_D4__ESDHC3_DAT4            0x1d4
230                         MX50_PAD_SD3_D5__ESDHC3_DAT5            0x1d4
231                         MX50_PAD_SD3_D6__ESDHC3_DAT6            0x1d4
232                         MX50_PAD_SD3_D7__ESDHC3_DAT7            0x1d4
233                 >;
234         };
236         pinctrl_ts: tsgrp {
237                 fsl,pins = <
238                         MX50_PAD_CSPI_MOSI__GPIO4_9             0x0
239                         MX50_PAD_SD2_D5__GPIO5_13               0x0
240                 >;
241         };
243         pinctrl_uart2: uart2grp {
244                 fsl,pins = <
245                         MX50_PAD_UART2_TXD__UART2_TXD_MUX       0x1e4
246                         MX50_PAD_UART2_RXD__UART2_RXD_MUX       0x1e4
247                 >;
248         };
250         pinctrl_usbphy: usbphygrp {
251                 fsl,pins = <
252                         MX50_PAD_ECSPI2_SS0__GPIO4_19           0x0
253                 >;
254         };
257 &uart2 {
258         pinctrl-names = "default";
259         pinctrl-0 = <&pinctrl_uart2>;
260         status = "okay";
263 &usbotg {
264         phy_type = "utmi_wide";
265         dr_mode = "peripheral";
266         status = "okay";
269 &usbphy0 {
270         pinctrl-names = "default";
271         pinctrl-0 = <&pinctrl_usbphy>;
272         vbus-detect-gpio = <&gpio4 19 GPIO_ACTIVE_LOW>;