dts: starfive: Support visionfive2
authorJianlong Huang <jianlong.huang@starfivetech.com>
Thu, 30 Jun 2022 10:40:19 +0000 (18:40 +0800)
committerJianlong Huang <jianlong.huang@starfivetech.com>
Thu, 3 Nov 2022 09:23:26 +0000 (17:23 +0800)
Signed-off-by: Jianlong Huang <jianlong.huang@starfivetech.com>
README.md [deleted file]
arch/riscv/boot/dts/starfive/jh7110-visionfive-v2.dts
arch/riscv/configs/starfive_visionfive2_defconfig [new file with mode: 0644]

diff --git a/README.md b/README.md
deleted file mode 100644 (file)
index f0d57f6..0000000
--- a/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# sft-riscvpi-linux-5.10
-
index a311c85..f064529 100644 (file)
  */
 
 /dts-v1/;
-#include "jh7110-common.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/starfive,jh7110-pinfunc.h>
+#include "jh7110.dtsi"
+
 
 / {
        model = "StarFive VisionFive V2";
        compatible = "starfive,visionfive-v2", "starfive,jh7110";
+
+       aliases {
+               spi0 = &qspi;
+               gpio0 = &gpio;
+               ethernet0 = &gmac0;
+               ethernet1 = &gmac1;
+               mmc0 = &sdio0;
+               mmc1 = &sdio1;
+               serial0 = &uart0;
+       };
+
+       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 0xa0000000 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>;
+               };
+
+       };
+};
+
+&gpio {
+       uart0_pins: uart0-pins {
+               uart0-pins-tx {
+                       sf,pins = <PAD_GPIO41>;
+                       sf,pinmux = <PAD_GPIO41_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | GPIO_DS(3))>;
+                       sf,pin-gpio-dout = <GPO_UART0_SOUT>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+
+               uart0-pins-rx {
+                       sf,pins = <PAD_GPIO40>;
+                       sf,pinmux = <PAD_GPIO40_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | GPIO_PU(1))>;
+                       sf,pin-gpio-doen = <OEN_HIGH>;
+                       sf,pin-gpio-din =  <GPI_UART0_SIN>;
+               };
+       };
+
+       i2c0_pins: i2c0-pins {
+               i2c0-pins-scl {
+                       sf,pins = <PAD_GPIO57>;
+                       sf,pinmux = <PAD_GPIO57_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_LOW>;
+                       sf,pin-gpio-doen = <OEN_I2C0_IC_CLK_OE>;
+                       sf,pin-gpio-din =  <GPI_I2C0_IC_CLK_IN_A>;
+               };
+
+               i2c0-pins-sda {
+                       sf,pins = <PAD_GPIO58>;
+                       sf,pinmux = <PAD_GPIO58_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_LOW>;
+                       sf,pin-gpio-doen = <OEN_I2C0_IC_DATA_OE>;
+                       sf,pin-gpio-din =  <GPI_I2C0_IC_DATA_IN_A>;
+               };
+       };
+
+       i2c2_pins: i2c2-pins {
+               i2c2-pins-scl {
+                       sf,pins = <PAD_GPIO11>;
+                       sf,pinmux = <PAD_GPIO11_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_LOW>;
+                       sf,pin-gpio-doen = <OEN_I2C2_IC_CLK_OE>;
+                       sf,pin-gpio-din =  <GPI_I2C2_IC_CLK_IN_A>;
+               };
+
+               i2c2-pins-sda {
+                       sf,pins = <PAD_GPIO9>;
+                       sf,pinmux = <PAD_GPIO9_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_LOW>;
+                       sf,pin-gpio-doen = <OEN_I2C2_IC_DATA_OE>;
+                       sf,pin-gpio-din =  <GPI_I2C2_IC_DATA_IN_A>;
+               };
+       };
+
+       i2c5_pins: i2c5-pins {
+               i2c5-pins-scl {
+                       sf,pins = <PAD_GPIO19>;
+                       sf,pinmux = <PAD_GPIO19_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_LOW>;
+                       sf,pin-gpio-doen = <OEN_I2C5_IC_CLK_OE>;
+                       sf,pin-gpio-din =  <GPI_I2C5_IC_CLK_IN_A>;
+               };
+
+               i2c5-pins-sda {
+                       sf,pins = <PAD_GPIO20>;
+                       sf,pinmux = <PAD_GPIO20_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_LOW>;
+                       sf,pin-gpio-doen = <OEN_I2C5_IC_DATA_OE>;
+                       sf,pin-gpio-din =  <GPI_I2C5_IC_DATA_IN_A>;
+               };
+       };
+
+       i2c6_pins: i2c6-pins {
+               i2c6-pins-scl {
+                       sf,pins = <PAD_GPIO16>;
+                       sf,pinmux = <PAD_GPIO16_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_LOW>;
+                       sf,pin-gpio-doen = <OEN_I2C6_IC_CLK_OE>;
+                       sf,pin-gpio-din =  <GPI_I2C6_IC_CLK_IN_A>;
+               };
+
+               i2c6-pins-sda {
+                       sf,pins = <PAD_GPIO17>;
+                       sf,pinmux = <PAD_GPIO17_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_LOW>;
+                       sf,pin-gpio-doen = <OEN_I2C6_IC_DATA_OE>;
+                       sf,pin-gpio-din =  <GPI_I2C6_IC_DATA_IN_A>;
+               };
+       };
+
+       mmc0_pins: mmc0-pins {
+                mmc0-pins-rest {
+                       sf,pins = <PAD_GPIO22>;
+                       sf,pinmux = <PAD_GPIO22_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_SDIO0_RST_N>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+       };
+
+       sdcard1_pins: sdcard1-pins {
+               sdcard1-pins0 {
+                       sf,pins = <PAD_GPIO4>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_SDIO1_CCLK_OUT>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+
+               sdcard1-pins1 {
+                       sf,pins = <PAD_GPIO5>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_SDIO1_CCMD_OUT>;
+                       sf,pin-gpio-doen = <OEN_SDIO1_CCMD_OUT_EN>;
+                       sf,pin-gpio-din =  <GPI_SDIO1_CCMD_IN>;
+               };
+
+               sdcard1-pins2 {
+                       sf,pins = <PAD_GPIO0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_SDIO1_CDATA_OUT_0>;
+                       sf,pin-gpio-doen = <OEN_SDIO1_CDATA_OUT_EN_0>;
+                       sf,pin-gpio-din =  <GPI_SDIO1_CDATA_IN_0>;
+               };
+
+               sdcard1-pins3 {
+                       sf,pins = <PAD_GPIO1>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_SDIO1_CDATA_OUT_1>;
+                       sf,pin-gpio-doen = <OEN_SDIO1_CDATA_OUT_EN_1>;
+                       sf,pin-gpio-din =  <GPI_SDIO1_CDATA_IN_1>;
+               };
+
+               sdcard1-pins4 {
+                       sf,pins = <PAD_GPIO2>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_SDIO1_CDATA_OUT_2>;
+                       sf,pin-gpio-doen = <OEN_SDIO1_CDATA_OUT_EN_2>;
+                       sf,pin-gpio-din =  <GPI_SDIO1_CDATA_IN_2>;
+               };
+
+               sdcard1-pins5 {
+                       sf,pins = <PAD_GPIO3>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_SDIO1_CDATA_OUT_3>;
+                       sf,pin-gpio-doen = <OEN_SDIO1_CDATA_OUT_EN_3>;
+                       sf,pin-gpio-din =  <GPI_SDIO1_CDATA_IN_3>;
+               };
+       };
+
+       pwmdac0_pins: pwmdac0-pins {
+               pwmdac0-pins-left {
+                       sf,pins = <PAD_GPIO33>;
+                       sf,pinmux = <PAD_GPIO33_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_PWMDAC0_LEFT_OUTPUT>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+
+               pwmdac0-pins-right {
+                       sf,pins = <PAD_GPIO34>;
+                       sf,pinmux = <PAD_GPIO34_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_PWMDAC0_RIGHT_OUTPUT>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+       };
+
+       pwm_pins: pwm-pins {
+               pwm_ch0-pins {
+                       sf,pins = <PAD_GPIO46>;
+                       sf,pinmux = <PAD_GPIO46_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_PTC0_PWM_0>;
+                       sf,pin-gpio-doen = <OEN_PTC0_PWM_0_OE_N>;
+               };
+
+               pwm_ch1-pins {
+                       sf,pins = <PAD_GPIO59>;
+                       sf,pinmux = <PAD_GPIO59_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_PTC0_PWM_1>;
+                       sf,pin-gpio-doen = <OEN_PTC0_PWM_1_OE_N>;
+               };
+       };
+
+       ssp0_pins: ssp0-pins {
+               ssp0-pins_tx {
+                       sf,pins = <PAD_GPIO52>;
+                       sf,pinmux = <PAD_GPIO52_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_SPI0_SSPTXD>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+
+               ssp0-pins_rx {
+                       sf,pins = <PAD_GPIO53>;
+                       sf,pinmux = <PAD_GPIO53_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-doen = <OEN_HIGH>;
+                       sf,pin-gpio-din =  <GPI_SPI0_SSPRXD>;
+               };
+
+               ssp0-pins_clk {
+                       sf,pins = <PAD_GPIO48>;
+                       sf,pinmux = <PAD_GPIO48_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_SPI0_SSPCLKOUT>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+
+               ssp0-pins_cs {
+                       sf,pins = <PAD_GPIO49>;
+                       sf,pinmux = <PAD_GPIO49_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_SPI0_SSPFSSOUT>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+       };
+
+       inno_hdmi_pins: inno_hdmi-pins {
+               inno_hdmi-scl {
+                       sf,pins = <PAD_GPIO7>;
+                       //sf,pinmux = <PAD_GPIO7_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_HDMI0_DDC_SCL_OUT>;
+                       sf,pin-gpio-doen = <OEN_HDMI0_DDC_SCL_OEN>;
+                       sf,pin-gpio-din =  <GPI_HDMI0_DDC_SCL_IN>;
+               };
+
+               inno_hdmi-sda {
+                       sf,pins = <PAD_GPIO8>;
+                       //sf,pinmux = <PAD_GPIO8_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-dout = <GPO_HDMI0_DDC_SDA_OUT>;
+                       sf,pin-gpio-doen = <OEN_HDMI0_DDC_SDA_OEN>;
+                       sf,pin-gpio-din =  <GPI_HDMI0_DDC_SDA_IN>;
+               };
+               inno_hdmi-cec-pins {
+                       sf,pins = <PAD_GPIO14>;
+                       //sf,pinmux = <PAD_GPIO14_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
+                       sf,pin-gpio-doen = <OEN_HDMI0_CEC_SDA_OEN>;
+                       sf,pin-gpio-dout = <GPO_HDMI0_CEC_SDA_OUT>;
+                       sf,pin-gpio-din =  <GPI_HDMI0_CEC_SDA_IN>;
+               };
+               inno_hdmi-hpd-pins {
+                       sf,pins = <PAD_GPIO15>;
+                       //sf,pinmux = <PAD_GPIO15_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-doen = <OEN_HIGH>;
+                       sf,pin-gpio-din =  <GPI_HDMI0_HPD>;
+               };
+       };
+
+       pcie0_perst_default: pcie0_perst_default {
+               perst-pins {
+                       sf,pins = <PAD_GPIO26>;
+                       sf,pinmux = <PAD_GPIO26_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_HIGH>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+       };
+
+       pcie0_perst_active: pcie0_perst_active {
+               perst-pins {
+                       sf,pins = <PAD_GPIO26>;
+                       sf,pinmux = <PAD_GPIO26_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_LOW>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+       };
+
+       pcie0_power_active: pcie0_power_active {
+               power-pins {
+                       sf,pins = <PAD_GPIO32>;
+                       sf,pinmux = <PAD_GPIO32_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_HIGH>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+       };
+
+       pcie1_perst_default: pcie1_perst_default {
+               perst-pins {
+                       sf,pins = <PAD_GPIO28>;
+                       sf,pinmux = <PAD_GPIO28_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_HIGH>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+       };
+
+       pcie1_perst_active: pcie1_perst_active {
+               perst-pins {
+                       sf,pins = <PAD_GPIO28>;
+                       sf,pinmux = <PAD_GPIO28_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_LOW>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+       };
+
+       pcie1_power_active: pcie1_power_active {
+               power-pins {
+                       sf,pins = <PAD_GPIO21>;
+                       sf,pinmux = <PAD_GPIO21_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_HIGH>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+       };
+
+       usb_pins: usb-pins {
+               drive-vbus-pin {
+                       sf,pins = <PAD_GPIO25>;
+                       sf,pinmux = <PAD_GPIO25_FUNC_SEL 0>;
+                       sf,pin-ioconfig = <IO(GPIO_IE(1))>;
+                       sf,pin-gpio-dout = <GPO_USB0_DRIVE_VBUS_IO>;
+                       sf,pin-gpio-doen = <OEN_LOW>;
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins>;
+       status = "okay";
+};
+
+&dma {
+       status = "okay";
+};
+
+&trng {
+       status = "okay";
+};
+
+&crypto {
+       status = "okay";
+};
+
+&sec_dma {
+       status = "okay";
+};
+
+&i2c0 {
+       clock-frequency = <100000>;
+       i2c-sda-hold-time-ns = <300>;
+       i2c-sda-falling-time-ns = <3000>;
+       i2c-scl-falling-time-ns = <3000>;
+       auto_calc_scl_lhcnt;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       status = "okay";
+
+       ac108_a: ac108@3b {
+               compatible = "x-power,ac108_0";
+               reg = <0x3b>;
+               #sound-dai-cells = <0>;
+               data-protocol = <0>;
+       };
+
+       wm8960: codec@1a {
+               compatible = "wlf,wm8960";
+               reg = <0x1a>;
+               #sound-dai-cells = <0>;
+
+               wlf,shared-lrclk;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       i2c-sda-hold-time-ns = <300>;
+       i2c-sda-falling-time-ns = <3000>;
+       i2c-scl-falling-time-ns = <3000>;
+       auto_calc_scl_lhcnt;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins>;
+       status = "okay";
+
+       seeed_plane_i2c@45 {
+               compatible = "seeed_panel";
+               reg = <0x45>;
+
+               port {
+                       panel_dsi_port: endpoint {
+                               remote-endpoint = <&dsi_out_port>;
+                       };
+               };
+       };
+
+};
+
+&i2c5 {
+       clock-frequency = <100000>;
+       i2c-sda-hold-time-ns = <300>;
+       i2c-sda-falling-time-ns = <3000>;
+       i2c-scl-falling-time-ns = <3000>;
+       auto_calc_scl_lhcnt;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c5_pins>;
+       status = "okay";
+};
+
+&i2c6 {
+       clock-frequency = <100000>;
+       i2c-sda-hold-time-ns = <300>;
+       i2c-sda-falling-time-ns = <3000>;
+       i2c-scl-falling-time-ns = <3000>;
+       auto_calc_scl_lhcnt;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c6_pins>;
+       status = "okay";
+};
+
+&sdio0 {
+       clock-frequency = <102400000>;
+       max-frequency = <100000000>;
+       card-detect-delay = <300>;
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       non-removable;
+       cap-mmc-hw-reset;
+       post-power-on-delay-ms = <200>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins>;
+       status = "okay";
+};
+
+&sdio1 {
+       clock-frequency = <4000000>;
+       max-frequency = <1000000>;
+       card-detect-delay = <300>;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       cap-mmc-hw-reset;
+       non-removable;
+       enable-sdio-wakeup;
+       keep-power-in-suspend;
+       cap-mmc-highspeed;
+       post-power-on-delay-ms = <200>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdcard1_pins>;
+       cd-gpios = <&gpio 6 0>;
+       status = "okay";
+};
+
+&sfctemp {
+       status = "okay";
+};
+
+&jpu {
+       status = "okay";
+};
+
+&vpu_dec {
+       status = "okay";
+};
+
+&vpu_enc {
+       status = "okay";
+};
+
+&gmac0 {
+       status = "okay";
+};
+
+&gmac1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+       phy0: ethernet-phy@0 {
+               rxc-skew-ps = <1060>;
+               txc-skew-ps = <1800>;
+               reg = <0>;
+       };
+};
+
+&gpu {
+       status = "okay";
+};
+
+&pwmdac {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwmdac0_pins>;
+       status = "okay";
+};
+
+&pwmdac_codec {
+       status = "okay";
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&ssp0_pins>;
+       status = "okay";
+
+       spi_dev0: spi@0 {
+               compatible = "rohm,dh2228fv";
+               pl022,com-mode = <1>;
+               spi-max-frequency = <10000000>;
+               reg = <0>;
+               status = "okay";
+       };
+};
+
+&pcie0 {
+       pinctrl-names = "perst-default", "perst-active", "power-active";
+       pinctrl-0 = <&pcie0_perst_default>;
+       pinctrl-1 = <&pcie0_perst_active>;
+       pinctrl-2 = <&pcie0_power_active>;
+       status = "okay";
+};
+
+&pcie1 {
+       pinctrl-names = "perst-default", "perst-active", "power-active";
+       pinctrl-0 = <&pcie1_perst_default>;
+       pinctrl-1 = <&pcie1_perst_active>;
+       pinctrl-2 = <&pcie1_power_active>;
+       status = "okay";
+};
+
+&mailbox_contrl0 {
+       status = "okay";
+};
+
+&mailbox_client0 {
+       status = "okay";
+};
+
+&display {
+       status = "okay";
 };
 
-&timer {
-       clock-frequency = <24000000>;
-};
\ No newline at end of file
+&hdmi {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&inno_hdmi_pins>;
+
+       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>;
+               };
+       };
+};
+
+&hdmi_output {
+       status = "okay";
+
+       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>;
+                       };
+               };
+       };
+};
+
+&encoder {
+       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>;
+                       mipi_out: endpoint {
+                               remote-endpoint = <&dsi_in_port>;
+                       };
+               };
+       };
+};
+
+&mipi_dsi {
+       status = "okay";
+};
+
+&mipi_dphy {
+       status = "okay";
+};
+
+&mipi_dphy {
+       status = "disabled";
+};
+
+&co_process {
+       status = "okay";
+};
+
+&usbdrd30 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb_pins>;
+       dr_mode = "host"; /*host or peripheral*/
+       status = "disabled";
+};
+
+&xrp {
+       status = "okay";
+};
+
+&ptc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm_pins>;
+       status = "okay";
+};
diff --git a/arch/riscv/configs/starfive_visionfive2_defconfig b/arch/riscv/configs/starfive_visionfive2_defconfig
new file mode 100644 (file)
index 0000000..45bc722
--- /dev/null
@@ -0,0 +1,291 @@
+CONFIG_DEFAULT_HOSTNAME="StarFive"
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_USELIB=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+CONFIG_USER_NS=y
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EXPERT=y
+CONFIG_SOC_STARFIVE=y
+CONFIG_SOC_STARFIVE_JH7110=y
+CONFIG_SMP=y
+CONFIG_HZ_100=y
+# CONFIG_SECCOMP is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_PAGE_REPORTING=y
+CONFIG_CMA=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+# CONFIG_IPV6 is not set
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_NETLINK_ACCT=y
+CONFIG_NETFILTER_NETLINK_QUEUE=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_TABLES=y
+CONFIG_NFT_CT=y
+CONFIG_NFT_COMPAT=y
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=y
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
+CONFIG_NETFILTER_XT_MATCH_MAC=y
+CONFIG_NETFILTER_XT_MATCH_MARK=y
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
+CONFIG_NETFILTER_XT_MATCH_SOCKET=y
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+CONFIG_NETFILTER_XT_MATCH_STRING=y
+CONFIG_NETFILTER_XT_MATCH_U32=y
+CONFIG_NF_TABLES_IPV4=y
+CONFIG_NFT_DUP_IPV4=y
+CONFIG_NFT_FIB_IPV4=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+CONFIG_IP_NF_NAT=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP_NF_TARGET_NETMAP=y
+CONFIG_IP_NF_TARGET_REDIRECT=y
+CONFIG_NETLINK_DIAG=y
+CONFIG_CAN=y
+CONFIG_IPMS_CAN=y
+CONFIG_BT=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=y
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_H4=y
+CONFIG_CFG80211=y
+CONFIG_MAC80211=y
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+CONFIG_PCI=y
+CONFIG_PCIEASPM_POWERSAVE=y
+CONFIG_PCIE_PLDA=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_EXTRA_FIRMWARE="iwlwifi-ty-a0-gf-a0-66.ucode iwlwifi-ty-a0-gf-a0.pnvm"
+CONFIG_EXTRA_FIRMWARE_DIR="firmware"
+CONFIG_OF_CONFIGFS=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_BLK_DEV_NVME=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_SCSI_VIRTIO=y
+CONFIG_ATA=y
+CONFIG_SATA_AHCI=y
+CONFIG_NETDEVICES=y
+CONFIG_VIRTIO_NET=y
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_GOOGLE is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MELLANOX is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_PENSANDO is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+CONFIG_R8169=y
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+CONFIG_STMMAC_ETH=y
+CONFIG_STMMAC_SELFTESTS=y
+CONFIG_DWMAC_DWC_QOS_ETH=y
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+# CONFIG_NET_VENDOR_XILINX is not set
+CONFIG_MARVELL_PHY=y
+CONFIG_MICREL_PHY=y
+CONFIG_MOTORCOMM_PHY=y
+CONFIG_IWLWIFI=y
+CONFIG_IWLDVM=y
+CONFIG_IWLMVM=y
+# CONFIG_RTL_CARDS is not set
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=6
+CONFIG_SERIAL_8250_RUNTIME_UARTS=6
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_HVC_RISCV_SBI=y
+CONFIG_TTY_PRINTK=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_SPI=y
+CONFIG_SPI_PL022=y
+CONFIG_SPI_SIFIVE=y
+CONFIG_SPI_SPIDEV=y
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_STARFIVE=y
+CONFIG_PINCTRL_STARFIVE_JH7110=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_SENSORS_SFCTEMP=y
+CONFIG_WATCHDOG=y
+CONFIG_STARFIVE_WATCHDOG=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_STF7110=y
+# CONFIG_MEDIA_CEC_SUPPORT is not set
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_STF_VIN=y
+CONFIG_VIN_SENSOR_SC2235=y
+CONFIG_VIN_SENSOR_OV4689=y
+CONFIG_DRM=y
+CONFIG_DRM_VERISILICON=y
+CONFIG_STARFIVE_INNO_HDMI=y
+# CONFIG_DRM_IMG_NULLDISP is not set
+CONFIG_DRM_LEGACY=y
+CONFIG_FB=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_USB_AUDIO=y
+CONFIG_SND_SOC=y
+CONFIG_SND_DESIGNWARE_I2S=y
+CONFIG_SND_DESIGNWARE_I2S_STARFIVE_JH7110=y
+CONFIG_SND_SOC_WM8960=y
+CONFIG_SND_STARFIVE_PWMDAC=y
+CONFIG_SND_SIMPLE_CARD=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_UAS=y
+CONFIG_USB_CDNS_SUPPORT=y
+CONFIG_USB_CDNS3=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_STARFIVE=y
+CONFIG_MMC=y
+CONFIG_MMC_DEBUG=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_OF_DWCMSHC=y
+CONFIG_MMC_SPI=y
+CONFIG_MMC_DW=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_STARFIVE=y
+CONFIG_RTC_DRV_GOLDFISH=y
+CONFIG_DMADEVICES=y
+CONFIG_DW_AXI_DMAC=y
+CONFIG_DMATEST=y
+# CONFIG_VIRTIO_MENU is not set
+# CONFIG_VHOST_MENU is not set
+CONFIG_GOLDFISH=y
+CONFIG_STARFIVE_TIMER=y
+CONFIG_MAILBOX=y
+CONFIG_STARFIVE_MBOX=m
+CONFIG_STARFIVE_MBOX_TEST=m
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_RPMSG_CHAR=y
+CONFIG_RPMSG_VIRTIO=y
+CONFIG_SIFIVE_L2_FLUSH_START=0x40000000
+CONFIG_SIFIVE_L2_FLUSH_SIZE=0x400000000
+CONFIG_PWM=y
+CONFIG_PWM_STARFIVE_PTC=y
+CONFIG_PHY_M31_DPHY_RX0=y
+CONFIG_RAS=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_CUSE=y
+CONFIG_VIRTIO_FS=y
+CONFIG_OVERLAY_FS=y
+CONFIG_OVERLAY_FS_INDEX=y
+CONFIG_OVERLAY_FS_XINO_AUTO=y
+CONFIG_OVERLAY_FS_METACOPY=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_UTF8=y
+CONFIG_EXFAT_FS=y
+CONFIG_NTFS_FS=y
+CONFIG_NTFS_RW=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_HUGETLBFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_USER_API_HASH=y
+CONFIG_CRYPTO_USER_API_SKCIPHER=y
+CONFIG_CRYPTO_USER_API_RNG=y
+CONFIG_CRYPTO_USER_API_AEAD=y
+CONFIG_CRYPTO_USER_API_AKCIPHER=y
+CONFIG_CRYPTO_DEV_VIRTIO=y
+CONFIG_CRYPTO_DEV_JH7110_ENCRYPT=y
+CONFIG_DMA_CMA=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_FS=y
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_WQ_WATCHDOG=y
+CONFIG_DEBUG_TIMEKEEPING=y
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_RWSEMS=y
+CONFIG_DEBUG_ATOMIC_SLEEP=y
+CONFIG_STACKTRACE=y
+CONFIG_DEBUG_LIST=y
+CONFIG_DEBUG_PLIST=y
+CONFIG_DEBUG_SG=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_EQS_DEBUG=y
+# CONFIG_FTRACE is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_MEMTEST=y