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