powerpc/mm: Avoid calling arch_enter/leave_lazy_mmu() in set_ptes
[platform/kernel/linux-starfive.git] / arch / riscv / boot / dts / starfive / jh7110-starfive-visionfive-2.dtsi
1 // SPDX-License-Identifier: GPL-2.0 OR MIT
2 /*
3  * Copyright (C) 2022 StarFive Technology Co., Ltd.
4  * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk>
5  */
6
7 /dts-v1/;
8 #include "jh7110.dtsi"
9 #include "jh7110-pinfunc.h"
10 #include <dt-bindings/gpio/gpio.h>
11
12 / {
13         aliases {
14                 ethernet0 = &gmac0;
15                 ethernet1 = &gmac1;
16                 i2c0 = &i2c0;
17                 i2c2 = &i2c2;
18                 i2c5 = &i2c5;
19                 i2c6 = &i2c6;
20                 mmc0 = &mmc0;
21                 mmc1 = &mmc1;
22                 serial0 = &uart0;
23         };
24
25         chosen {
26                 stdout-path = "serial0:115200n8";
27         };
28
29         cpus {
30                 timebase-frequency = <4000000>;
31         };
32
33         memory@40000000 {
34                 device_type = "memory";
35                 reg = <0x0 0x40000000 0x1 0x0>;
36         };
37
38         gpio-restart {
39                 compatible = "gpio-restart";
40                 gpios = <&sysgpio 35 GPIO_ACTIVE_HIGH>;
41                 priority = <224>;
42         };
43 };
44
45 &dvp_clk {
46         clock-frequency = <74250000>;
47 };
48
49 &gmac0_rgmii_rxin {
50         clock-frequency = <125000000>;
51 };
52
53 &gmac0_rmii_refin {
54         clock-frequency = <50000000>;
55 };
56
57 &gmac1_rgmii_rxin {
58         clock-frequency = <125000000>;
59 };
60
61 &gmac1_rmii_refin {
62         clock-frequency = <50000000>;
63 };
64
65 &hdmitx0_pixelclk {
66         clock-frequency = <297000000>;
67 };
68
69 &i2srx_bclk_ext {
70         clock-frequency = <12288000>;
71 };
72
73 &i2srx_lrck_ext {
74         clock-frequency = <192000>;
75 };
76
77 &i2stx_bclk_ext {
78         clock-frequency = <12288000>;
79 };
80
81 &i2stx_lrck_ext {
82         clock-frequency = <192000>;
83 };
84
85 &mclk_ext {
86         clock-frequency = <12288000>;
87 };
88
89 &osc {
90         clock-frequency = <24000000>;
91 };
92
93 &rtc_osc {
94         clock-frequency = <32768>;
95 };
96
97 &tdm_ext {
98         clock-frequency = <49152000>;
99 };
100
101 &gmac0 {
102         phy-handle = <&phy0>;
103         phy-mode = "rgmii-id";
104         status = "okay";
105
106         mdio {
107                 #address-cells = <1>;
108                 #size-cells = <0>;
109                 compatible = "snps,dwmac-mdio";
110
111                 phy0: ethernet-phy@0 {
112                         reg = <0>;
113                 };
114         };
115 };
116
117 &gmac1 {
118         phy-handle = <&phy1>;
119         phy-mode = "rgmii-id";
120         status = "okay";
121
122         mdio {
123                 #address-cells = <1>;
124                 #size-cells = <0>;
125                 compatible = "snps,dwmac-mdio";
126
127                 phy1: ethernet-phy@1 {
128                         reg = <0>;
129                 };
130         };
131 };
132
133 &i2c0 {
134         clock-frequency = <100000>;
135         i2c-sda-hold-time-ns = <300>;
136         i2c-sda-falling-time-ns = <510>;
137         i2c-scl-falling-time-ns = <510>;
138         pinctrl-names = "default";
139         pinctrl-0 = <&i2c0_pins>;
140         status = "okay";
141 };
142
143 &i2c2 {
144         clock-frequency = <100000>;
145         i2c-sda-hold-time-ns = <300>;
146         i2c-sda-falling-time-ns = <510>;
147         i2c-scl-falling-time-ns = <510>;
148         pinctrl-names = "default";
149         pinctrl-0 = <&i2c2_pins>;
150         status = "okay";
151 };
152
153 &i2c5 {
154         clock-frequency = <100000>;
155         i2c-sda-hold-time-ns = <300>;
156         i2c-sda-falling-time-ns = <510>;
157         i2c-scl-falling-time-ns = <510>;
158         pinctrl-names = "default";
159         pinctrl-0 = <&i2c5_pins>;
160         status = "okay";
161
162         axp15060: pmic@36 {
163                 compatible = "x-powers,axp15060";
164                 reg = <0x36>;
165                 interrupts = <0>;
166                 interrupt-controller;
167                 #interrupt-cells = <1>;
168
169                 regulators {
170                         vcc_3v3: dcdc1 {
171                                 regulator-boot-on;
172                                 regulator-always-on;
173                                 regulator-min-microvolt = <3300000>;
174                                 regulator-max-microvolt = <3300000>;
175                                 regulator-name = "vcc_3v3";
176                         };
177
178                         vdd_cpu: dcdc2 {
179                                 regulator-always-on;
180                                 regulator-min-microvolt = <500000>;
181                                 regulator-max-microvolt = <1540000>;
182                                 regulator-name = "vdd-cpu";
183                         };
184
185                         emmc_vdd: aldo4 {
186                                 regulator-boot-on;
187                                 regulator-always-on;
188                                 regulator-min-microvolt = <1800000>;
189                                 regulator-max-microvolt = <1800000>;
190                                 regulator-name = "emmc_vdd";
191                         };
192                 };
193         };
194 };
195
196 &i2c6 {
197         clock-frequency = <100000>;
198         i2c-sda-hold-time-ns = <300>;
199         i2c-sda-falling-time-ns = <510>;
200         i2c-scl-falling-time-ns = <510>;
201         pinctrl-names = "default";
202         pinctrl-0 = <&i2c6_pins>;
203         status = "okay";
204 };
205
206 &mmc0 {
207         max-frequency = <100000000>;
208         bus-width = <8>;
209         cap-mmc-highspeed;
210         mmc-ddr-1_8v;
211         mmc-hs200-1_8v;
212         non-removable;
213         cap-mmc-hw-reset;
214         post-power-on-delay-ms = <200>;
215         pinctrl-names = "default";
216         pinctrl-0 = <&mmc0_pins>;
217         vmmc-supply = <&vcc_3v3>;
218         vqmmc-supply = <&emmc_vdd>;
219         status = "okay";
220 };
221
222 &mmc1 {
223         max-frequency = <100000000>;
224         bus-width = <4>;
225         no-sdio;
226         no-mmc;
227         broken-cd;
228         cap-sd-highspeed;
229         post-power-on-delay-ms = <200>;
230         pinctrl-names = "default";
231         pinctrl-0 = <&mmc1_pins>;
232         status = "okay";
233 };
234
235 &qspi {
236         #address-cells = <1>;
237         #size-cells = <0>;
238         status = "okay";
239
240         nor_flash: flash@0 {
241                 compatible = "jedec,spi-nor";
242                 reg = <0>;
243                 cdns,read-delay = <5>;
244                 spi-max-frequency = <12000000>;
245                 cdns,tshsl-ns = <1>;
246                 cdns,tsd2d-ns = <1>;
247                 cdns,tchsh-ns = <1>;
248                 cdns,tslch-ns = <1>;
249
250                 partitions {
251                         compatible = "fixed-partitions";
252                         #address-cells = <1>;
253                         #size-cells = <1>;
254
255                         spl@0 {
256                                 reg = <0x0 0x80000>;
257                         };
258                         uboot-env@f0000 {
259                                 reg = <0xf0000 0x10000>;
260                         };
261                         uboot@100000 {
262                                 reg = <0x100000 0x400000>;
263                         };
264                         reserved-data@600000 {
265                                 reg = <0x600000 0x1000000>;
266                         };
267                 };
268         };
269 };
270
271 &spi0 {
272         pinctrl-names = "default";
273         pinctrl-0 = <&spi0_pins>;
274         status = "okay";
275
276         spi_dev0: spi@0 {
277                 compatible = "rohm,dh2228fv";
278                 reg = <0>;
279                 spi-max-frequency = <10000000>;
280         };
281 };
282
283 &sysgpio {
284         i2c0_pins: i2c0-0 {
285                 i2c-pins {
286                         pinmux = <GPIOMUX(57, GPOUT_LOW,
287                                               GPOEN_SYS_I2C0_CLK,
288                                               GPI_SYS_I2C0_CLK)>,
289                                  <GPIOMUX(58, GPOUT_LOW,
290                                               GPOEN_SYS_I2C0_DATA,
291                                               GPI_SYS_I2C0_DATA)>;
292                         bias-disable; /* external pull-up */
293                         input-enable;
294                         input-schmitt-enable;
295                 };
296         };
297
298         i2c2_pins: i2c2-0 {
299                 i2c-pins {
300                         pinmux = <GPIOMUX(3, GPOUT_LOW,
301                                              GPOEN_SYS_I2C2_CLK,
302                                              GPI_SYS_I2C2_CLK)>,
303                                  <GPIOMUX(2, GPOUT_LOW,
304                                              GPOEN_SYS_I2C2_DATA,
305                                              GPI_SYS_I2C2_DATA)>;
306                         bias-disable; /* external pull-up */
307                         input-enable;
308                         input-schmitt-enable;
309                 };
310         };
311
312         i2c5_pins: i2c5-0 {
313                 i2c-pins {
314                         pinmux = <GPIOMUX(19, GPOUT_LOW,
315                                               GPOEN_SYS_I2C5_CLK,
316                                               GPI_SYS_I2C5_CLK)>,
317                                  <GPIOMUX(20, GPOUT_LOW,
318                                               GPOEN_SYS_I2C5_DATA,
319                                               GPI_SYS_I2C5_DATA)>;
320                         bias-disable; /* external pull-up */
321                         input-enable;
322                         input-schmitt-enable;
323                 };
324         };
325
326         i2c6_pins: i2c6-0 {
327                 i2c-pins {
328                         pinmux = <GPIOMUX(16, GPOUT_LOW,
329                                               GPOEN_SYS_I2C6_CLK,
330                                               GPI_SYS_I2C6_CLK)>,
331                                  <GPIOMUX(17, GPOUT_LOW,
332                                               GPOEN_SYS_I2C6_DATA,
333                                               GPI_SYS_I2C6_DATA)>;
334                         bias-disable; /* external pull-up */
335                         input-enable;
336                         input-schmitt-enable;
337                 };
338         };
339
340         mmc0_pins: mmc0-0 {
341                  rst-pins {
342                         pinmux = <GPIOMUX(62, GPOUT_SYS_SDIO0_RST,
343                                               GPOEN_ENABLE,
344                                               GPI_NONE)>;
345                         bias-pull-up;
346                         drive-strength = <12>;
347                         input-disable;
348                         input-schmitt-disable;
349                         slew-rate = <0>;
350                 };
351
352                 mmc-pins {
353                         pinmux = <PINMUX(64, 0)>,
354                                  <PINMUX(65, 0)>,
355                                  <PINMUX(66, 0)>,
356                                  <PINMUX(67, 0)>,
357                                  <PINMUX(68, 0)>,
358                                  <PINMUX(69, 0)>,
359                                  <PINMUX(70, 0)>,
360                                  <PINMUX(71, 0)>,
361                                  <PINMUX(72, 0)>,
362                                  <PINMUX(73, 0)>;
363                         bias-pull-up;
364                         drive-strength = <12>;
365                         input-enable;
366                 };
367         };
368
369         mmc1_pins: mmc1-0 {
370                 clk-pins {
371                         pinmux = <GPIOMUX(10, GPOUT_SYS_SDIO1_CLK,
372                                               GPOEN_ENABLE,
373                                               GPI_NONE)>;
374                         bias-pull-up;
375                         drive-strength = <12>;
376                         input-disable;
377                         input-schmitt-disable;
378                         slew-rate = <0>;
379                 };
380
381                 mmc-pins {
382                         pinmux = <GPIOMUX(9, GPOUT_SYS_SDIO1_CMD,
383                                              GPOEN_SYS_SDIO1_CMD,
384                                              GPI_SYS_SDIO1_CMD)>,
385                                  <GPIOMUX(11, GPOUT_SYS_SDIO1_DATA0,
386                                               GPOEN_SYS_SDIO1_DATA0,
387                                               GPI_SYS_SDIO1_DATA0)>,
388                                  <GPIOMUX(12, GPOUT_SYS_SDIO1_DATA1,
389                                               GPOEN_SYS_SDIO1_DATA1,
390                                               GPI_SYS_SDIO1_DATA1)>,
391                                  <GPIOMUX(7, GPOUT_SYS_SDIO1_DATA2,
392                                              GPOEN_SYS_SDIO1_DATA2,
393                                              GPI_SYS_SDIO1_DATA2)>,
394                                  <GPIOMUX(8, GPOUT_SYS_SDIO1_DATA3,
395                                              GPOEN_SYS_SDIO1_DATA3,
396                                              GPI_SYS_SDIO1_DATA3)>;
397                         bias-pull-up;
398                         drive-strength = <12>;
399                         input-enable;
400                         input-schmitt-enable;
401                         slew-rate = <0>;
402                 };
403         };
404
405         spi0_pins: spi0-0 {
406                 mosi-pins {
407                         pinmux = <GPIOMUX(52, GPOUT_SYS_SPI0_TXD,
408                                               GPOEN_ENABLE,
409                                               GPI_NONE)>;
410                         bias-disable;
411                         input-disable;
412                         input-schmitt-disable;
413                 };
414
415                 miso-pins {
416                         pinmux = <GPIOMUX(53, GPOUT_LOW,
417                                               GPOEN_DISABLE,
418                                               GPI_SYS_SPI0_RXD)>;
419                         bias-pull-up;
420                         input-enable;
421                         input-schmitt-enable;
422                 };
423
424                 sck-pins {
425                         pinmux = <GPIOMUX(48, GPOUT_SYS_SPI0_CLK,
426                                               GPOEN_ENABLE,
427                                               GPI_SYS_SPI0_CLK)>;
428                         bias-disable;
429                         input-disable;
430                         input-schmitt-disable;
431                 };
432
433                 ss-pins {
434                         pinmux = <GPIOMUX(48, GPOUT_SYS_SPI0_FSS,
435                                               GPOEN_ENABLE,
436                                               GPI_SYS_SPI0_FSS)>;
437                         bias-disable;
438                         input-disable;
439                         input-schmitt-disable;
440                 };
441         };
442
443         uart0_pins: uart0-0 {
444                 tx-pins {
445                         pinmux = <GPIOMUX(5, GPOUT_SYS_UART0_TX,
446                                              GPOEN_ENABLE,
447                                              GPI_NONE)>;
448                         bias-disable;
449                         drive-strength = <12>;
450                         input-disable;
451                         input-schmitt-disable;
452                         slew-rate = <0>;
453                 };
454
455                 rx-pins {
456                         pinmux = <GPIOMUX(6, GPOUT_LOW,
457                                              GPOEN_DISABLE,
458                                              GPI_SYS_UART0_RX)>;
459                         bias-disable; /* external pull-up */
460                         drive-strength = <2>;
461                         input-enable;
462                         input-schmitt-enable;
463                         slew-rate = <0>;
464                 };
465         };
466
467         tdm_pins: tdm-0 {
468                 tx-pins {
469                         pinmux = <GPIOMUX(44, GPOUT_SYS_TDM_TXD,
470                                               GPOEN_ENABLE,
471                                               GPI_NONE)>;
472                         bias-pull-up;
473                         drive-strength = <2>;
474                         input-disable;
475                         input-schmitt-disable;
476                         slew-rate = <0>;
477                 };
478
479                 rx-pins {
480                         pinmux = <GPIOMUX(61, GPOUT_HIGH,
481                                               GPOEN_DISABLE,
482                                               GPI_SYS_TDM_RXD)>;
483                         input-enable;
484                 };
485
486                 sync-pins {
487                         pinmux = <GPIOMUX(63, GPOUT_HIGH,
488                                               GPOEN_DISABLE,
489                                               GPI_SYS_TDM_SYNC)>;
490                         input-enable;
491                 };
492
493                 pcmclk-pins {
494                         pinmux = <GPIOMUX(38, GPOUT_HIGH,
495                                               GPOEN_DISABLE,
496                                               GPI_SYS_TDM_CLK)>;
497                         input-enable;
498                 };
499         };
500 };
501
502 &tdm {
503         pinctrl-names = "default";
504         pinctrl-0 = <&tdm_pins>;
505         status = "okay";
506 };
507
508 &uart0 {
509         pinctrl-names = "default";
510         pinctrl-0 = <&uart0_pins>;
511         status = "okay";
512 };
513
514 &usb0 {
515         dr_mode = "peripheral";
516 };
517
518 &U74_1 {
519         cpu-supply = <&vdd_cpu>;
520 };
521
522 &U74_2 {
523         cpu-supply = <&vdd_cpu>;
524 };
525
526 &U74_3 {
527         cpu-supply = <&vdd_cpu>;
528 };
529
530 &U74_4 {
531         cpu-supply = <&vdd_cpu>;
532 };