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