1 // SPDX-License-Identifier: GPL-2.0 OR MIT
3 * Copyright (C) 2022 StarFive Technology Co., Ltd.
4 * Copyright (C) 2022 Hal Feng <hal.feng@starfivetech.com>
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/pinctrl/starfive,jh7110-pinfunc.h>
10 #include "jh7110.dtsi"
11 #include "codecs/sf_pwmdac.dtsi"
14 model = "StarFive VisionFive V2";
15 compatible = "starfive,visionfive-v2", "starfive,jh7110";
36 linux,initrd-start = <0x0 0x46100000>;
37 linux,initrd-end = <0x0 0x4c000000>;
38 stdout-path = "serial0:115200";
39 #bootargs = "debug console=ttyS0 rootwait";
43 timebase-frequency = <4000000>;
47 device_type = "memory";
48 reg = <0x0 0x40000000 0x1 0x0>;
57 compatible = "shared-dma-pool";
59 size = <0x0 0x20000000>;
60 alignment = <0x0 0x1000>;
61 alloc-ranges = <0x0 0xa0000000 0x0 0x20000000>;
65 e24_mem: e24@c0000000 {
67 reg = <0x0 0xc0110000 0x0 0xf0000>;
70 xrp_reserved: xrpbuffer@f0000000 {
71 reg = <0x0 0xf0000000 0x0 0x01ffffff
72 0x0 0xf2000000 0x0 0x00001000
73 0x0 0xf2001000 0x0 0x00fff000
74 0x0 0xf3000000 0x0 0x00001000>;
81 i2c0_pins: i2c0-pins {
83 starfive,pins = <PAD_GPIO57>;
84 starfive,pinmux = <PAD_GPIO57_FUNC_SEL 0>;
85 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
86 starfive,pin-gpio-dout = <GPO_LOW>;
87 starfive,pin-gpio-doen = <OEN_I2C0_IC_CLK_OE>;
88 starfive,pin-gpio-din = <GPI_I2C0_IC_CLK_IN_A>;
92 starfive,pins = <PAD_GPIO58>;
93 starfive,pinmux = <PAD_GPIO58_FUNC_SEL 0>;
94 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
95 starfive,pin-gpio-dout = <GPO_LOW>;
96 starfive,pin-gpio-doen = <OEN_I2C0_IC_DATA_OE>;
97 starfive,pin-gpio-din = <GPI_I2C0_IC_DATA_IN_A>;
101 i2c5_pins: i2c5-pins {
103 starfive,pins = <PAD_GPIO19>;
104 starfive,pinmux = <PAD_GPIO19_FUNC_SEL 0>;
105 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
106 starfive,pin-gpio-dout = <GPO_LOW>;
107 starfive,pin-gpio-doen = <OEN_I2C5_IC_CLK_OE>;
108 starfive,pin-gpio-din = <GPI_I2C5_IC_CLK_IN_A>;
112 starfive,pins = <PAD_GPIO20>;
113 starfive,pinmux = <PAD_GPIO20_FUNC_SEL 0>;
114 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
115 starfive,pin-gpio-dout = <GPO_LOW>;
116 starfive,pin-gpio-doen = <OEN_I2C5_IC_DATA_OE>;
117 starfive,pin-gpio-din = <GPI_I2C5_IC_DATA_IN_A>;
121 i2c6_pins: i2c6-pins {
123 starfive,pins = <PAD_GPIO16>;
124 starfive,pinmux = <PAD_GPIO16_FUNC_SEL 0>;
125 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
126 starfive,pin-gpio-dout = <GPO_LOW>;
127 starfive,pin-gpio-doen = <OEN_I2C6_IC_CLK_OE>;
128 starfive,pin-gpio-din = <GPI_I2C6_IC_CLK_IN_A>;
132 starfive,pins = <PAD_GPIO17>;
133 starfive,pinmux = <PAD_GPIO17_FUNC_SEL 0>;
134 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
135 starfive,pin-gpio-dout = <GPO_LOW>;
136 starfive,pin-gpio-doen = <OEN_I2C6_IC_DATA_OE>;
137 starfive,pin-gpio-din = <GPI_I2C6_IC_DATA_IN_A>;
143 starfive,pins = <PAD_GPIO18>;
144 starfive,pinmux = <PAD_GPIO18_FUNC_SEL 0>;
145 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
146 starfive,pin-gpio-dout = <GPO_HIGH>;
147 starfive,pin-gpio-doen = <OEN_LOW>;
151 pwmdac0_pins: pwmdac0-pins {
153 starfive,pins = <PAD_GPIO33>;
154 starfive,pinmux = <PAD_GPIO33_FUNC_SEL 0>;
155 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
156 starfive,pin-gpio-dout = <GPO_PWMDAC0_LEFT_OUTPUT>;
157 starfive,pin-gpio-doen = <OEN_LOW>;
161 starfive,pins = <PAD_GPIO34>;
162 starfive,pinmux = <PAD_GPIO34_FUNC_SEL 0>;
163 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
164 starfive,pin-gpio-dout = <GPO_PWMDAC0_RIGHT_OUTPUT>;
165 starfive,pin-gpio-doen = <OEN_LOW>;
171 starfive,pins = <PAD_GPIO46>;
172 starfive,pinmux = <PAD_GPIO46_FUNC_SEL 0>;
173 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
174 starfive,pin-gpio-dout = <GPO_PTC0_PWM_0>;
175 starfive,pin-gpio-doen = <OEN_PTC0_PWM_0_OE_N>;
179 starfive,pins = <PAD_GPIO59>;
180 starfive,pinmux = <PAD_GPIO59_FUNC_SEL 0>;
181 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
182 starfive,pin-gpio-dout = <GPO_PTC0_PWM_1>;
183 starfive,pin-gpio-doen = <OEN_PTC0_PWM_1_OE_N>;
187 ssp0_pins: ssp0-pins {
189 starfive,pins = <PAD_GPIO52>;
190 starfive,pinmux = <PAD_GPIO52_FUNC_SEL 0>;
191 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
192 starfive,pin-gpio-dout = <GPO_SPI0_SSPTXD>;
193 starfive,pin-gpio-doen = <OEN_LOW>;
197 starfive,pins = <PAD_GPIO53>;
198 starfive,pinmux = <PAD_GPIO53_FUNC_SEL 0>;
199 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
200 starfive,pin-gpio-doen = <OEN_HIGH>;
201 starfive,pin-gpio-din = <GPI_SPI0_SSPRXD>;
205 starfive,pins = <PAD_GPIO48>;
206 starfive,pinmux = <PAD_GPIO48_FUNC_SEL 0>;
207 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
208 starfive,pin-gpio-dout = <GPO_SPI0_SSPCLKOUT>;
209 starfive,pin-gpio-doen = <OEN_LOW>;
213 starfive,pins = <PAD_GPIO49>;
214 starfive,pinmux = <PAD_GPIO49_FUNC_SEL 0>;
215 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
216 starfive,pin-gpio-dout = <GPO_SPI0_SSPFSSOUT>;
217 starfive,pin-gpio-doen = <OEN_LOW>;
221 pcie0_perst_default: pcie0_perst_default {
223 starfive,pins = <PAD_GPIO26>;
224 starfive,pinmux = <PAD_GPIO26_FUNC_SEL 0>;
225 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
226 starfive,pin-gpio-dout = <GPO_HIGH>;
227 starfive,pin-gpio-doen = <OEN_LOW>;
231 pcie0_perst_active: pcie0_perst_active {
233 starfive,pins = <PAD_GPIO26>;
234 starfive,pinmux = <PAD_GPIO26_FUNC_SEL 0>;
235 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
236 starfive,pin-gpio-dout = <GPO_LOW>;
237 starfive,pin-gpio-doen = <OEN_LOW>;
241 pcie0_wake_default: pcie0_wake_default {
243 starfive,pins = <PAD_GPIO32>;
244 starfive,pinmux = <PAD_GPIO32_FUNC_SEL 0>;
245 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
246 starfive,pin-gpio-doen = <OEN_HIGH>;
250 pcie0_clkreq_default: pcie0_clkreq_default {
252 starfive,pins = <PAD_GPIO27>;
253 starfive,pinmux = <PAD_GPIO27_FUNC_SEL 0>;
254 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
255 starfive,pin-gpio-doen = <OEN_HIGH>;
259 pcie0_vbus_default: pcie0_vbus_default {
261 starfive,pins = <PAD_GPIO25>;
262 starfive,pinmux = <PAD_GPIO25_FUNC_SEL 0>;
263 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
264 starfive,pin-gpio-dout = <GPO_HIGH>;
265 starfive,pin-gpio-doen = <OEN_LOW>;
269 pcie1_perst_default: pcie1_perst_default {
271 starfive,pins = <PAD_GPIO28>;
272 starfive,pinmux = <PAD_GPIO28_FUNC_SEL 0>;
273 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
274 starfive,pin-gpio-dout = <GPO_HIGH>;
275 starfive,pin-gpio-doen = <OEN_LOW>;
279 pcie1_perst_active: pcie1_perst_active {
281 starfive,pins = <PAD_GPIO28>;
282 starfive,pinmux = <PAD_GPIO28_FUNC_SEL 0>;
283 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
284 starfive,pin-gpio-dout = <GPO_LOW>;
285 starfive,pin-gpio-doen = <OEN_LOW>;
289 pcie1_wake_default: pcie1_wake_default {
291 starfive,pins = <PAD_GPIO21>;
292 starfive,pinmux = <PAD_GPIO21_FUNC_SEL 0>;
293 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
294 starfive,pin-gpio-doen = <OEN_HIGH>;
298 pcie1_clkreq_default: pcie1_clkreq_default {
300 starfive,pins = <PAD_GPIO29>;
301 starfive,pinmux = <PAD_GPIO29_FUNC_SEL 0>;
302 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
303 starfive,pin-gpio-doen = <OEN_HIGH>;
309 starfive,pins = <PAD_GPIO25>;
310 starfive,pinmux = <PAD_GPIO25_FUNC_SEL 0>;
311 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
312 starfive,pin-gpio-dout = <GPO_USB0_DRIVE_VBUS_IO>;
313 starfive,pin-gpio-doen = <OEN_LOW>;
317 i2srx_pins: i2srx-pins {
319 starfive,pins = <PAD_GPIO61>;
320 starfive,pinmux = <PAD_GPIO61_FUNC_SEL 0>;
321 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
322 starfive,pin-gpio-doen = <OEN_HIGH>;
323 starfive,pin-gpio-din = <GPI_I2SRX0_EXT_SDIN0>;
327 i2s_clk_pins: i2s-clk0 {
329 starfive,pins = <PAD_GPIO38>;
330 starfive,pinmux = <PAD_GPIO38_FUNC_SEL 0>;
331 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
332 starfive,pin-gpio-din = <GPI_I2STX0_BCLK_SLV GPI_I2SRX0_BCLK_SLV>;
333 starfive,pin-gpio-doen = <OEN_HIGH>;
337 starfive,pins = <PAD_GPIO63>;
338 starfive,pinmux = <PAD_GPIO63_FUNC_SEL 0>;
339 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
340 starfive,pin-gpio-din = <GPI_I2STX0_LRCK_SLV GPI_I2SRX0_LRCK_SLV>;
341 starfive,pin-gpio-doen = <OEN_HIGH>;
345 i2stx_pins: i2stx-pins {
347 starfive,pins = <PAD_GPIO44>;
348 starfive,pinmux = <PAD_GPIO44_FUNC_SEL 0>;
349 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
350 starfive,pin-gpio-dout = <GPO_I2STX_4CH1_SDO0>;
351 starfive,pin-gpio-doen = <OEN_LOW>;
377 clock-frequency = <100000>;
378 i2c-sda-hold-time-ns = <300>;
379 i2c-sda-falling-time-ns = <510>;
380 i2c-scl-falling-time-ns = <510>;
382 pinctrl-names = "default";
383 pinctrl-0 = <&i2c0_pins>;
387 compatible = "x-power,ac108_0";
389 #sound-dai-cells = <0>;
394 compatible = "wlf,wm8960";
396 #sound-dai-cells = <0>;
403 clock-frequency = <100000>;
404 i2c-sda-hold-time-ns = <300>;
405 i2c-sda-falling-time-ns = <510>;
406 i2c-scl-falling-time-ns = <510>;
411 compatible = "seeed_panel";
415 panel_dsi_port: endpoint {
416 remote-endpoint = <&dsi_out_port>;
424 clock-frequency = <100000>;
425 i2c-sda-hold-time-ns = <300>;
426 i2c-sda-falling-time-ns = <510>;
427 i2c-scl-falling-time-ns = <510>;
429 pinctrl-names = "default";
430 pinctrl-0 = <&i2c5_pins>;
434 compatible = "atmel,24c04";
439 pmic: axp15060_reg@36 {
440 compatible = "stf,axp15060-regulator";
446 regulator-compatible = "mipi_0p9";
447 regulator-name = "mipi_0p9";
448 regulator-min-microvolt = <900000>;
449 regulator-max-microvolt = <900000>;
453 regulator-compatible = "hdmi_0p9";
454 regulator-name = "hdmi_0p9";
455 regulator-min-microvolt = <900000>;
456 regulator-max-microvolt = <900000>;
460 regulator-compatible = "hdmi_1p8";
461 regulator-name = "hdmi_1p8";
462 regulator-min-microvolt = <1800000>;
463 regulator-max-microvolt = <1800000>;
467 regulator-compatible = "sdio_vdd";
468 regulator-name = "sdio_vdd";
469 regulator-min-microvolt = <1800000>;
470 regulator-max-microvolt = <3300000>;
475 regulator-compatible = "cpu_vdd";
476 regulator-name = "cpu_vdd";
477 regulator-min-microvolt = <500000>;
478 regulator-max-microvolt = <1540000>;
485 clock-frequency = <100000>;
486 i2c-sda-hold-time-ns = <300>;
487 i2c-sda-falling-time-ns = <510>;
488 i2c-scl-falling-time-ns = <510>;
490 pinctrl-names = "default";
491 pinctrl-0 = <&i2c6_pins>;
495 compatible = "imx219";
497 clocks = <&clk_ext_camera>;
498 clock-names = "xclk";
499 //reset-gpio = <&gpio 18 0>;
500 //DOVDD-supply = <&v2v8>;
501 pinctrl-names = "default";
502 pinctrl-0 = <&csi_pins>;
504 orientation = <1>; //CAMERA_ORIENTATION_BACK
507 /* CSI2 bus endpoint */
508 imx219_to_csi2rx0: endpoint {
509 remote-endpoint = <&csi2rx0_from_imx219>;
510 bus-type = <4>; /* MIPI CSI-2 D-PHY */
513 lane-polarities = <0 0 0>;
514 link-frequencies = /bits/ 64 <456000000>;
521 clock-frequency = <102400000>;
522 max-frequency = <100000000>;
523 card-detect-delay = <300>;
527 mmc-hs400-enhanced-strobe;
530 post-power-on-delay-ms = <200>;
531 vqmmc-supply = <&sdio_vdd>;
536 clock-frequency = <102400000>;
537 max-frequency = <200000000>;
538 card-detect-delay = <300>;
542 post-power-on-delay-ms = <200>;
547 /* when use dvp open this pinctrl*/
551 #address-cells = <1>;
556 #address-cells = <1>;
559 /* CSI2 bus endpoint */
560 csi2rx0_from_imx219: endpoint@0 {
562 remote-endpoint = <&imx219_to_csi2rx0>;
563 bus-type = <4>; /* MIPI CSI-2 D-PHY */
566 lane-polarities = <0 0 0>;
591 #address-cells = <1>;
593 phy0: ethernet-phy@0 {
595 tx_delay_sel_fe = <5>;
601 #address-cells = <1>;
604 phy1: ethernet-phy@1 {
605 tx_delay_sel_fe = <5>;
616 pinctrl-names = "default";
617 pinctrl-0 = <&pwmdac0_pins>;
622 pinctrl-names = "default";
623 pinctrl-0 = <&i2s_clk_pins &i2srx_pins>;
628 pinctrl-names = "default";
629 pinctrl-0 = <&i2stx_pins>;
638 pinctrl-names = "default";
639 pinctrl-0 = <&ssp0_pins>;
643 compatible = "rohm,dh2228fv";
644 pl022,com-mode = <1>;
645 spi-max-frequency = <10000000>;
652 pinctrl-names = "default", "perst-default", "perst-active";
653 pinctrl-0 = <&pcie0_wake_default>,
654 <&pcie0_clkreq_default>,
655 <&pcie0_vbus_default>;
656 pinctrl-1 = <&pcie0_perst_default>;
657 pinctrl-2 = <&pcie0_perst_active>;
662 pinctrl-names = "default", "perst-default", "perst-active";
663 pinctrl-0 = <&pcie1_wake_default>,
664 <&pcie1_clkreq_default>;
665 pinctrl-1 = <&pcie1_perst_default>;
666 pinctrl-2 = <&pcie1_perst_active>;
686 #address-cells = <1>;
688 hdmi_in_lcdc: endpoint@0 {
690 remote-endpoint = <&dc_out_dpi1>;
699 #address-cells = <1>;
701 dc_out_dpi0: endpoint@0 {
703 remote-endpoint = <&hdmi_input0>;
705 dc_out_dpi1: endpoint@1 {
707 remote-endpoint = <&hdmi_in_lcdc>;
710 dc_out_dpi2: endpoint@2 {
712 remote-endpoint = <&mipi_in>;
721 #address-cells = <1>;
724 #address-cells = <1>;
727 hdmi_input0:endpoint@0 {
729 remote-endpoint = <&dc_out_dpi0>;
739 #address-cells = <1>;
745 remote-endpoint = <&dc_out_dpi2>;
752 remote-endpoint = <&dsi_in_port>;
771 pinctrl-names = "default";
772 pinctrl-0 = <&usb_pins>;
773 dr_mode = "host"; /*host or peripheral*/
782 pinctrl-names = "default";
783 pinctrl-0 = <&pwm_pins>;