From f6dbcf205a8a29e22322e2710fe8da5c0c493017 Mon Sep 17 00:00:00 2001 From: Lee Lup Yuen Date: Fri, 11 Aug 2023 09:19:38 +0800 Subject: [PATCH] PineTab-V --- README.md | 6 + jh7110-visionfive-v2.dtsi | 1131 +++++++++++++++++++++++++++++++++++++ 2 files changed, 1137 insertions(+) create mode 100755 jh7110-visionfive-v2.dtsi diff --git a/README.md b/README.md index 09edc98..958e765 100644 --- a/README.md +++ b/README.md @@ -4787,6 +4787,12 @@ The factory test reference source code has been mirrored here (for quicker downl Let's look inside the Factory Test Code... +# PineTab-V Device Tree + +Here's the PineTab-V Device Tree for Linux: + +[VisionFive2/linux/arch/riscv/boot/dts/starfive/jh7110-visionfive-v2.dtsi](https://github.com/lupyuen/nuttx-star64/blob/main/jh7110-visionfive-v2.dtsi) + TODO # RAM Disk Address for RISC-V QEMU diff --git a/jh7110-visionfive-v2.dtsi b/jh7110-visionfive-v2.dtsi new file mode 100755 index 0000000..de70f23 --- /dev/null +++ b/jh7110-visionfive-v2.dtsi @@ -0,0 +1,1131 @@ +// 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"; +};