Merge tag 'xilinx-for-v2021.04-rc3' of https://gitlab.denx.de/u-boot/custodians/u...
[platform/kernel/u-boot.git] / arch / arm / dts / beacon-renesom-som.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright 2020, Compass Electronics Group, LLC
4  */
5
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/clk/versaclock.h>
8
9 / {
10         memory@48000000 {
11                 device_type = "memory";
12                 /* first 128MB is reserved for secure area. */
13                 reg = <0x0 0x48000000 0x0 0xc000000>;
14         };
15
16         memory@57000000 {
17                 device_type = "memory";
18                 reg = <0x0 0x57000000 0x0 0x29000000>;
19         };
20
21         osc_32k: osc_32k {
22                 compatible = "fixed-clock";
23                 #clock-cells = <0>;
24                 clock-frequency = <32768>;
25                 clock-output-names = "osc_32k";
26         };
27
28         reg_1p8v: regulator0 {
29                 compatible = "regulator-fixed";
30                 regulator-name = "fixed-1.8V";
31                 regulator-min-microvolt = <1800000>;
32                 regulator-max-microvolt = <1800000>;
33                 regulator-boot-on;
34                 regulator-always-on;
35         };
36
37         reg_3p3v: regulator1 {
38                 compatible = "regulator-fixed";
39                 regulator-name = "fixed-3.3V";
40                 regulator-min-microvolt = <3300000>;
41                 regulator-max-microvolt = <3300000>;
42                 regulator-boot-on;
43                 regulator-always-on;
44         };
45
46         wlan_pwrseq: wlan_pwrseq {
47                 compatible = "mmc-pwrseq-simple";
48                 reset-gpios = <&pca9654 1 GPIO_ACTIVE_LOW>;
49                 clocks = <&osc_32k>;
50                 clock-names = "ext_clock";
51                 post-power-on-delay-ms = <80>;
52         };
53 };
54
55 &avb {
56         pinctrl-0 = <&avb_pins>;
57         pinctrl-names = "default";
58         phy-handle = <&phy0>;
59         rx-internal-delay-ps = <1800>;
60         tx-internal-delay-ps = <2000>;
61         status = "okay";
62
63         phy0: ethernet-phy@0 {
64                 reg = <0>;
65                 interrupt-parent = <&gpio2>;
66                 interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
67                 reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
68         };
69 };
70
71 &extal_clk {
72         clock-frequency = <16666666>;
73 };
74
75 &extalr_clk {
76         clock-frequency = <32768>;
77 };
78
79 &gpio6 {
80         usb_hub_reset {
81                 gpio-hog;
82                 gpios = <10 GPIO_ACTIVE_HIGH>;
83                 output-high;
84                 line-name = "usb-hub-reset";
85         };
86 };
87
88 &hscif0 {
89         pinctrl-0 = <&hscif0_pins>;
90         pinctrl-names = "default";
91         uart-has-rtscts;
92         status = "okay";
93
94         bluetooth {
95                 compatible = "brcm,bcm43438-bt";
96                 shutdown-gpios = <&pca9654 2 GPIO_ACTIVE_HIGH>;
97                 host-wakeup-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
98                 device-wakeup-gpios = <&pca9654 5 GPIO_ACTIVE_HIGH>;
99                 clocks = <&osc_32k>;
100                 clock-names = "extclk";
101                 max-speed = <4000000>;
102         };
103 };
104
105 &hscif2 {
106         status = "okay";
107         pinctrl-0 = <&hscif2_pins>;
108         pinctrl-names = "default";
109 };
110
111 &i2c4 {
112         status = "okay";
113         clock-frequency = <100000>;
114
115         pca9654: gpio@20 {
116                 compatible = "onnn,pca9654";
117                 reg = <0x20>;
118                 gpio-controller;
119                 #gpio-cells = <2>;
120                 gpio-line-names =
121                         "i2c4_20_0",
122                         "wl_reg_on",
123                         "bt_reg_on",
124                         "i2c4_20_3",
125                         "i2c4_20_4",
126                         "bt_dev_wake",
127                         "i2c4_20_6",
128                         "i2c4_20_7";
129         };
130
131         pca9654_lte: gpio@21 {
132                 compatible = "onnn,pca9654";
133                 reg = <0x21>;
134                 interrupt-parent = <&gpio5>;
135                 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
136                 interrupt-controller;
137                 #interrupt-cells = <2>;
138                 gpio-controller;
139                 #gpio-cells = <2>;
140                 gpio-line-names =
141                         "i2c4_21_0",
142                         "zoe_pwr_on",
143                         "zoe_extint",
144                         "zoe_reset_n",
145                         "sara_reset",
146                         "i2c4_21_5",
147                         "sara_pwr_off",
148                         "sara_networking_status";
149         };
150
151         eeprom@50 {
152                 compatible = "microchip,at24c64", "atmel,24c64";
153                 pagesize = <32>;
154                 read-only;      /* Manufacturing EEPROM programmed at factory */
155                 reg = <0x50>;
156         };
157
158         rtc@51 {
159                 compatible = "nxp,pcf85263";
160                 reg = <0x51>;
161         };
162
163         versaclock5: versaclock_som@6a {
164                 compatible = "idt,5p49v6965";
165                 reg = <0x6a>;
166                 #clock-cells = <1>;
167                 clocks = <&x304_clk>;
168                 clock-names = "xin";
169                 /* du_dotclkin0, du_dotclkin2, usb_extal, avb_txcrefclk */
170                 assigned-clocks = <&versaclock5 1>,
171                                    <&versaclock5 2>,
172                                    <&versaclock5 3>,
173                                    <&versaclock5 4>;
174
175                 assigned-clock-rates = <33333333>, <33333333>, <50000000>, <125000000>;
176
177                 OUT1 {
178                         idt,mode = <VC5_CMOS>;
179                         idt,voltage-microvolt = <1800000>;
180                         idt,slew-percent = <100>;
181                 };
182
183                 OUT2 {
184                         idt,mode = <VC5_CMOS>;
185                         idt,voltage-microvolt = <1800000>;
186                         idt,slew-percent = <100>;
187                 };
188
189                 OUT3 {
190                         idt,mode = <VC5_CMOS>;
191                         idt,voltage-microvolt = <1800000>;
192                         idt,slew-percent = <100>;
193                 };
194
195                 OUT4 {
196                         idt,mode = <VC5_CMOS>;
197                         idt,voltage-microvolt = <3300000>;
198                         idt,slew-percent = <100>;
199                 };
200         };
201 };
202
203 &pfc {
204         pinctrl-0 = <&scif_clk_pins>;
205         pinctrl-names = "default";
206
207         avb_pins: avb {
208                 mux {
209                         groups = "avb_link", "avb_mdio", "avb_mii";
210                         function = "avb";
211                 };
212
213                 pins_mdio {
214                         groups = "avb_mdio";
215                         drive-strength = <24>;
216                 };
217
218                 pins_mii_tx {
219                         pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0",
220                                "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3";
221                         drive-strength = <12>;
222                 };
223         };
224
225         scif2_pins: scif2 {
226                 groups = "scif2_data_a";
227                 function = "scif2";
228         };
229
230         hscif0_pins: hscif0 {
231                 groups = "hscif0_data", "hscif0_ctrl";
232                 function = "hscif0";
233         };
234
235         hscif1_pins: hscif1 {
236                 groups = "hscif1_data_a", "hscif1_ctrl_a";
237                 function = "hscif1";
238         };
239
240         hscif2_pins: hscif2 {
241                 groups = "hscif2_data_a";
242                 function = "hscif2";
243         };
244
245         scif0_pins: scif0 {
246                 groups = "scif0_data";
247                 function = "scif0";
248         };
249
250         scif5_pins: scif5 {
251                 groups = "scif5_data_a";
252                 function = "scif5";
253         };
254
255         scif_clk_pins: scif_clk {
256                 groups = "scif_clk_a";
257                 function = "scif_clk";
258         };
259
260         i2c0_pins: i2c0 {
261                 groups = "i2c0";
262                 function = "i2c0";
263         };
264
265         sdhi2_pins: sd2 {
266                 groups = "sdhi2_data4", "sdhi2_ctrl";
267                 function = "sdhi2";
268                 power-source = <1800>;
269         };
270
271         sdhi3_pins: sd3 {
272                 groups = "sdhi3_data8", "sdhi3_ctrl", "sdhi3_ds";
273                 function = "sdhi3";
274                 power-source = <1800>;
275         };
276 };
277
278 &scif_clk {
279         clock-frequency = <14745600>;
280 };
281
282 &scif2 {
283         pinctrl-0 = <&scif2_pins>;
284         pinctrl-names = "default";
285         status = "okay";
286 };
287
288 &sdhi2 {
289         pinctrl-names = "default";
290         pinctrl-0 = <&sdhi2_pins>;
291         bus-width = <4>;
292         vmmc-supply = <&reg_3p3v>;
293         vqmmc-supply = <&reg_1p8v>;
294         non-removable;
295         cap-power-off-card;
296         pm-ignore-notify;
297         keep-power-in-suspend;
298         mmc-pwrseq = <&wlan_pwrseq>;
299         status = "okay";
300         #address-cells = <1>;
301         #size-cells = <0>;
302
303         brcmf: bcrmf@1 {
304                 reg = <1>;
305                 compatible = "brcm,bcm4329-fmac";
306                 interrupt-parent = <&gpio1>;
307                 interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
308                 interrupt-names = "host-wake";
309         };
310 };
311
312 &sdhi3 {
313         pinctrl-0 = <&sdhi3_pins>;
314         pinctrl-1 = <&sdhi3_pins>;
315         pinctrl-names = "default", "state_uhs";
316         vmmc-supply = <&reg_3p3v>;
317         vqmmc-supply = <&reg_1p8v>;
318         bus-width = <8>;
319         mmc-hs200-1_8v;
320         non-removable;
321         fixed-emmc-driver-type = <1>;
322         status = "okay";
323 };
324
325 &usb2_clksel {
326         status = "okay";
327         clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>,
328                  <&versaclock5 3>, <&usb3s0_clk>;
329         clock-names = "ehci_ohci", "hs-usb-if",
330                       "usb_extal", "usb_xtal";
331 };
332
333 &usb3s0_clk {
334         clock-frequency = <100000000>;
335 };