GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / at91sam9g20ek_common.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * at91sam9g20ek_common.dtsi - Device Tree file for Atmel at91sam9g20ek board
4  *
5  * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
6  */
7 #include "at91sam9g20.dtsi"
8 #include <dt-bindings/input/input.h>
9
10 / {
11
12         chosen {
13                 bootargs = "mem=64M root=/dev/mtdblock5 rw rootfstype=ubifs";
14                 stdout-path = "serial0:115200n8";
15         };
16
17         memory@20000000 {
18                 reg = <0x20000000 0x4000000>;
19         };
20
21         clocks {
22                 slow_xtal {
23                         clock-frequency = <32768>;
24                 };
25
26                 main_xtal {
27                         clock-frequency = <18432000>;
28                 };
29         };
30
31         ahb {
32                 apb {
33                         pinctrl@fffff400 {
34                                 board {
35                                         pinctrl_pck0_as_mck: pck0_as_mck {
36                                                 atmel,pins =
37                                                         <AT91_PIOC 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PC1 periph B */
38                                         };
39
40                                 };
41
42                                 usb1 {
43                                         pinctrl_usb1_vbus_gpio: usb1_vbus_gpio {
44                                                 atmel,pins =
45                                                         <AT91_PIOC 5 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;   /* PC5 GPIO */
46                                         };
47                                 };
48
49                                 mmc0_slot1 {
50                                         pinctrl_board_mmc0_slot1: mmc0_slot1-board {
51                                                 atmel,pins =
52                                                         <AT91_PIOC 9 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;   /* PC9 gpio CD pin pull up and deglitch */
53                                         };
54                                 };
55                         };
56
57                         dbgu: serial@fffff200 {
58                                 status = "okay";
59                         };
60
61                         tcb0: timer@fffa0000 {
62                                 timer@0 {
63                                         compatible = "atmel,tcb-timer";
64                                         reg = <0>, <1>;
65                                 };
66
67                                 timer@2 {
68                                         compatible = "atmel,tcb-timer";
69                                         reg = <2>;
70                                 };
71                         };
72
73                         usart0: serial@fffb0000 {
74                                 pinctrl-0 =
75                                         <&pinctrl_usart0
76                                          &pinctrl_usart0_rts
77                                          &pinctrl_usart0_cts
78                                          &pinctrl_usart0_dtr_dsr
79                                          &pinctrl_usart0_dcd
80                                          &pinctrl_usart0_ri>;
81                                 status = "okay";
82                         };
83
84                         usart1: serial@fffb4000 {
85                                 status = "okay";
86                         };
87
88                         macb0: ethernet@fffc4000 {
89                                 phy-mode = "rmii";
90                                 status = "okay";
91                         };
92
93                         usb1: gadget@fffa4000 {
94                                 pinctrl-0 = <&pinctrl_usb1_vbus_gpio>;
95                                 pinctrl-names = "default";
96                                 atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
97                                 status = "okay";
98                         };
99
100                         mmc0: mmc@fffa8000 {
101                                 pinctrl-0 = <
102                                         &pinctrl_board_mmc0_slot1
103                                         &pinctrl_mmc0_clk
104                                         &pinctrl_mmc0_slot1_cmd_dat0
105                                         &pinctrl_mmc0_slot1_dat1_3>;
106                                 pinctrl-names = "default";
107                                 status = "okay";
108                                 slot@1 {
109                                         reg = <1>;
110                                         bus-width = <4>;
111                                         cd-gpios = <&pioC 9 GPIO_ACTIVE_HIGH>;
112                                 };
113                         };
114
115                         ssc0: ssc@fffbc000 {
116                                 status = "okay";
117                                 pinctrl-0 = <&pinctrl_ssc0_tx>;
118                         };
119
120                         spi0: spi@fffc8000 {
121                                 cs-gpios = <0>, <&pioC 11 0>, <0>, <0>;
122                                 flash@1 {
123                                         compatible = "atmel,at45", "atmel,dataflash";
124                                         spi-max-frequency = <50000000>;
125                                         reg = <1>;
126                                 };
127                         };
128
129                         shdwc@fffffd10 {
130                                 atmel,wakeup-counter = <10>;
131                                 atmel,wakeup-rtt-timer;
132                         };
133
134                         rtc@fffffd20 {
135                                 atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
136                                 status = "okay";
137                         };
138
139                         watchdog@fffffd40 {
140                                 status = "okay";
141                         };
142
143                         gpbr: syscon@fffffd50 {
144                                 status = "okay";
145                         };
146                 };
147
148                 ebi: ebi@10000000 {
149                         status = "okay";
150
151                         nand_controller: nand-controller {
152                                 status = "okay";
153                                 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
154                                 pinctrl-names = "default";
155
156                                 nand@3 {
157                                         reg = <0x3 0x0 0x800000>;
158                                         rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
159                                         cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
160                                         nand-bus-width = <8>;
161                                         nand-ecc-mode = "soft";
162                                         nand-on-flash-bbt;
163                                         label = "atmel_nand";
164
165                                         partitions {
166                                                 compatible = "fixed-partitions";
167                                                 #address-cells = <1>;
168                                                 #size-cells = <1>;
169
170                                                 at91bootstrap@0 {
171                                                         label = "at91bootstrap";
172                                                         reg = <0x0 0x20000>;
173                                                 };
174
175                                                 barebox@20000 {
176                                                         label = "barebox";
177                                                         reg = <0x20000 0x40000>;
178                                                 };
179
180                                                 bareboxenv@60000 {
181                                                         label = "bareboxenv";
182                                                         reg = <0x60000 0x20000>;
183                                                 };
184
185                                                 bareboxenv2@80000 {
186                                                         label = "bareboxenv2";
187                                                         reg = <0x80000 0x20000>;
188                                                 };
189
190                                                 oftree@80000 {
191                                                         label = "oftree";
192                                                         reg = <0xa0000 0x20000>;
193                                                 };
194
195                                                 kernel@a0000 {
196                                                         label = "kernel";
197                                                         reg = <0xc0000 0x400000>;
198                                                 };
199
200                                                 rootfs@4a0000 {
201                                                         label = "rootfs";
202                                                         reg = <0x4c0000 0x7800000>;
203                                                 };
204
205                                                 data@7ca0000 {
206                                                         label = "data";
207                                                         reg = <0x7cc0000 0x8340000>;
208                                                 };
209                                         };
210                                 };
211                         };
212                 };
213
214                 usb0: ohci@500000 {
215                         num-ports = <2>;
216                         status = "okay";
217                 };
218         };
219
220         i2c-gpio-0 {
221                 status = "okay";
222
223                 24c512@50 {
224                         compatible = "atmel,24c512";
225                         reg = <0x50>;
226                         vcc-supply = <&reg_3v3>;
227                 };
228
229                 wm8731: wm8731@1b {
230                         compatible = "wm8731";
231                         reg = <0x1b>;
232
233                         /* PCK0 at 12MHz */
234                         clocks = <&pmc PMC_TYPE_SYSTEM 8>;
235                         clock-names = "mclk";
236                         assigned-clocks = <&pmc PMC_TYPE_SYSTEM 8>;
237                         assigned-clock-rates = <12000000>;
238
239                         HPVDD-supply = <&vcc_dac>;
240                         AVDD-supply = <&vcc_dac>;
241                         DCVDD-supply = <&reg_3v3>;
242                         DBVDD-supply = <&reg_3v3>;
243                 };
244         };
245
246         gpio-keys {
247                 compatible = "gpio-keys";
248
249                 button-3 {
250                         label = "Button 3";
251                         gpios = <&pioA 30 GPIO_ACTIVE_LOW>;
252                         linux,code = <0x103>;
253                         wakeup-source;
254                 };
255
256                 button-4 {
257                         label = "Button 4";
258                         gpios = <&pioA 31 GPIO_ACTIVE_LOW>;
259                         linux,code = <KEY_PROG1>;
260                         wakeup-source;
261                 };
262         };
263
264         sound {
265                 compatible = "atmel,at91sam9g20ek-wm8731-audio";
266                 pinctrl-names = "default";
267                 pinctrl-0 = <&pinctrl_pck0_as_mck>;
268
269                 atmel,model = "wm8731 @ AT91SAMG20EK";
270
271                 atmel,audio-routing =
272                         "Ext Spk", "LHPOUT",
273                         "Int Mic", "MICIN";
274
275                 atmel,ssc-controller = <&ssc0>;
276                 atmel,audio-codec = <&wm8731>;
277         };
278
279         reg_5v: fixedregulator0 {
280                 compatible = "regulator-fixed";
281                 regulator-name = "5V";
282                 regulator-min-microvolt = <5000000>;
283                 regulator-max-microvolt = <5000000>;
284         };
285
286         reg_3v3: fixedregulator1 {
287                 compatible = "regulator-fixed";
288                 regulator-name = "3V3";
289                 vin-supply = <&reg_5v>;
290                 regulator-min-microvolt = <3300000>;
291                 regulator-max-microvolt = <3300000>;
292         };
293
294         reg_1v: fixedregulator2 {
295                 compatible = "regulator-fixed";
296                 regulator-name = "1V";
297                 vin-supply = <&reg_5v>;
298                 regulator-min-microvolt = <1000000>;
299                 regulator-max-microvolt = <1000000>;
300         };
301
302         vcc_dac: fixedregulator3 {
303                 compatible = "regulator-fixed";
304                 regulator-name = "VCC_DAC";
305                 vin-supply = <&reg_3v3>;
306                 regulator-min-microvolt = <3300000>;
307                 regulator-max-microvolt = <3300000>;
308         };
309 };