Merge tag 'platform-drivers-x86-v4.18-1' of git://git.infradead.org/linux-platform...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / imx28-evk.dts
1 // SPDX-License-Identifier: GPL-2.0+
2 //
3 // Copyright 2012 Freescale Semiconductor, Inc.
4
5 /dts-v1/;
6 #include "imx28.dtsi"
7
8 / {
9         model = "Freescale i.MX28 Evaluation Kit";
10         compatible = "fsl,imx28-evk", "fsl,imx28";
11
12         memory@40000000 {
13                 reg = <0x40000000 0x08000000>;
14         };
15
16         apb@80000000 {
17                 apbh@80000000 {
18                         gpmi-nand@8000c000 {
19                                 pinctrl-names = "default";
20                                 pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg
21                                              &gpmi_pins_evk>;
22                                 status = "okay";
23                         };
24
25                         ssp0: ssp@80010000 {
26                                 compatible = "fsl,imx28-mmc";
27                                 pinctrl-names = "default";
28                                 pinctrl-0 = <&mmc0_8bit_pins_a
29                                         &mmc0_cd_cfg &mmc0_sck_cfg>;
30                                 bus-width = <8>;
31                                 wp-gpios = <&gpio2 12 0>;
32                                 vmmc-supply = <&reg_vddio_sd0>;
33                                 status = "okay";
34                         };
35
36                         ssp1: ssp@80012000 {
37                                 compatible = "fsl,imx28-mmc";
38                                 bus-width = <8>;
39                                 wp-gpios = <&gpio0 28 0>;
40                         };
41
42                         ssp2: ssp@80014000 {
43                                 #address-cells = <1>;
44                                 #size-cells = <0>;
45                                 compatible = "fsl,imx28-spi";
46                                 pinctrl-names = "default";
47                                 pinctrl-0 = <&spi2_pins_a>;
48                                 status = "okay";
49
50                                 flash: m25p80@0 {
51                                         #address-cells = <1>;
52                                         #size-cells = <1>;
53                                         compatible = "sst,sst25vf016b", "jedec,spi-nor";
54                                         spi-max-frequency = <40000000>;
55                                         reg = <0>;
56                                 };
57                         };
58
59                         pinctrl@80018000 {
60                                 pinctrl-names = "default";
61                                 pinctrl-0 = <&hog_pins_a>;
62
63                                 hog_pins_a: hog@0 {
64                                         reg = <0>;
65                                         fsl,pinmux-ids = <
66                                                 MX28_PAD_SSP1_CMD__GPIO_2_13
67                                                 MX28_PAD_SSP1_DATA3__GPIO_2_15
68                                                 MX28_PAD_ENET0_RX_CLK__GPIO_4_13
69                                                 MX28_PAD_SSP1_SCK__GPIO_2_12
70                                                 MX28_PAD_PWM3__GPIO_3_28
71                                                 MX28_PAD_LCD_RESET__GPIO_3_30
72                                                 MX28_PAD_AUART2_RX__GPIO_3_8
73                                                 MX28_PAD_AUART2_TX__GPIO_3_9
74                                         >;
75                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
76                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
77                                         fsl,pull-up = <MXS_PULL_DISABLE>;
78                                 };
79
80                                 led_pin_gpio3_5: led_gpio3_5@0 {
81                                         reg = <0>;
82                                         fsl,pinmux-ids = <
83                                                 MX28_PAD_AUART1_TX__GPIO_3_5
84                                         >;
85                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
86                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
87                                         fsl,pull-up = <MXS_PULL_DISABLE>;
88                                 };
89
90                                 gpmi_pins_evk: gpmi-nand-evk@0 {
91                                         reg = <0>;
92                                         fsl,pinmux-ids = <
93                                                 MX28_PAD_GPMI_CE1N__GPMI_CE1N
94                                                 MX28_PAD_GPMI_RDY1__GPMI_READY1
95                                         >;
96                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
97                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
98                                         fsl,pull-up = <MXS_PULL_DISABLE>;
99                                 };
100
101                                 lcdif_pins_evk: lcdif-evk@0 {
102                                         reg = <0>;
103                                         fsl,pinmux-ids = <
104                                                 MX28_PAD_LCD_RD_E__LCD_VSYNC
105                                                 MX28_PAD_LCD_WR_RWN__LCD_HSYNC
106                                                 MX28_PAD_LCD_RS__LCD_DOTCLK
107                                                 MX28_PAD_LCD_CS__LCD_ENABLE
108                                         >;
109                                         fsl,drive-strength = <MXS_DRIVE_4mA>;
110                                         fsl,voltage = <MXS_VOLTAGE_HIGH>;
111                                         fsl,pull-up = <MXS_PULL_DISABLE>;
112                                 };
113                         };
114
115                         lcdif@80030000 {
116                                 pinctrl-names = "default";
117                                 pinctrl-0 = <&lcdif_24bit_pins_a
118                                              &lcdif_pins_evk>;
119                                 lcd-supply = <&reg_lcd_3v3>;
120                                 display = <&display0>;
121                                 status = "okay";
122
123                                 display0: display0 {
124                                         bits-per-pixel = <32>;
125                                         bus-width = <24>;
126
127                                         display-timings {
128                                                 native-mode = <&timing0>;
129                                                 timing0: timing0 {
130                                                         clock-frequency = <33500000>;
131                                                         hactive = <800>;
132                                                         vactive = <480>;
133                                                         hback-porch = <89>;
134                                                         hfront-porch = <164>;
135                                                         vback-porch = <23>;
136                                                         vfront-porch = <10>;
137                                                         hsync-len = <10>;
138                                                         vsync-len = <10>;
139                                                         hsync-active = <0>;
140                                                         vsync-active = <0>;
141                                                         de-active = <1>;
142                                                         pixelclk-active = <0>;
143                                                 };
144                                         };
145                                 };
146                         };
147
148                         can0: can@80032000 {
149                                 pinctrl-names = "default";
150                                 pinctrl-0 = <&can0_pins_a>;
151                                 xceiver-supply = <&reg_can_3v3>;
152                                 status = "okay";
153                         };
154
155                         can1: can@80034000 {
156                                 pinctrl-names = "default";
157                                 pinctrl-0 = <&can1_pins_a>;
158                                 xceiver-supply = <&reg_can_3v3>;
159                                 status = "okay";
160                         };
161                 };
162
163                 apbx@80040000 {
164                         saif0: saif@80042000 {
165                                 pinctrl-names = "default";
166                                 pinctrl-0 = <&saif0_pins_a>;
167                                 status = "okay";
168                         };
169
170                         saif1: saif@80046000 {
171                                 pinctrl-names = "default";
172                                 pinctrl-0 = <&saif1_pins_a>;
173                                 fsl,saif-master = <&saif0>;
174                                 status = "okay";
175                         };
176
177                         lradc@80050000 {
178                                 status = "okay";
179                                 fsl,lradc-touchscreen-wires = <4>;
180                                 fsl,ave-ctrl = <4>;
181                                 fsl,ave-delay = <2>;
182                                 fsl,settling = <10>;
183                         };
184
185                         i2c0: i2c@80058000 {
186                                 pinctrl-names = "default";
187                                 pinctrl-0 = <&i2c0_pins_a>;
188                                 status = "okay";
189
190                                 sgtl5000: codec@a {
191                                         compatible = "fsl,sgtl5000";
192                                         reg = <0x0a>;
193                                         #sound-dai-cells = <0>;
194                                         VDDA-supply = <&reg_3p3v>;
195                                         VDDIO-supply = <&reg_3p3v>;
196                                         clocks = <&saif0>;
197                                 };
198
199                                 at24@51 {
200                                         compatible = "atmel,24c32";
201                                         pagesize = <32>;
202                                         reg = <0x51>;
203                                 };
204                         };
205
206                         pwm: pwm@80064000 {
207                                 pinctrl-names = "default";
208                                 pinctrl-0 = <&pwm2_pins_a>;
209                                 status = "okay";
210                         };
211
212                         duart: serial@80074000 {
213                                 pinctrl-names = "default";
214                                 pinctrl-0 = <&duart_pins_a>;
215                                 status = "okay";
216                         };
217
218                         auart0: serial@8006a000 {
219                                 pinctrl-names = "default";
220                                 pinctrl-0 = <&auart0_pins_a>;
221                                 uart-has-rtscts;
222                                 status = "okay";
223                         };
224
225                         auart3: serial@80070000 {
226                                 pinctrl-names = "default";
227                                 pinctrl-0 = <&auart3_pins_a>;
228                                 status = "okay";
229                         };
230
231                         usbphy0: usbphy@8007c000 {
232                                 status = "okay";
233                         };
234
235                         usbphy1: usbphy@8007e000 {
236                                 status = "okay";
237                         };
238                 };
239         };
240
241         ahb@80080000 {
242                 usb0: usb@80080000 {
243                         pinctrl-names = "default";
244                         pinctrl-0 = <&usb0_id_pins_a>;
245                         vbus-supply = <&reg_usb0_vbus>;
246                         status = "okay";
247                 };
248
249                 usb1: usb@80090000 {
250                         vbus-supply = <&reg_usb1_vbus>;
251                         status = "okay";
252                 };
253
254                 mac0: ethernet@800f0000 {
255                         phy-mode = "rmii";
256                         pinctrl-names = "default";
257                         pinctrl-0 = <&mac0_pins_a>;
258                         phy-supply = <&reg_fec_3v3>;
259                         phy-reset-gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;
260                         phy-reset-duration = <100>;
261                         status = "okay";
262                 };
263
264                 mac1: ethernet@800f4000 {
265                         phy-mode = "rmii";
266                         pinctrl-names = "default";
267                         pinctrl-0 = <&mac1_pins_a>;
268                         status = "okay";
269                 };
270         };
271
272         regulators {
273                 compatible = "simple-bus";
274                 #address-cells = <1>;
275                 #size-cells = <0>;
276
277                 reg_3p3v: regulator@0 {
278                         compatible = "regulator-fixed";
279                         reg = <0>;
280                         regulator-name = "3P3V";
281                         regulator-min-microvolt = <3300000>;
282                         regulator-max-microvolt = <3300000>;
283                         regulator-always-on;
284                 };
285
286                 reg_vddio_sd0: regulator@1 {
287                         compatible = "regulator-fixed";
288                         reg = <1>;
289                         regulator-name = "vddio-sd0";
290                         regulator-min-microvolt = <3300000>;
291                         regulator-max-microvolt = <3300000>;
292                         gpio = <&gpio3 28 0>;
293                 };
294
295                 reg_fec_3v3: regulator@2 {
296                         compatible = "regulator-fixed";
297                         reg = <2>;
298                         regulator-name = "fec-3v3";
299                         regulator-min-microvolt = <3300000>;
300                         regulator-max-microvolt = <3300000>;
301                         gpio = <&gpio2 15 0>;
302                 };
303
304                 reg_usb0_vbus: regulator@3 {
305                         compatible = "regulator-fixed";
306                         reg = <3>;
307                         regulator-name = "usb0_vbus";
308                         regulator-min-microvolt = <5000000>;
309                         regulator-max-microvolt = <5000000>;
310                         gpio = <&gpio3 9 0>;
311                         enable-active-high;
312                 };
313
314                 reg_usb1_vbus: regulator@4 {
315                         compatible = "regulator-fixed";
316                         reg = <4>;
317                         regulator-name = "usb1_vbus";
318                         regulator-min-microvolt = <5000000>;
319                         regulator-max-microvolt = <5000000>;
320                         gpio = <&gpio3 8 0>;
321                         enable-active-high;
322                 };
323
324                 reg_lcd_3v3: regulator@5 {
325                         compatible = "regulator-fixed";
326                         reg = <5>;
327                         regulator-name = "lcd-3v3";
328                         regulator-min-microvolt = <3300000>;
329                         regulator-max-microvolt = <3300000>;
330                         gpio = <&gpio3 30 0>;
331                         enable-active-high;
332                 };
333
334                 reg_can_3v3: regulator@6 {
335                         compatible = "regulator-fixed";
336                         reg = <6>;
337                         regulator-name = "can-3v3";
338                         regulator-min-microvolt = <3300000>;
339                         regulator-max-microvolt = <3300000>;
340                         gpio = <&gpio2 13 0>;
341                         enable-active-high;
342                 };
343
344         };
345
346         sound {
347                 compatible = "fsl,imx28-evk-sgtl5000",
348                              "fsl,mxs-audio-sgtl5000";
349                 model = "imx28-evk-sgtl5000";
350                 saif-controllers = <&saif0 &saif1>;
351                 audio-codec = <&sgtl5000>;
352         };
353
354         leds {
355                 compatible = "gpio-leds";
356                 pinctrl-names = "default";
357                 pinctrl-0 = <&led_pin_gpio3_5>;
358
359                 user {
360                         label = "Heartbeat";
361                         gpios = <&gpio3 5 0>;
362                         linux,default-trigger = "heartbeat";
363                 };
364         };
365
366         backlight {
367                 compatible = "pwm-backlight";
368                 pwms = <&pwm 2 5000000>;
369                 brightness-levels = <0 4 8 16 32 64 128 255>;
370                 default-brightness-level = <6>;
371         };
372 };