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/leds/common.h>
10 #include <dt-bindings/pinctrl/starfive,jh7110-pinfunc.h>
11 #include "jh7110.dtsi"
12 #include "codecs/sf_pwmdac.dtsi"
15 model = "StarFive VisionFive V2";
16 compatible = "starfive,visionfive-v2", "starfive,jh7110";
37 linux,initrd-start = <0x0 0x46100000>;
38 linux,initrd-end = <0x0 0x4c000000>;
39 stdout-path = "serial0:115200";
40 #bootargs = "debug console=ttyS0 rootwait";
44 timebase-frequency = <4000000>;
48 device_type = "memory";
49 reg = <0x0 0x40000000 0x1 0x0>;
58 compatible = "shared-dma-pool";
60 size = <0x0 0x20000000>;
61 alignment = <0x0 0x1000>;
62 alloc-ranges = <0x0 0x80000000 0x0 0x20000000>;
66 e24_mem: e24@c0000000 {
68 reg = <0x0 0xc0110000 0x0 0xf0000>;
71 xrp_reserved: xrpbuffer@f0000000 {
72 reg = <0x0 0xf0000000 0x0 0x01ffffff
73 0x0 0xf2000000 0x0 0x00001000
74 0x0 0xf2001000 0x0 0x00fff000
75 0x0 0xf3000000 0x0 0x00001000>;
81 compatible = "gpio-leds";
84 gpios = <&gpioa 3 GPIO_ACTIVE_HIGH>;
85 color = <LED_COLOR_ID_GREEN>;
86 function = LED_FUNCTION_HEARTBEAT;
87 linux,default-trigger = "heartbeat";
94 i2c0_pins: i2c0-pins {
96 starfive,pins = <PAD_GPIO57>;
97 starfive,pinmux = <PAD_GPIO57_FUNC_SEL 0>;
98 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
99 starfive,pin-gpio-dout = <GPO_LOW>;
100 starfive,pin-gpio-doen = <OEN_I2C0_IC_CLK_OE>;
101 starfive,pin-gpio-din = <GPI_I2C0_IC_CLK_IN_A>;
105 starfive,pins = <PAD_GPIO58>;
106 starfive,pinmux = <PAD_GPIO58_FUNC_SEL 0>;
107 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
108 starfive,pin-gpio-dout = <GPO_LOW>;
109 starfive,pin-gpio-doen = <OEN_I2C0_IC_DATA_OE>;
110 starfive,pin-gpio-din = <GPI_I2C0_IC_DATA_IN_A>;
114 i2c5_pins: i2c5-pins {
116 starfive,pins = <PAD_GPIO19>;
117 starfive,pinmux = <PAD_GPIO19_FUNC_SEL 0>;
118 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
119 starfive,pin-gpio-dout = <GPO_LOW>;
120 starfive,pin-gpio-doen = <OEN_I2C5_IC_CLK_OE>;
121 starfive,pin-gpio-din = <GPI_I2C5_IC_CLK_IN_A>;
125 starfive,pins = <PAD_GPIO20>;
126 starfive,pinmux = <PAD_GPIO20_FUNC_SEL 0>;
127 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
128 starfive,pin-gpio-dout = <GPO_LOW>;
129 starfive,pin-gpio-doen = <OEN_I2C5_IC_DATA_OE>;
130 starfive,pin-gpio-din = <GPI_I2C5_IC_DATA_IN_A>;
134 i2c6_pins: i2c6-pins {
136 starfive,pins = <PAD_GPIO16>;
137 starfive,pinmux = <PAD_GPIO16_FUNC_SEL 0>;
138 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
139 starfive,pin-gpio-dout = <GPO_LOW>;
140 starfive,pin-gpio-doen = <OEN_I2C6_IC_CLK_OE>;
141 starfive,pin-gpio-din = <GPI_I2C6_IC_CLK_IN_A>;
145 starfive,pins = <PAD_GPIO17>;
146 starfive,pinmux = <PAD_GPIO17_FUNC_SEL 0>;
147 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
148 starfive,pin-gpio-dout = <GPO_LOW>;
149 starfive,pin-gpio-doen = <OEN_I2C6_IC_DATA_OE>;
150 starfive,pin-gpio-din = <GPI_I2C6_IC_DATA_IN_A>;
156 starfive,pins = <PAD_GPIO18>;
157 starfive,pinmux = <PAD_GPIO18_FUNC_SEL 0>;
158 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
159 starfive,pin-gpio-dout = <GPO_HIGH>;
160 starfive,pin-gpio-doen = <OEN_LOW>;
164 pwmdac0_pins: pwmdac0-pins {
166 starfive,pins = <PAD_GPIO33>;
167 starfive,pinmux = <PAD_GPIO33_FUNC_SEL 0>;
168 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
169 starfive,pin-gpio-dout = <GPO_PWMDAC0_LEFT_OUTPUT>;
170 starfive,pin-gpio-doen = <OEN_LOW>;
174 starfive,pins = <PAD_GPIO34>;
175 starfive,pinmux = <PAD_GPIO34_FUNC_SEL 0>;
176 starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
177 starfive,pin-gpio-dout = <GPO_PWMDAC0_RIGHT_OUTPUT>;
178 starfive,pin-gpio-doen = <OEN_LOW>;
184 starfive,pins = <PAD_GPIO46>;
185 starfive,pinmux = <PAD_GPIO46_FUNC_SEL 0>;
186 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
187 starfive,pin-gpio-dout = <GPO_PTC0_PWM_0>;
188 starfive,pin-gpio-doen = <OEN_PTC0_PWM_0_OE_N>;
192 starfive,pins = <PAD_GPIO59>;
193 starfive,pinmux = <PAD_GPIO59_FUNC_SEL 0>;
194 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
195 starfive,pin-gpio-dout = <GPO_PTC0_PWM_1>;
196 starfive,pin-gpio-doen = <OEN_PTC0_PWM_1_OE_N>;
200 ssp0_pins: ssp0-pins {
202 starfive,pins = <PAD_GPIO52>;
203 starfive,pinmux = <PAD_GPIO52_FUNC_SEL 0>;
204 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
205 starfive,pin-gpio-dout = <GPO_SPI0_SSPTXD>;
206 starfive,pin-gpio-doen = <OEN_LOW>;
210 starfive,pins = <PAD_GPIO53>;
211 starfive,pinmux = <PAD_GPIO53_FUNC_SEL 0>;
212 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
213 starfive,pin-gpio-doen = <OEN_HIGH>;
214 starfive,pin-gpio-din = <GPI_SPI0_SSPRXD>;
218 starfive,pins = <PAD_GPIO48>;
219 starfive,pinmux = <PAD_GPIO48_FUNC_SEL 0>;
220 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
221 starfive,pin-gpio-dout = <GPO_SPI0_SSPCLKOUT>;
222 starfive,pin-gpio-doen = <OEN_LOW>;
226 starfive,pins = <PAD_GPIO49>;
227 starfive,pinmux = <PAD_GPIO49_FUNC_SEL 0>;
228 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
229 starfive,pin-gpio-dout = <GPO_SPI0_SSPFSSOUT>;
230 starfive,pin-gpio-doen = <OEN_LOW>;
234 pcie0_perst_default: pcie0_perst_default {
236 starfive,pins = <PAD_GPIO26>;
237 starfive,pinmux = <PAD_GPIO26_FUNC_SEL 0>;
238 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
239 starfive,pin-gpio-dout = <GPO_HIGH>;
240 starfive,pin-gpio-doen = <OEN_LOW>;
244 pcie0_perst_active: pcie0_perst_active {
246 starfive,pins = <PAD_GPIO26>;
247 starfive,pinmux = <PAD_GPIO26_FUNC_SEL 0>;
248 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
249 starfive,pin-gpio-dout = <GPO_LOW>;
250 starfive,pin-gpio-doen = <OEN_LOW>;
254 pcie0_wake_default: pcie0_wake_default {
256 starfive,pins = <PAD_GPIO32>;
257 starfive,pinmux = <PAD_GPIO32_FUNC_SEL 0>;
258 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
259 starfive,pin-gpio-doen = <OEN_HIGH>;
263 pcie0_clkreq_default: pcie0_clkreq_default {
265 starfive,pins = <PAD_GPIO27>;
266 starfive,pinmux = <PAD_GPIO27_FUNC_SEL 0>;
267 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
268 starfive,pin-gpio-doen = <OEN_HIGH>;
272 pcie1_perst_default: pcie1_perst_default {
274 starfive,pins = <PAD_GPIO28>;
275 starfive,pinmux = <PAD_GPIO28_FUNC_SEL 0>;
276 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
277 starfive,pin-gpio-dout = <GPO_HIGH>;
278 starfive,pin-gpio-doen = <OEN_LOW>;
282 pcie1_perst_active: pcie1_perst_active {
284 starfive,pins = <PAD_GPIO28>;
285 starfive,pinmux = <PAD_GPIO28_FUNC_SEL 0>;
286 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
287 starfive,pin-gpio-dout = <GPO_LOW>;
288 starfive,pin-gpio-doen = <OEN_LOW>;
292 pcie1_wake_default: pcie1_wake_default {
294 starfive,pins = <PAD_GPIO21>;
295 starfive,pinmux = <PAD_GPIO21_FUNC_SEL 0>;
296 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
297 starfive,pin-gpio-doen = <OEN_HIGH>;
301 pcie1_clkreq_default: pcie1_clkreq_default {
303 starfive,pins = <PAD_GPIO29>;
304 starfive,pinmux = <PAD_GPIO29_FUNC_SEL 0>;
305 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
306 starfive,pin-gpio-doen = <OEN_HIGH>;
312 starfive,pins = <PAD_GPIO25>;
313 starfive,pinmux = <PAD_GPIO25_FUNC_SEL 0>;
314 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
315 starfive,pin-gpio-dout = <GPO_USB0_DRIVE_VBUS_IO>;
316 starfive,pin-gpio-doen = <OEN_LOW>;
320 i2srx_pins: i2srx-pins {
322 starfive,pins = <PAD_GPIO61>;
323 starfive,pinmux = <PAD_GPIO61_FUNC_SEL 0>;
324 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
325 starfive,pin-gpio-doen = <OEN_HIGH>;
326 starfive,pin-gpio-din = <GPI_I2SRX0_EXT_SDIN0>;
330 i2s_clk_pins: i2s-clk0 {
332 starfive,pins = <PAD_GPIO38>;
333 starfive,pinmux = <PAD_GPIO38_FUNC_SEL 0>;
334 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
335 starfive,pin-gpio-din = <GPI_I2STX0_BCLK_SLV GPI_I2SRX0_BCLK_SLV>;
336 starfive,pin-gpio-doen = <OEN_HIGH>;
340 starfive,pins = <PAD_GPIO63>;
341 starfive,pinmux = <PAD_GPIO63_FUNC_SEL 0>;
342 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
343 starfive,pin-gpio-din = <GPI_I2STX0_LRCK_SLV GPI_I2SRX0_LRCK_SLV>;
344 starfive,pin-gpio-doen = <OEN_HIGH>;
348 i2stx_pins: i2stx-pins {
350 starfive,pins = <PAD_GPIO44>;
351 starfive,pinmux = <PAD_GPIO44_FUNC_SEL 0>;
352 starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
353 starfive,pin-gpio-dout = <GPO_I2STX_4CH1_SDO0>;
354 starfive,pin-gpio-doen = <OEN_LOW>;
380 clock-frequency = <100000>;
381 i2c-sda-hold-time-ns = <300>;
382 i2c-sda-falling-time-ns = <510>;
383 i2c-scl-falling-time-ns = <510>;
385 pinctrl-names = "default";
386 pinctrl-0 = <&i2c0_pins>;
391 clock-frequency = <100000>;
392 i2c-sda-hold-time-ns = <300>;
393 i2c-sda-falling-time-ns = <510>;
394 i2c-scl-falling-time-ns = <510>;
399 compatible = "seeed_panel";
403 panel_dsi_port: endpoint {
404 remote-endpoint = <&dsi_out_port>;
412 clock-frequency = <100000>;
413 i2c-sda-hold-time-ns = <300>;
414 i2c-sda-falling-time-ns = <510>;
415 i2c-scl-falling-time-ns = <510>;
417 pinctrl-names = "default";
418 pinctrl-0 = <&i2c5_pins>;
422 compatible = "atmel,24c04";
427 pmic: axp15060_reg@36 {
428 compatible = "stf,axp15060-regulator";
434 regulator-compatible = "mipi_0p9";
435 regulator-name = "mipi_0p9";
436 regulator-min-microvolt = <900000>;
437 regulator-max-microvolt = <900000>;
441 regulator-compatible = "hdmi_0p9";
442 regulator-name = "hdmi_0p9";
443 regulator-min-microvolt = <900000>;
444 regulator-max-microvolt = <900000>;
448 regulator-compatible = "hdmi_1p8";
449 regulator-name = "hdmi_1p8";
450 regulator-min-microvolt = <1800000>;
451 regulator-max-microvolt = <1800000>;
456 regulator-compatible = "cpu_vdd";
457 regulator-name = "cpu_vdd";
458 regulator-min-microvolt = <500000>;
459 regulator-max-microvolt = <1540000>;
466 clock-frequency = <100000>;
467 i2c-sda-hold-time-ns = <300>;
468 i2c-sda-falling-time-ns = <510>;
469 i2c-scl-falling-time-ns = <510>;
471 pinctrl-names = "default";
472 pinctrl-0 = <&i2c6_pins>;
476 compatible = "sony,imx219";
478 clocks = <&clk_ext_camera>;
479 clock-names = "xclk";
480 //reset-gpio = <&gpio 18 0>;
481 //DOVDD-supply = <&v2v8>;
482 pinctrl-names = "default";
483 pinctrl-0 = <&csi_pins>;
485 orientation = <1>; //CAMERA_ORIENTATION_BACK
488 /* CSI2 bus endpoint */
489 imx219_to_csi2rx0: endpoint {
490 remote-endpoint = <&csi2rx0_from_imx219>;
491 bus-type = <4>; /* MIPI CSI-2 D-PHY */
494 lane-polarities = <0 0 0>;
495 link-frequencies = /bits/ 64 <456000000>;
502 max-frequency = <100000000>;
503 card-detect-delay = <300>;
510 post-power-on-delay-ms = <200>;
515 max-frequency = <100000000>;
516 card-detect-delay = <300>;
522 post-power-on-delay-ms = <200>;
527 /* when use dvp open this pinctrl*/
531 #address-cells = <1>;
536 #address-cells = <1>;
539 /* CSI2 bus endpoint */
540 csi2rx0_from_imx219: endpoint@0 {
542 remote-endpoint = <&imx219_to_csi2rx0>;
543 bus-type = <4>; /* MIPI CSI-2 D-PHY */
546 lane-polarities = <0 0 0>;
571 #address-cells = <1>;
573 phy0: ethernet-phy@0 {
575 tx_delay_sel_fe = <5>;
576 tx_delay_sel = <0xa>;
577 tx_inverted_10 = <0x1>;
578 tx_inverted_100 = <0x1>;
579 tx_inverted_1000 = <0x1>;
584 #address-cells = <1>;
587 phy1: ethernet-phy@1 {
588 tx_delay_sel_fe = <5>;
591 tx_inverted_10 = <0x1>;
592 tx_inverted_100 = <0x1>;
593 tx_inverted_1000 = <0x0>;
602 pinctrl-names = "default";
603 pinctrl-0 = <&pwmdac0_pins>;
608 pinctrl-names = "default";
609 pinctrl-0 = <&i2s_clk_pins &i2srx_pins>;
614 pinctrl-names = "default";
615 pinctrl-0 = <&i2stx_pins>;
624 pinctrl-names = "default";
625 pinctrl-0 = <&ssp0_pins>;
629 compatible = "rohm,dh2228fv";
630 pl022,com-mode = <1>;
631 spi-max-frequency = <10000000>;
638 pinctrl-names = "default", "perst-default", "perst-active";
639 pinctrl-0 = <&pcie0_wake_default>,
640 <&pcie0_clkreq_default>;
641 pinctrl-1 = <&pcie0_perst_default>;
642 pinctrl-2 = <&pcie0_perst_active>;
647 pinctrl-names = "default", "perst-default", "perst-active";
648 pinctrl-0 = <&pcie1_wake_default>,
649 <&pcie1_clkreq_default>;
650 pinctrl-1 = <&pcie1_perst_default>;
651 pinctrl-2 = <&pcie1_perst_active>;
671 #address-cells = <1>;
673 hdmi_in_lcdc: endpoint@0 {
675 remote-endpoint = <&dc_out_dpi1>;
684 #address-cells = <1>;
686 dc_out_dpi0: endpoint@0 {
688 remote-endpoint = <&hdmi_input0>;
690 dc_out_dpi1: endpoint@1 {
692 remote-endpoint = <&hdmi_in_lcdc>;
695 dc_out_dpi2: endpoint@2 {
697 remote-endpoint = <&mipi_in>;
706 #address-cells = <1>;
709 #address-cells = <1>;
712 hdmi_input0:endpoint@0 {
714 remote-endpoint = <&dc_out_dpi0>;
724 #address-cells = <1>;
730 remote-endpoint = <&dc_out_dpi2>;
737 remote-endpoint = <&dsi_in_port>;
756 clocks = <&clkgen JH7110_USB_125M>,
757 <&clkgen JH7110_USB0_CLK_APP_125>,
758 <&clkgen JH7110_USB0_CLK_LPM>,
759 <&clkgen JH7110_USB0_CLK_STB>,
760 <&clkgen JH7110_USB0_CLK_USB_APB>,
761 <&clkgen JH7110_USB0_CLK_AXI>,
762 <&clkgen JH7110_USB0_CLK_UTMI_APB>;
763 clock-names = "125m","app","lpm","stb","apb","axi","utmi";
764 resets = <&rstgen RSTN_U0_CDN_USB_PWRUP>,
765 <&rstgen RSTN_U0_CDN_USB_APB>,
766 <&rstgen RSTN_U0_CDN_USB_AXI>,
767 <&rstgen RSTN_U0_CDN_USB_UTMI_APB>;
768 reset-names = "pwrup","apb","axi","utmi";
770 dr_mode = "peripheral"; /*host or peripheral*/
779 pinctrl-names = "default";
780 pinctrl-0 = <&pwm_pins>;