]>
Commit | Line | Data |
---|---|---|
891d940a JN |
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. | |
5 | ||
6 | /dts-v1/; | |
7 | #include "imx50.dtsi" | |
8 | #include <dt-bindings/input/input.h> | |
9 | ||
10 | / { | |
11 | model = "Kobo Aura (N514)"; | |
12 | compatible = "kobo,aura", "fsl,imx50"; | |
13 | ||
14 | chosen { | |
15 | stdout-path = "serial1:115200n8"; | |
16 | }; | |
17 | ||
18 | memory@70000000 { | |
19 | device_type = "memory"; | |
20 | reg = <0x70000000 0x10000000>; | |
21 | }; | |
22 | ||
23 | gpio-leds { | |
24 | compatible = "gpio-leds"; | |
25 | pinctrl-names = "default"; | |
26 | pinctrl-0 = <&pinctrl_leds>; | |
27 | ||
28 | on { | |
29 | label = "kobo_aura:orange:on"; | |
30 | gpios = <&gpio6 24 GPIO_ACTIVE_LOW>; | |
31 | panic-indicator; | |
32 | }; | |
33 | }; | |
34 | ||
35 | gpio-keys { | |
36 | compatible = "gpio-keys"; | |
37 | pinctrl-names = "default"; | |
38 | pinctrl-0 = <&pinctrl_gpiokeys>; | |
39 | ||
40 | power { | |
41 | label = "Power Button"; | |
42 | gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; | |
43 | linux,code = <KEY_POWER>; | |
44 | }; | |
45 | ||
46 | hallsensor { | |
47 | label = "Hallsensor"; | |
48 | gpios = <&gpio5 15 GPIO_ACTIVE_LOW>; | |
49 | linux,code = <KEY_RESERVED>; | |
50 | linux,input-type = <EV_SW>; | |
51 | }; | |
52 | ||
53 | frontlight { | |
54 | label = "Frontlight"; | |
55 | gpios = <&gpio4 1 GPIO_ACTIVE_LOW>; | |
56 | linux,code = <KEY_DISPLAYTOGGLE>; | |
57 | }; | |
58 | }; | |
59 | ||
60 | sd2_pwrseq: pwrseq { | |
61 | compatible = "mmc-pwrseq-simple"; | |
62 | pinctrl-names = "default"; | |
63 | pinctrl-0 = <&pinctrl_sd2_reset>; | |
64 | reset-gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; | |
65 | }; | |
66 | ||
67 | sd2_vmmc: gpio-regulator { | |
68 | compatible = "regulator-gpio"; | |
69 | pinctrl-names = "default"; | |
70 | pinctrl-0 = <&pinctrl_sd2_vmmc>; | |
71 | regulator-name = "vmmc"; | |
72 | states = <3300000 0>; | |
73 | regulator-min-microvolt = <3300000>; | |
74 | regulator-max-microvolt = <3300000>; | |
75 | enable-gpio = <&gpio4 12 GPIO_ACTIVE_LOW>; | |
76 | startup-delay-us = <100000>; | |
77 | }; | |
78 | }; | |
79 | ||
80 | &esdhc1 { | |
81 | pinctrl-names = "default"; | |
82 | pinctrl-0 = <&pinctrl_sd1>; | |
83 | max-frequency = <50000000>; | |
84 | bus-width = <4>; | |
85 | cd-gpios = <&gpio5 17 GPIO_ACTIVE_LOW>; | |
86 | disable-wp; | |
87 | status = "okay"; | |
88 | ||
89 | /* External µSD card */ | |
90 | }; | |
91 | ||
92 | &esdhc2 { | |
93 | pinctrl-names = "default"; | |
94 | pinctrl-0 = <&pinctrl_sd2>; | |
95 | bus-width = <4>; | |
96 | max-frequency = <50000000>; | |
97 | disable-wp; | |
98 | mmc-pwrseq = <&sd2_pwrseq>; | |
99 | vmmc-supply = <&sd2_vmmc>; | |
100 | status = "okay"; | |
101 | ||
102 | /* CyberTan WC121 SDIO WiFi (BCM43362) */ | |
103 | }; | |
104 | ||
105 | &esdhc3 { | |
106 | pinctrl-names = "default"; | |
107 | pinctrl-0 = <&pinctrl_sd3>; | |
108 | bus-width = <8>; | |
109 | non-removable; | |
110 | max-frequency = <50000000>; | |
111 | disable-wp; | |
112 | status = "okay"; | |
113 | ||
114 | /* Internal eMMC */ | |
115 | }; | |
116 | ||
117 | &i2c1 { | |
118 | pinctrl-names = "default"; | |
119 | pinctrl-0 = <&pinctrl_i2c1>; | |
120 | status = "okay"; | |
121 | ||
122 | /* TODO: ektf2132 touch controller at 0x15 */ | |
123 | }; | |
124 | ||
125 | &i2c2 { | |
126 | pinctrl-names = "default"; | |
127 | pinctrl-0 = <&pinctrl_i2c2>; | |
128 | status = "okay"; | |
129 | ||
130 | /* TODO: TPS65185 PMIC for E Ink at 0x68 */ | |
131 | }; | |
132 | ||
133 | &i2c3 { | |
134 | pinctrl-names = "default"; | |
135 | pinctrl-0 = <&pinctrl_i2c3>; | |
136 | status = "okay"; | |
137 | ||
138 | /* TODO: embedded controller at 0x43 */ | |
139 | }; | |
140 | ||
141 | &iomuxc { | |
142 | pinctrl_gpiokeys: gpiokeys { | |
143 | fsl,pins = < | |
144 | MX50_PAD_CSPI_MISO__GPIO4_10 0x0 | |
145 | MX50_PAD_SD2_D7__GPIO5_15 0x0 | |
146 | MX50_PAD_KEY_ROW0__GPIO4_1 0x0 | |
147 | >; | |
148 | }; | |
149 | ||
150 | pinctrl_i2c1: i2c1 { | |
151 | fsl,pins = < | |
152 | MX50_PAD_I2C1_SCL__I2C1_SCL 0x400001fd | |
153 | MX50_PAD_I2C1_SDA__I2C1_SDA 0x400001fd | |
154 | >; | |
155 | }; | |
156 | ||
157 | pinctrl_i2c2: i2c2 { | |
158 | fsl,pins = < | |
159 | MX50_PAD_I2C2_SCL__I2C2_SCL 0x400001fd | |
160 | MX50_PAD_I2C2_SDA__I2C2_SDA 0x400001fd | |
161 | >; | |
162 | }; | |
163 | ||
164 | pinctrl_i2c3: i2c3 { | |
165 | fsl,pins = < | |
166 | MX50_PAD_I2C3_SCL__I2C3_SCL 0x400001fd | |
167 | MX50_PAD_I2C3_SDA__I2C3_SDA 0x400001fd | |
168 | >; | |
169 | }; | |
170 | ||
171 | pinctrl_leds: leds { | |
172 | fsl,pins = < | |
173 | MX50_PAD_PWM1__GPIO6_24 0x0 | |
174 | >; | |
175 | }; | |
176 | ||
177 | pinctrl_sd1: sd1 { | |
178 | fsl,pins = < | |
179 | MX50_PAD_SD1_CMD__ESDHC1_CMD 0x1e4 | |
180 | MX50_PAD_SD1_CLK__ESDHC1_CLK 0xd4 | |
181 | MX50_PAD_SD1_D0__ESDHC1_DAT0 0x1d4 | |
182 | MX50_PAD_SD1_D1__ESDHC1_DAT1 0x1d4 | |
183 | MX50_PAD_SD1_D2__ESDHC1_DAT2 0x1d4 | |
184 | MX50_PAD_SD1_D3__ESDHC1_DAT3 0x1d4 | |
185 | ||
186 | MX50_PAD_SD2_CD__GPIO5_17 0x0 | |
187 | >; | |
188 | }; | |
189 | ||
190 | pinctrl_sd2: sd2 { | |
191 | fsl,pins = < | |
192 | MX50_PAD_SD2_CMD__ESDHC2_CMD 0x1e4 | |
193 | MX50_PAD_SD2_CLK__ESDHC2_CLK 0xd4 | |
194 | MX50_PAD_SD2_D0__ESDHC2_DAT0 0x1d4 | |
195 | MX50_PAD_SD2_D1__ESDHC2_DAT1 0x1d4 | |
196 | MX50_PAD_SD2_D2__ESDHC2_DAT2 0x1d4 | |
197 | MX50_PAD_SD2_D3__ESDHC2_DAT3 0x1d4 | |
198 | >; | |
199 | }; | |
200 | ||
201 | pinctrl_sd2_reset: sd2-reset { | |
202 | fsl,pins = < | |
203 | MX50_PAD_ECSPI2_MOSI__GPIO4_17 0x0 | |
204 | >; | |
205 | }; | |
206 | ||
207 | pinctrl_sd2_vmmc: sd2-vmmc { | |
208 | fsl,pins = < | |
209 | MX50_PAD_ECSPI1_SCLK__GPIO4_12 0x0 | |
210 | >; | |
211 | }; | |
212 | ||
213 | pinctrl_sd3: sd3 { | |
214 | fsl,pins = < | |
215 | MX50_PAD_SD3_CMD__ESDHC3_CMD 0x1e4 | |
216 | MX50_PAD_SD3_CLK__ESDHC3_CLK 0xd4 | |
217 | MX50_PAD_SD3_D0__ESDHC3_DAT0 0x1d4 | |
218 | MX50_PAD_SD3_D1__ESDHC3_DAT1 0x1d4 | |
219 | MX50_PAD_SD3_D2__ESDHC3_DAT2 0x1d4 | |
220 | MX50_PAD_SD3_D3__ESDHC3_DAT3 0x1d4 | |
221 | MX50_PAD_SD3_D4__ESDHC3_DAT4 0x1d4 | |
222 | MX50_PAD_SD3_D5__ESDHC3_DAT5 0x1d4 | |
223 | MX50_PAD_SD3_D6__ESDHC3_DAT6 0x1d4 | |
224 | MX50_PAD_SD3_D7__ESDHC3_DAT7 0x1d4 | |
225 | >; | |
226 | }; | |
227 | ||
228 | pinctrl_uart2: uart2 { | |
229 | fsl,pins = < | |
230 | MX50_PAD_UART2_TXD__UART2_TXD_MUX 0x1e4 | |
231 | MX50_PAD_UART2_RXD__UART2_RXD_MUX 0x1e4 | |
232 | >; | |
233 | }; | |
234 | ||
235 | pinctrl_usbphy: usbphy { | |
236 | fsl,pins = < | |
237 | MX50_PAD_ECSPI2_SS0__GPIO4_19 0x0 | |
238 | >; | |
239 | }; | |
240 | }; | |
241 | ||
242 | &uart2 { | |
243 | pinctrl-names = "default"; | |
244 | pinctrl-0 = <&pinctrl_uart2>; | |
245 | status = "okay"; | |
246 | }; | |
247 | ||
248 | &usbotg { | |
249 | phy_type = "utmi_wide"; | |
250 | dr_mode = "peripheral"; | |
251 | status = "okay"; | |
252 | }; | |
253 | ||
254 | &usbphy0 { | |
255 | pinctrl-names = "default"; | |
256 | pinctrl-0 = <&pinctrl_usbphy>; | |
257 | vbus-detect-gpio = <&gpio4 19 GPIO_ACTIVE_LOW>; | |
258 | }; |