// SPDX-License-Identifier: GPL-2.0 OR MIT /* * Copyright (C) 2022 StarFive Technology Co., Ltd. * Copyright (C) 2022 Hal Feng */ /dts-v1/; #include #include #include #include #include "jh7110.dtsi" / { model = "StarFive VisionFive V2 Pinetable"; compatible = "starfive,visionfive-v2", "starfive,jh7110"; aliases { spi0 = &qspi; gpio0 = &gpio; ethernet0 = &gmac0; ethernet1 = &gmac1; mmc0 = &sdio0; mmc1 = &sdio1; serial0 = &uart0; serial3 = &uart3; i2c0 = &i2c0; i2c1 = &i2c1; i2c2 = &i2c2; i2c3 = &i2c3; i2c4 = &i2c4; i2c5 = &i2c5; i2c6 = &i2c6; }; chosen { linux,initrd-start = <0x0 0x46100000>; linux,initrd-end = <0x0 0x4c000000>; stdout-path = "serial0:115200"; #bootargs = "debug console=ttyS0 rootwait"; }; cpus { timebase-frequency = <4000000>; }; memory@40000000 { device_type = "memory"; reg = <0x0 0x40000000 0x1 0x0>; }; reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; linux,cma { compatible = "shared-dma-pool"; reusable; size = <0x0 0x20000000>; alignment = <0x0 0x1000>; alloc-ranges = <0x0 0x80000000 0x0 0x20000000>; linux,cma-default; }; e24_mem: e24@c0000000 { no-map; reg = <0x0 0xc0110000 0x0 0xf0000>; }; xrp_reserved: xrpbuffer@f0000000 { reg = <0x0 0xf0000000 0x0 0x01ffffff 0x0 0xf2000000 0x0 0x00001000 0x0 0xf2001000 0x0 0x00fff000 0x0 0xf3000000 0x0 0x00001000>; }; }; leds { compatible = "gpio-leds"; led-ack { gpios = <&gpioa 3 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_HEARTBEAT; linux,default-trigger = "heartbeat"; label = "ack"; }; }; vcc5v: vcc5v{ compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio 39 0>; regulator-boot-on; regulator-always-on; regulator-name = "vcc_5v"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; }; wifi_3v3: wifi_3v3{ compatible = "regulator-fixed"; enable-active-low; gpio = <&gpio 46 1>; regulator-boot-on; regulator-always-on; regulator-name = "wifi_3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; rfkill_bt { compatible = "rfkill-gpio"; label = "BlueTooth"; radio-type = "bluetooth"; shutdown-gpios = <&gpio 54 GPIO_ACTIVE_HIGH>; }; rfkill_wifi { compatible = "rfkill-gpio"; label = "Wi-Fi"; radio-type = "wlan"; shutdown-gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; reset-gpios = <&gpio 47 GPIO_ACTIVE_HIGH>; }; gpio_keys: gpio-keys { status = "okay"; compatible = "gpio-keys"; autorepeat; vol-up-key { label = "vol up key"; debounce-interval = <10>; linux,input-type = ; linux,code = ; gpios = <&gpio 51 GPIO_ACTIVE_LOW>; }; vol-down-key { label = "vol down key"; debounce-interval = <10>; linux,input-type = ; linux,code = ; gpios = <&gpio 49 GPIO_ACTIVE_LOW>; }; hall-key { label = "hall test key"; debounce-interval = <10>; linux,input-type = ; linux,code = ; gpios = <&gpio 40 GPIO_ACTIVE_LOW>; }; }; bat: battery { compatible = "simple-battery"; charge-full-design-microamp-hours = <9800000>; voltage-max-design-microvolt = <4350000>; voltage-min-design-microvolt = <3000000>; }; }; &gpio { i2c0_pins: i2c0-pins { i2c0-pins-scl { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; starfive,pin-gpio-din = ; }; i2c0-pins-sda { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; starfive,pin-gpio-din = ; }; }; i2c5_pins: i2c5-pins { i2c5-pins-scl { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; starfive,pin-gpio-din = ; }; i2c5-pins-sda { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; starfive,pin-gpio-din = ; }; }; i2c6_pins: i2c6-pins { i2c6-pins-scl { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; starfive,pin-gpio-din = ; }; i2c6-pins-sda { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; starfive,pin-gpio-din = ; }; }; csi_pins: csi-pins { csi-pins-pwdn { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; }; ov5640_pins: ov5640_pins { ov5640_pins-pwdn { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; ov5640_pins-rst { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; ov5640_pins-sw { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; }; gc02m2_pins: gc02m2_pins { gc02m2pins-pwdn { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; gc02m2_pins-rst { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; // gc02m2_pins-sw { // starfive,pins = ; // starfive,pinmux = ; // starfive,pin-ioconfig = ; // starfive,pin-gpio-dout = ; // starfive,pin-gpio-doen = ; // }; }; pwmdac0_pins: pwmdac0-pins { pwmdac0-pins-left { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; pwmdac0-pins-right { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; }; pwm_pins: pwm-pins { pwm_ch0-pins { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; pwm_ch1-pins { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; }; ssp0_pins: ssp0-pins { ssp0-pins_tx { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; ssp0-pins_rx { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-doen = ; starfive,pin-gpio-din = ; }; ssp0-pins_clk { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; ssp0-pins_cs { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; }; pcie0_perst_default: pcie0_perst_default { perst-pins { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; }; pcie0_perst_active: pcie0_perst_active { perst-pins { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; }; pcie0_wake_default: pcie0_wake_default { wake-pins { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-doen = ; }; }; pcie0_clkreq_default: pcie0_clkreq_default { clkreq-pins { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-doen = ; }; }; pcie1_perst_default: pcie1_perst_default { perst-pins { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; }; pcie1_perst_active: pcie1_perst_active { perst-pins { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; }; pcie1_wake_default: pcie1_wake_default { wake-pins { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-doen = ; }; }; pcie1_clkreq_default: pcie1_clkreq_default { clkreq-pins { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-doen = ; }; }; usb_pins: usb-pins { // drive-vbus-pin { // starfive,pins = ; // starfive,pinmux = ; // starfive,pin-ioconfig = ; // starfive,pin-gpio-dout = ; // starfive,pin-gpio-doen = ; // }; overcurrent-pin { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-din = ; starfive,pin-gpio-doen = ; }; }; i2srx_pins: i2srx-pins { i2srx-pins0 { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-doen = ; starfive,pin-gpio-din = ; }; }; i2s_clk_pins: i2s-clk0 { i2s-clk0_bclk { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-din = ; starfive,pin-gpio-doen = ; }; i2s-clk0_lrclk { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-din = ; starfive,pin-gpio-doen = ; }; }; i2stx_pins: i2stx-pins { i2stx-pins0 { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-dout = ; starfive,pin-gpio-doen = ; }; }; rfkill_wifi_pins: rfkill_wifi_pins { rfkill_wifi_disn { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-doen = ; }; }; rfkill_bt_pins: rfkill_bt_pins { rfkill_bt_disn { starfive,pins = ; starfive,pinmux = ; starfive,pin-ioconfig = ; starfive,pin-gpio-doen = ; }; }; }; &uart0 { status = "okay"; }; &dma { status = "okay"; }; &trng { status = "okay"; }; &crypto { status = "okay"; }; &sec_dma { status = "okay"; }; /* i2s + es8316 */ &sound7 { /* i2s + es8316 */ simple-audio-card,dai-link@0 { reg = <0>; format = "i2s"; bitclock-master = <&sndes8316>; frame-master = <&sndes8316>; mclk-fs = <256>; status = "okay"; sndi2srx1: cpu0 { sound-dai = <&i2srx_3ch>; }; sndi2stx1: cpu1 { sound-dai = <&i2stx_4ch1>; }; sndes8316: codec { sound-dai = <&es8316>; }; }; }; &i2c0 { clock-frequency = <100000>; i2c-sda-hold-time-ns = <300>; i2c-sda-falling-time-ns = <510>; i2c-scl-falling-time-ns = <510>; auto_calc_scl_lhcnt; pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>; status = "okay"; es8316: codec@11 { compatible = "everest,es8316"; reg = <0x11>; clocks = <&es8316_mclk>; clock-names = "mclk"; #sound-dai-cells = <0>; papower-gpio = <&gpio 50 0>; hp-det-gpio = <&gpio 36 0>; }; }; &i2c2 { clock-frequency = <100000>; i2c-sda-hold-time-ns = <300>; i2c-sda-falling-time-ns = <510>; i2c-scl-falling-time-ns = <510>; auto_calc_scl_lhcnt; status = "okay"; seeed_plane_i2c@45 { compatible = "seeed_panel"; reg = <0x45>; port { panel_out0: endpoint { remote-endpoint = <&dsi0_output>; }; }; }; tinker_ft5406: tinker_ft5406@38 { compatible = "tinker_ft5406"; reg = <0x38>; }; panel_radxa@19 { status = "okay"; compatible ="starfive_jadard"; reg = <0x19>; //reset-gpio = <&gpio 23 0>; blen-gpio = <&gpio 45 0>; enable-gpio = <&gpio 37 0>; port { panel_out1: endpoint { remote-endpoint = <&dsi1_output>; }; }; }; touchscreen@14 { status = "okay"; compatible = "goodix,gt911"; reg = <0x14>; irq-gpios = <&gpio 30 GPIO_ACTIVE_HIGH>; reset-gpios = <&gpio 31 GPIO_ACTIVE_HIGH>; }; }; &i2c5 { clock-frequency = <100000>; i2c-sda-hold-time-ns = <300>; i2c-sda-falling-time-ns = <510>; i2c-scl-falling-time-ns = <510>; auto_calc_scl_lhcnt; pinctrl-names = "default"; pinctrl-0 = <&i2c5_pins>; status = "okay"; eeprom@50 { compatible = "atmel,24c04"; reg = <0x50>; pagesize = <16>; }; pmic: axp15060_reg@36 { compatible = "stf,axp15060-regulator"; reg = <0x36>; regulators { mipi_0p9: ALDO1 { regulator-boot-on; regulator-compatible = "mipi_0p9"; regulator-name = "mipi_0p9"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <900000>; }; hdmi_0p9: ALDO5 { regulator-boot-on; regulator-compatible = "hdmi_0p9"; regulator-name = "hdmi_0p9"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <900000>; }; hdmi_1p8: ALDO3 { regulator-boot-on; regulator-compatible = "hdmi_1p8"; regulator-name = "hdmi_1p8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; cpu_vdd: DCDC2 { regulator-boot-on; regulator-always-on; regulator-compatible = "cpu_vdd"; regulator-name = "cpu_vdd"; regulator-min-microvolt = <500000>; regulator-max-microvolt = <1540000>; }; }; }; // sc89890: sc89890@6a{ // compatible = "sc,sc89890"; // reg = <0x6a>; // // interrupt-parent = <&gpio>; // // interrupts = ; // irq-gpios = <&gpio 48 GPIO_ACTIVE_LOW>; // sc,battery-regulation-voltage = <4200000>; // sc,charge-current = <1000000>; // // sc,termination-current = <50000>; // sc,termination-current = <500>; // sc,precharge-current = <128000>; // sc,minimum-sys-voltage = <3000000>; // sc,boost-voltage = <5000000>; // sc,boost-max-current = <1600000>; // // sc,thermal-regulation-threshold = <4000000>; // // sc,ibatcomp-clamp-microvolt = <1000000>; // sc,ibatcomp-micro-ohms = <10>; // sc89890h_otg_vbus: sc89890h_otg_vbus { // regulator-name = "sc89890h_otg_vbus"; // }; // }; sc89890h: sc89890@6a{ compatible = "sc,sc89890h"; reg = <0x6A>; // nterrupt-parent = <&tlmm>; // interrupts = <65 0>; // pinctrl-names = "default"; // pinctrl-0 = <&sc89890h_int_default>; irq-gpios = <&gpio 48 GPIO_ACTIVE_LOW>; charger_name = "primary_chg"; eint_name = "chr_stat"; /*sc,sc8989x,charge-detect-enable*/ sc,sc89890h,usb-vlim = <4500>; sc,sc89890h,usb-ilim = <2000>; sc,sc89890h,usb-vreg = <4200>; sc,sc89890h,usb-ichg = <2000>; sc,sc89890h,precharge-current = <180>; sc,sc89890h,termination-current = <180>; sc,sc89890h,boost-voltage = <5000>; sc,sc89890h,boost-current = <1200>; sc,sc89890h,charge-current = <1500>; }; cw2015@62 { status = "okay"; compatible = "cellwise,cw2015"; reg = <0x62>; cellwise,battery-profile = /bits/ 8 <0x17 0x67 0x63 0x64 0x63 0x62 0x61 0x5E 0x59 0x61 0x55 0x57 0x60 0x50 0x43 0x3C 0x33 0x2D 0x27 0x24 0x26 0x2D 0x39 0x47 0x44 0x11 0x0E 0x15 0x20 0x41 0x48 0x55 0x59 0x5B 0x60 0x60 0x3F 0x19 0x6A 0x4A 0x0B 0x1B 0x2D 0x57 0x8B 0x93 0x96 0x13 0x2E 0x56 0xA3 0xCA 0x80 0x6A 0x99 0xCB 0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x31>; cellwise,monitor-interval-ms = <5000>; monitored-battery = <&bat>; power-supplies = <&sc89890h>; }; }; &i2c6 { clock-frequency = <100000>; i2c-sda-hold-time-ns = <300>; i2c-sda-falling-time-ns = <510>; i2c-scl-falling-time-ns = <510>; auto_calc_scl_lhcnt; pinctrl-names = "default"; pinctrl-0 = <&i2c6_pins>; status = "okay"; ov5640: camera@3c { status = "okay"; compatible = "ovti,ov5640"; pinctrl-names = "default"; pinctrl-0 = <&ov5640_pins>; reg = <0x3c>; clocks = <&clk_ext_camera>; clock-names = "xclk"; powerdown-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>; reset-gpios = <&gpio 34 GPIO_ACTIVE_LOW>; sw-gpios = <&gpio 53 GPIO_ACTIVE_HIGH>; rotation = <0>; port { /* CSI2 bus endpoint */ ov5640_to_csi2rx: endpoint { remote-endpoint = <&csi2rx_from_ov5640>; bus-type = <4>; /* MIPI CSI-2 D-PHY */ data-lanes = <2 1>; lane-polarities = <0 0 0>; link-frequencies = /bits/ 64 <456000000>; }; }; }; gc02m2: gc02m2@37 { status = "okay"; compatible = "galaxycore,gc02m2"; pinctrl-names = "default"; pinctrl-0 = <&gc02m2_pins>; reg = <0x37>; clocks = <&clk_ext_camera>; clock-names = "xvclk"; reset-gpio = <&gpio 33 GPIO_ACTIVE_HIGH>; pwdn-gpio = <&gpio 25 GPIO_ACTIVE_LOW>; // sw-gpios = <&gpio 53 GPIO_ACTIVE_LOW>; port { gc02m2_to_csi2rx0: endpoint { remote-endpoint = <&csi2rx0_from_gc02m2>; bus-type = <4>; /* MIPI CSI-2 D-PHY */ data-lanes = <1>; link-frequencies = /bits/ 64 <336000000>; }; }; }; }; &sdio0 { max-frequency = <100000000>; card-detect-delay = <300>; bus-width = <8>; cap-mmc-highspeed; // mmc-ddr-1_8v; // mmc-hs200-1_8v; non-removable; cap-mmc-hw-reset; post-power-on-delay-ms = <200>; status = "okay"; }; &sdio1 { max-frequency = <100000000>; card-detect-delay = <300>; bus-width = <4>; no-sdio; no-mmc; broken-cd; cap-sd-highspeed; post-power-on-delay-ms = <200>; status = "okay"; }; &vin_sysctl { /* when use dvp open this pinctrl*/ status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@1 { reg = <1>; #address-cells = <1>; #size-cells = <0>; csi2rx_from_ov5640: endpoint@0 { reg = <0>; remote-endpoint = <&ov5640_to_csi2rx>; bus-type = <4>; /* MIPI CSI-2 D-PHY */ clock-lanes = <0>; data-lanes = <2 1>; lane-polarities = <0 0 0>; status = "okay"; }; csi2rx0_from_gc02m2: endpoint@1 { reg = <1>; remote-endpoint = <&gc02m2_to_csi2rx0>; bus-type = <4>; /* MIPI CSI-2 D-PHY */ clock-lanes = <0>; data-lanes = <2 1>; lane-polarities = <0 0 0>; status = "okay"; }; }; }; }; &sfctemp { status = "okay"; }; &jpu { status = "okay"; }; &vpu_dec { status = "okay"; }; &vpu_enc { status = "okay"; }; &gmac0 { status = "disabled"; #address-cells = <1>; #size-cells = <0>; phy0: ethernet-phy@0 { rxc_dly_en = <1>; tx_delay_sel_fe = <5>; tx_delay_sel = <0xa>; tx_inverted_10 = <0x1>; tx_inverted_100 = <0x1>; tx_inverted_1000 = <0x1>; }; }; &gmac1 { #address-cells = <1>; #size-cells = <0>; status = "disabled"; phy1: ethernet-phy@1 { tx_delay_sel_fe = <5>; tx_delay_sel = <0>; rxc_dly_en = <0>; tx_inverted_10 = <0x1>; tx_inverted_100 = <0x1>; tx_inverted_1000 = <0x0>; }; }; &gpu { status = "okay"; }; &pwmdac { pinctrl-names = "default"; pinctrl-0 = <&pwmdac0_pins>; status = "disabled"; }; &i2srx_3ch { pinctrl-names = "default"; pinctrl-0 = <&i2s_clk_pins &i2srx_pins>; status = "okay"; }; &i2stx_4ch1 { pinctrl-names = "default"; pinctrl-0 = <&i2stx_pins>; status = "okay"; }; &pwmdac_codec { status = "disabled"; }; &spi0 { pinctrl-names = "default"; pinctrl-0 = <&ssp0_pins>; status = "disabled"; spi_dev0: spi@0 { compatible = "rohm,dh2228fv"; pl022,com-mode = <1>; spi-max-frequency = <10000000>; reg = <0>; status = "okay"; }; }; &pcie0 { pinctrl-names = "default", "perst-default", "perst-active"; pinctrl-0 = <&pcie0_wake_default>, <&pcie0_clkreq_default>; pinctrl-1 = <&pcie0_perst_default>; pinctrl-2 = <&pcie0_perst_active>; status = "disabled"; }; &pcie1 { pinctrl-names = "default", "perst-default", "perst-active"; pinctrl-0 = <&pcie1_wake_default>, <&pcie1_clkreq_default>; pinctrl-1 = <&pcie1_perst_default>; pinctrl-2 = <&pcie1_perst_active>; status = "disabled"; }; &mailbox_contrl0 { status = "okay"; }; &mailbox_client0 { status = "okay"; }; &display { status = "okay"; }; &hdmi { status = "okay"; hdmi_in: port { #address-cells = <1>; #size-cells = <0>; hdmi_in_lcdc: endpoint@0 { reg = <0>; remote-endpoint = <&dc_out_dpi1>; }; }; }; &dc8200 { status = "okay"; dc_out: port { #address-cells = <1>; #size-cells = <0>; dc_out_dpi0: endpoint@0 { reg = <0>; remote-endpoint = <&hdmi_input0>; }; dc_out_dpi1: endpoint@1 { reg = <1>; remote-endpoint = <&hdmi_in_lcdc>; }; dc_out_dpi2: endpoint@2 { reg = <2>; remote-endpoint = <&mipi_in>; }; }; }; &rgb_output { status = "disabled"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { #address-cells = <1>; #size-cells = <0>; reg = <0>; hdmi_input0:endpoint@0 { reg = <0>; remote-endpoint = <&dc_out_dpi0>; }; }; }; }; &dsi_output { status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; mipi_in: endpoint { remote-endpoint = <&dc_out_dpi2>; }; }; port@1 { reg = <1>; sf_dpi_output: endpoint { remote-endpoint = <&dsi_in_port>; }; }; }; }; &mipi_dsi { status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; dsi0_output: endpoint@0 { reg = <0>; remote-endpoint = <&panel_out0>; }; dsi1_output: endpoint@1 { reg = <1>; remote-endpoint = <&panel_out1>; }; }; port@1{ reg = <1>; dsi_in_port: endpoint { remote-endpoint = <&sf_dpi_output>; }; }; }; }; &mipi_dphy { status = "okay"; }; &co_process { status = "okay"; }; &usbdrd30 { // clocks = <&clkgen JH7110_USB_125M>, // <&clkgen JH7110_USB0_CLK_APP_125>, // <&clkgen JH7110_USB0_CLK_LPM>, // <&clkgen JH7110_USB0_CLK_STB>, // <&clkgen JH7110_USB0_CLK_USB_APB>, // <&clkgen JH7110_USB0_CLK_AXI>, // <&clkgen JH7110_USB0_CLK_UTMI_APB>; // clock-names = "125m","app","lpm","stb","apb","axi","utmi"; // resets = <&rstgen RSTN_U0_CDN_USB_PWRUP>, // <&rstgen RSTN_U0_CDN_USB_APB>, // <&rstgen RSTN_U0_CDN_USB_AXI>, // <&rstgen RSTN_U0_CDN_USB_UTMI_APB>; // reset-names = "pwrup","apb","axi","utmi"; // starfive,usb2-only; dr_mode = "host"; /*host or peripheral*/ pinctrl-names = "default"; pinctrl-0 = <&usb_pins>; xhci-lowmem-pool; status = "okay"; }; &xrp { status = "okay"; }; &ptc { pinctrl-names = "default"; pinctrl-0 = <&pwm_pins>; status = "disabled"; };