Commit | Line | Data |
---|---|---|
db84c038 MR |
1 | /* |
2 | * Copyright 2012 Free Electrons | |
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 | ||
12 | /* | |
13 | * The CFA-10049 is an expansion board for the CFA-10036 module, thus we | |
14 | * need to include the CFA-10036 DTS. | |
15 | */ | |
bc3875f1 | 16 | #include "imx28-cfa10036.dts" |
db84c038 MR |
17 | |
18 | / { | |
19 | model = "Crystalfontz CFA-10049 Board"; | |
20 | compatible = "crystalfontz,cfa10049", "crystalfontz,cfa10036", "fsl,imx28"; | |
21 | ||
142ee336 FE |
22 | i2cmux { |
23 | compatible = "i2c-mux-gpio"; | |
24 | #address-cells = <1>; | |
25 | #size-cells = <0>; | |
26 | pinctrl-names = "default"; | |
27 | pinctrl-0 = <&i2cmux_pins_cfa10049>; | |
28 | mux-gpios = <&gpio1 22 0 &gpio1 23 0>; | |
29 | i2c-parent = <&i2c1>; | |
30 | ||
31 | i2c@0 { | |
32 | #address-cells = <1>; | |
33 | #size-cells = <0>; | |
34 | reg = <0>; | |
35 | ||
36 | adc0: nau7802@2a { | |
37 | compatible = "nuvoton,nau7802"; | |
38 | reg = <0x2a>; | |
39 | nuvoton,vldo = <3000>; | |
40 | }; | |
41 | }; | |
42 | ||
43 | i2c@1 { | |
44 | #address-cells = <1>; | |
45 | #size-cells = <0>; | |
46 | reg = <1>; | |
47 | ||
48 | adc1: nau7802@2a { | |
49 | compatible = "nuvoton,nau7802"; | |
50 | reg = <0x2a>; | |
51 | nuvoton,vldo = <3000>; | |
52 | }; | |
53 | }; | |
54 | ||
55 | i2c@2 { | |
56 | #address-cells = <1>; | |
57 | #size-cells = <0>; | |
58 | reg = <2>; | |
59 | ||
60 | adc2: nau7802@2a { | |
61 | compatible = "nuvoton,nau7802"; | |
62 | reg = <0x2a>; | |
63 | nuvoton,vldo = <3000>; | |
64 | }; | |
65 | }; | |
66 | ||
67 | i2c@3 { | |
68 | reg = <3>; | |
69 | #address-cells = <1>; | |
70 | #size-cells = <0>; | |
71 | ||
72 | pca9555: pca9555@20 { | |
73 | compatible = "nxp,pca9555"; | |
74 | pinctrl-names = "default"; | |
75 | pinctrl-0 = <&pca_pins_cfa10049>; | |
76 | interrupt-parent = <&gpio2>; | |
77 | interrupts = <19 0x2>; | |
78 | gpio-controller; | |
79 | #gpio-cells = <2>; | |
80 | interrupt-controller; | |
81 | #interrupt-cells = <2>; | |
82 | reg = <0x20>; | |
83 | }; | |
84 | }; | |
85 | }; | |
86 | ||
db84c038 | 87 | apb@80000000 { |
223d1f92 MR |
88 | apbh@80000000 { |
89 | pinctrl@80018000 { | |
dac63a5f | 90 | usb_pins_cfa10049: usb-10049@0 { |
24196d5c MR |
91 | reg = <0>; |
92 | fsl,pinmux-ids = < | |
bc3875f1 | 93 | MX28_PAD_GPMI_D07__GPIO_0_7 |
dac63a5f | 94 | >; |
4191c340 LW |
95 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
96 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
97 | fsl,pull-up = <MXS_PULL_DISABLE>; | |
dac63a5f AB |
98 | }; |
99 | ||
100 | i2cmux_pins_cfa10049: i2cmux-10049@0 { | |
101 | reg = <0>; | |
102 | fsl,pinmux-ids = < | |
bc3875f1 LW |
103 | MX28_PAD_LCD_D22__GPIO_1_22 |
104 | MX28_PAD_LCD_D23__GPIO_1_23 | |
dac63a5f | 105 | >; |
4191c340 LW |
106 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
107 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
108 | fsl,pull-up = <MXS_PULL_DISABLE>; | |
dac63a5f AB |
109 | }; |
110 | ||
111 | mac0_pins_cfa10049: mac0-10049@0 { | |
112 | reg = <0>; | |
113 | fsl,pinmux-ids = < | |
bc3875f1 | 114 | MX28_PAD_SSP2_SS2__GPIO_2_21 |
24196d5c | 115 | >; |
4191c340 LW |
116 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
117 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
118 | fsl,pull-up = <MXS_PULL_DISABLE>; | |
24196d5c MR |
119 | }; |
120 | ||
dac63a5f | 121 | pca_pins_cfa10049: pca-10049@0 { |
5b615fbf MR |
122 | reg = <0>; |
123 | fsl,pinmux-ids = < | |
bc3875f1 | 124 | MX28_PAD_SSP2_SS0__GPIO_2_19 |
dac63a5f | 125 | >; |
4191c340 LW |
126 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
127 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
128 | fsl,pull-up = <MXS_PULL_ENABLE>; | |
dac63a5f AB |
129 | }; |
130 | ||
131 | rotary_pins_cfa10049: rotary-10049@0 { | |
132 | reg = <0>; | |
133 | fsl,pinmux-ids = < | |
bc3875f1 LW |
134 | MX28_PAD_I2C0_SCL__GPIO_3_24 |
135 | MX28_PAD_I2C0_SDA__GPIO_3_25 | |
dac63a5f | 136 | >; |
4191c340 LW |
137 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
138 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
139 | fsl,pull-up = <MXS_PULL_ENABLE>; | |
dac63a5f AB |
140 | }; |
141 | ||
142 | rotary_btn_pins_cfa10049: rotary-btn-10049@0 { | |
143 | reg = <0>; | |
144 | fsl,pinmux-ids = < | |
bc3875f1 | 145 | MX28_PAD_SAIF1_SDATA0__GPIO_3_26 |
5b615fbf | 146 | >; |
4191c340 LW |
147 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
148 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
149 | fsl,pull-up = <MXS_PULL_ENABLE>; | |
5b615fbf MR |
150 | }; |
151 | ||
1fe42740 MR |
152 | spi2_pins_cfa10049: spi2-cfa10049@0 { |
153 | reg = <0>; | |
154 | fsl,pinmux-ids = < | |
bc3875f1 LW |
155 | MX28_PAD_SSP2_SCK__GPIO_2_16 |
156 | MX28_PAD_SSP2_MOSI__GPIO_2_17 | |
157 | MX28_PAD_SSP2_MISO__GPIO_2_18 | |
158 | MX28_PAD_AUART1_TX__GPIO_3_5 | |
1fe42740 | 159 | >; |
4191c340 LW |
160 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
161 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
162 | fsl,pull-up = <MXS_PULL_ENABLE>; | |
1fe42740 MR |
163 | }; |
164 | ||
223d1f92 MR |
165 | spi3_pins_cfa10049: spi3-cfa10049@0 { |
166 | reg = <0>; | |
167 | fsl,pinmux-ids = < | |
bc3875f1 LW |
168 | MX28_PAD_GPMI_RDN__GPIO_0_24 |
169 | MX28_PAD_GPMI_RESETN__GPIO_0_28 | |
170 | MX28_PAD_GPMI_CE1N__GPIO_0_17 | |
171 | MX28_PAD_GPMI_ALE__GPIO_0_26 | |
172 | MX28_PAD_GPMI_CLE__GPIO_0_27 | |
223d1f92 | 173 | >; |
4191c340 LW |
174 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
175 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
176 | fsl,pull-up = <MXS_PULL_ENABLE>; | |
223d1f92 | 177 | }; |
1fe42740 MR |
178 | |
179 | lcdif_18bit_pins_cfa10049: lcdif-18bit@0 { | |
180 | reg = <0>; | |
181 | fsl,pinmux-ids = < | |
bc3875f1 LW |
182 | MX28_PAD_LCD_D00__LCD_D0 |
183 | MX28_PAD_LCD_D01__LCD_D1 | |
184 | MX28_PAD_LCD_D02__LCD_D2 | |
185 | MX28_PAD_LCD_D03__LCD_D3 | |
186 | MX28_PAD_LCD_D04__LCD_D4 | |
187 | MX28_PAD_LCD_D05__LCD_D5 | |
188 | MX28_PAD_LCD_D06__LCD_D6 | |
189 | MX28_PAD_LCD_D07__LCD_D7 | |
190 | MX28_PAD_LCD_D08__LCD_D8 | |
191 | MX28_PAD_LCD_D09__LCD_D9 | |
192 | MX28_PAD_LCD_D10__LCD_D10 | |
193 | MX28_PAD_LCD_D11__LCD_D11 | |
194 | MX28_PAD_LCD_D12__LCD_D12 | |
195 | MX28_PAD_LCD_D13__LCD_D13 | |
196 | MX28_PAD_LCD_D14__LCD_D14 | |
197 | MX28_PAD_LCD_D15__LCD_D15 | |
198 | MX28_PAD_LCD_D16__LCD_D16 | |
199 | MX28_PAD_LCD_D17__LCD_D17 | |
1fe42740 | 200 | >; |
4191c340 LW |
201 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
202 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
203 | fsl,pull-up = <MXS_PULL_DISABLE>; | |
1fe42740 MR |
204 | }; |
205 | ||
206 | lcdif_pins_cfa10049: lcdif-evk@0 { | |
207 | reg = <0>; | |
208 | fsl,pinmux-ids = < | |
bc3875f1 LW |
209 | MX28_PAD_LCD_RD_E__LCD_VSYNC |
210 | MX28_PAD_LCD_WR_RWN__LCD_HSYNC | |
211 | MX28_PAD_LCD_RS__LCD_DOTCLK | |
212 | MX28_PAD_LCD_CS__LCD_ENABLE | |
1fe42740 | 213 | >; |
4191c340 LW |
214 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
215 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
216 | fsl,pull-up = <MXS_PULL_DISABLE>; | |
1fe42740 | 217 | }; |
7d403408 | 218 | |
dac63a5f AB |
219 | lcdif_pins_cfa10049_pullup: lcdif-10049-pullup@0 { |
220 | reg = <0>; | |
221 | fsl,pinmux-ids = < | |
bc3875f1 | 222 | MX28_PAD_LCD_RESET__GPIO_3_30 |
dac63a5f | 223 | >; |
4191c340 LW |
224 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
225 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
226 | fsl,pull-up = <MXS_PULL_ENABLE>; | |
dac63a5f AB |
227 | }; |
228 | ||
7d403408 AB |
229 | w1_gpio_pins: w1-gpio@0 { |
230 | reg = <0>; | |
231 | fsl,pinmux-ids = < | |
bc3875f1 | 232 | MX28_PAD_LCD_D21__GPIO_1_21 |
7d403408 | 233 | >; |
4191c340 LW |
234 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
235 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | |
236 | fsl,pull-up = <MXS_PULL_DISABLE>; /* 0 will enable the keeper */ | |
7d403408 | 237 | }; |
1fe42740 MR |
238 | }; |
239 | ||
240 | lcdif@80030000 { | |
241 | pinctrl-names = "default"; | |
242 | pinctrl-0 = <&lcdif_18bit_pins_cfa10049 | |
dac63a5f AB |
243 | &lcdif_pins_cfa10049 |
244 | &lcdif_pins_cfa10049_pullup>; | |
7029b396 | 245 | display = <&display0>; |
1fe42740 | 246 | status = "okay"; |
0d9f8217 | 247 | |
7029b396 | 248 | display0: display0 { |
0d9f8217 SG |
249 | bits-per-pixel = <32>; |
250 | bus-width = <18>; | |
251 | ||
252 | display-timings { | |
253 | native-mode = <&timing0>; | |
254 | timing0: timing0 { | |
255 | clock-frequency = <9216000>; | |
256 | hactive = <320>; | |
257 | vactive = <480>; | |
258 | hback-porch = <2>; | |
259 | hfront-porch = <2>; | |
260 | vback-porch = <2>; | |
261 | vfront-porch = <2>; | |
262 | hsync-len = <15>; | |
263 | vsync-len = <15>; | |
264 | hsync-active = <0>; | |
265 | vsync-active = <0>; | |
266 | de-active = <1>; | |
267 | pixelclk-active = <1>; | |
268 | }; | |
269 | }; | |
270 | }; | |
223d1f92 | 271 | }; |
223d1f92 MR |
272 | }; |
273 | ||
db84c038 | 274 | apbx@80040000 { |
1fe42740 | 275 | pwm: pwm@80064000 { |
b400932c MR |
276 | pinctrl-names = "default"; |
277 | pinctrl-0 = <&pwm3_pins_b>; | |
1fe42740 MR |
278 | status = "okay"; |
279 | }; | |
280 | ||
db84c038 MR |
281 | i2c1: i2c@8005a000 { |
282 | pinctrl-names = "default"; | |
283 | pinctrl-0 = <&i2c1_pins_a>; | |
284 | status = "okay"; | |
285 | }; | |
186e3d94 MR |
286 | |
287 | usbphy1: usbphy@8007e000 { | |
288 | status = "okay"; | |
289 | }; | |
ac77bc22 AB |
290 | |
291 | lradc@80050000 { | |
292 | status = "okay"; | |
293 | fsl,lradc-touchscreen-wires = <4>; | |
294 | }; | |
186e3d94 MR |
295 | }; |
296 | }; | |
297 | ||
298 | ahb@80080000 { | |
299 | usb1: usb@80090000 { | |
300 | vbus-supply = <®_usb1_vbus>; | |
c8e42bc9 | 301 | pinctrl-0 = <&usb1_pins_a>; |
186e3d94 MR |
302 | pinctrl-names = "default"; |
303 | status = "okay"; | |
304 | }; | |
305 | }; | |
306 | ||
307 | regulators { | |
308 | compatible = "simple-bus"; | |
352d318c SG |
309 | #address-cells = <1>; |
310 | #size-cells = <0>; | |
186e3d94 | 311 | |
352d318c | 312 | reg_usb1_vbus: regulator@0 { |
186e3d94 | 313 | compatible = "regulator-fixed"; |
352d318c | 314 | reg = <0>; |
dac63a5f AB |
315 | pinctrl-names = "default"; |
316 | pinctrl-0 = <&usb_pins_cfa10049>; | |
186e3d94 MR |
317 | regulator-name = "usb1_vbus"; |
318 | regulator-min-microvolt = <5000000>; | |
319 | regulator-max-microvolt = <5000000>; | |
320 | gpio = <&gpio0 7 1>; | |
db84c038 MR |
321 | }; |
322 | }; | |
8eec4b31 MR |
323 | |
324 | ahb@80080000 { | |
325 | mac0: ethernet@800f0000 { | |
326 | phy-mode = "rmii"; | |
327 | pinctrl-names = "default"; | |
dac63a5f AB |
328 | pinctrl-0 = <&mac0_pins_a |
329 | &mac0_pins_cfa10049>; | |
12de44f5 | 330 | phy-reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>; |
8eec4b31 MR |
331 | phy-reset-duration = <100>; |
332 | status = "okay"; | |
333 | }; | |
334 | }; | |
7ecc70a9 | 335 | |
1fe42740 MR |
336 | spi2 { |
337 | compatible = "spi-gpio"; | |
338 | pinctrl-names = "default"; | |
339 | pinctrl-0 = <&spi2_pins_cfa10049>; | |
340 | status = "okay"; | |
341 | gpio-sck = <&gpio2 16 0>; | |
342 | gpio-mosi = <&gpio2 17 0>; | |
343 | gpio-miso = <&gpio2 18 0>; | |
65bc642f | 344 | cs-gpios = <&gpio3 5 0>; |
1fe42740 MR |
345 | num-chipselects = <1>; |
346 | #address-cells = <1>; | |
347 | #size-cells = <0>; | |
348 | ||
349 | hx8357: hx8357@0 { | |
350 | compatible = "himax,hx8357b", "himax,hx8357"; | |
351 | reg = <0>; | |
352 | spi-max-frequency = <100000>; | |
353 | spi-cpol; | |
354 | spi-cpha; | |
355 | gpios-reset = <&gpio3 30 0>; | |
356 | im-gpios = <&gpio5 4 0 &gpio5 5 0 &gpio5 6 0>; | |
357 | }; | |
358 | }; | |
359 | ||
7ecc70a9 MR |
360 | spi3 { |
361 | compatible = "spi-gpio"; | |
362 | pinctrl-names = "default"; | |
363 | pinctrl-0 = <&spi3_pins_cfa10049>; | |
364 | status = "okay"; | |
365 | gpio-sck = <&gpio0 24 0>; | |
366 | gpio-mosi = <&gpio0 28 0>; | |
367 | cs-gpios = <&gpio0 17 0 &gpio0 26 0 &gpio0 27 0>; | |
368 | num-chipselects = <3>; | |
369 | #address-cells = <1>; | |
370 | #size-cells = <0>; | |
371 | ||
372 | gpio5: gpio5@0 { | |
373 | compatible = "fairchild,74hc595"; | |
374 | gpio-controller; | |
375 | #gpio-cells = <2>; | |
376 | reg = <0>; | |
377 | registers-number = <2>; | |
378 | spi-max-frequency = <100000>; | |
379 | }; | |
380 | ||
381 | gpio6: gpio6@1 { | |
382 | compatible = "fairchild,74hc595"; | |
383 | gpio-controller; | |
384 | #gpio-cells = <2>; | |
385 | reg = <1>; | |
386 | registers-number = <4>; | |
387 | spi-max-frequency = <100000>; | |
388 | }; | |
389 | ||
390 | dac0: dh2228@2 { | |
391 | compatible = "rohm,dh2228fv"; | |
392 | reg = <2>; | |
393 | spi-max-frequency = <100000>; | |
394 | }; | |
395 | }; | |
1fe42740 | 396 | |
a640cf64 MR |
397 | gpio_keys { |
398 | compatible = "gpio-keys"; | |
dac63a5f AB |
399 | pinctrl-names = "default"; |
400 | pinctrl-0 = <&rotary_btn_pins_cfa10049>; | |
a640cf64 MR |
401 | |
402 | rotary_button { | |
403 | label = "rotary_button"; | |
404 | gpios = <&gpio3 26 1>; | |
405 | debounce-interval = <10>; | |
406 | linux,code = <28>; | |
407 | }; | |
408 | }; | |
409 | ||
0943b960 MR |
410 | rotary { |
411 | compatible = "rotary-encoder"; | |
dac63a5f AB |
412 | pinctrl-names = "default"; |
413 | pinctrl-0 = <&rotary_pins_cfa10049>; | |
0943b960 MR |
414 | gpios = <&gpio3 24 1>, <&gpio3 25 1>; |
415 | linux,axis = <1>; /* REL_Y */ | |
416 | rotary-encoder,relative-axis; | |
417 | }; | |
418 | ||
1fe42740 MR |
419 | backlight { |
420 | compatible = "pwm-backlight"; | |
421 | pwms = <&pwm 3 5000000>; | |
422 | brightness-levels = <0 4 8 16 32 64 128 255>; | |
423 | default-brightness-level = <6>; | |
7d403408 AB |
424 | |
425 | }; | |
426 | ||
88ab101c | 427 | onewire { |
7d403408 AB |
428 | compatible = "w1-gpio"; |
429 | pinctrl-names = "default"; | |
430 | pinctrl-0 = <&w1_gpio_pins>; | |
431 | status = "okay"; | |
432 | gpios = <&gpio1 21 0>; | |
1fe42740 | 433 | }; |
db84c038 | 434 | }; |