1
0
RISC-V Devicetrees for v6.19

MAINTAINERS:
There's some re-jigging of things to reduce duplication, by moving me
into the StarFive entry and my tree into the Microchip one. The
other platforms that I look after (SiFive and Canaan) are marked as Odd
Fixes to better represent their status. Nothing functionally changes.

Microchip:
Add adc and mmc nodes for the Beagle-V Fire.

SiFive:
Add pwm fans to the unmatched board.

StarFive:
Add the Orange PI RV board, another VisionFive 2 derived SBC. This
required moving a mmc related nodes out of the common file, into
<board>.dts. Yet more things moved out of the common file when the
VisionFive 2 Lite boards were added, which use the JH7110S SoC instead of
the JH7110. The difference here between SoCs is just temperature and
frequency ranges, but the boards differ enough that the pool of common
nodes decreases a little further.  There's an eMMC and an SD variant
here, that are different SKUs, bringing the total new StarFive boards to
three.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

* tag 'riscv-dt-for-v6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux:
  riscv: dts: starfive: add Orange Pi RV
  dt-bindings: riscv: starfive: add xunlong,orangepi-rv
  riscv: dts: starfive: Add VisionFive 2 Lite eMMC board device tree
  riscv: dts: starfive: Add VisionFive 2 Lite board device tree
  riscv: dts: starfive: Add common board dtsi for VisionFive 2 Lite variants
  riscv: dts: starfive: jh7110-common: Move out some nodes to the board dts
  dt-bindings: riscv: Add StarFive JH7110S SoC and VisionFive 2 Lite board
  MAINTAINERS: degrade RISC-V MISC SOC SUPPORT to Odd Fixes
  MAINTAINERS: add tree to RISC-V Microchip entry
  MAINTAINERS: remove patchwork from RISC-V MISC SOC SUPPORT
  MAINTAINERS: add Conor to StarFive entry
  riscv: dts: sifive: unmatched: Add PWM controlled fans
  riscv: dts: microchip: enable qspi adc/mmc-spi-slot on BeagleV Fire
  dts: starfive: jh7110-common: split out mmc0 reset pins from common into boards

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann
2025-11-27 22:49:31 +01:00
17 changed files with 528 additions and 23 deletions

View File

@@ -33,8 +33,15 @@ properties:
- pine64,star64
- starfive,visionfive-2-v1.2a
- starfive,visionfive-2-v1.3b
- xunlong,orangepi-rv
- const: starfive,jh7110
- items:
- enum:
- starfive,visionfive-2-lite
- starfive,visionfive-2-lite-emmc
- const: starfive,jh7110s
additionalProperties: true
...

View File

@@ -22110,6 +22110,7 @@ M: Conor Dooley <conor.dooley@microchip.com>
M: Daire McNamara <daire.mcnamara@microchip.com>
L: linux-riscv@lists.infradead.org
S: Supported
T: git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/ (dts, soc, firmware)
F: Documentation/devicetree/bindings/clock/microchip,mpfs*.yaml
F: Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml
F: Documentation/devicetree/bindings/i2c/microchip,corei2c.yaml
@@ -22140,13 +22141,10 @@ F: include/soc/microchip/mpfs.h
RISC-V MISC SOC SUPPORT
M: Conor Dooley <conor@kernel.org>
L: linux-riscv@lists.infradead.org
S: Maintained
Q: https://patchwork.kernel.org/project/linux-riscv/list/
S: Odd Fixes
T: git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
F: arch/riscv/boot/dts/canaan/
F: arch/riscv/boot/dts/microchip/
F: arch/riscv/boot/dts/sifive/
F: arch/riscv/boot/dts/starfive/
RISC-V PMU DRIVERS
M: Atish Patra <atish.patra@linux.dev>
@@ -24471,7 +24469,10 @@ F: drivers/crypto/starfive/
STARFIVE DEVICETREES
M: Emil Renner Berthing <kernel@esmil.dk>
M: Conor Dooley <conor@kernel.org>
L: linux-riscv@lists.infradead.org
S: Maintained
T: git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
F: arch/riscv/boot/dts/starfive/
STARFIVE DWMAC GLUE LAYER

View File

@@ -79,6 +79,26 @@
};
&gpio0 {
interrupts = <13>, <14>, <15>, <16>,
<17>, <18>, <19>, <20>,
<21>, <22>, <23>, <24>,
<25>, <26>;
ngpios = <14>;
status = "okay";
};
&gpio1 {
interrupts = <27>, <28>, <29>, <30>,
<31>, <32>, <33>, <34>,
<35>, <36>, <37>, <38>,
<39>, <40>, <41>, <42>,
<43>, <44>, <45>, <46>,
<47>, <48>, <49>, <50>;
ngpios = <24>;
status = "okay";
};
&gpio2 {
interrupts = <53>, <53>, <53>, <53>,
<53>, <53>, <53>, <53>,
@@ -199,6 +219,82 @@
status = "okay";
};
&qspi {
status = "okay";
cs-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>, <&gpio0 12 GPIO_ACTIVE_LOW>;
num-cs = <2>;
adc@0 {
compatible = "microchip,mcp3464r";
reg = <0>; /* CE0 */
spi-cpol;
spi-cpha;
spi-max-frequency = <5000000>;
microchip,hw-device-address = <1>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
channel@0 {
/* CH0 to AGND */
reg = <0>;
label = "CH0";
};
channel@1 {
/* CH1 to AGND */
reg = <1>;
label = "CH1";
};
channel@2 {
/* CH2 to AGND */
reg = <2>;
label = "CH2";
};
channel@3 {
/* CH3 to AGND */
reg = <3>;
label = "CH3";
};
channel@4 {
/* CH4 to AGND */
reg = <4>;
label = "CH4";
};
channel@5 {
/* CH5 to AGND */
reg = <5>;
label = "CH5";
};
channel@6 {
/* CH6 to AGND */
reg = <6>;
label = "CH6";
};
channel@7 {
/* CH7 is connected to AGND */
reg = <7>;
label = "CH7";
};
};
mmc@1 {
compatible = "mmc-spi-slot";
reg = <1>;
gpios = <&gpio2 31 1>;
voltage-ranges = <3300 3300>;
spi-max-frequency = <5000000>;
disable-wp;
};
};
&syscontroller {
microchip,bitstream-flash = <&sys_ctrl_flash>;
status = "okay";

View File

@@ -47,6 +47,16 @@
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
fan1 {
compatible = "pwm-fan";
pwms = <&pwm1 2 7812500 0>;
};
fan2 {
compatible = "pwm-fan";
pwms = <&pwm1 3 7812500 0>;
};
led-controller-1 {
compatible = "pwm-leds";

View File

@@ -12,6 +12,9 @@ dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-deepcomputing-fml13v01.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-milkv-mars.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-milkv-marscm-emmc.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-milkv-marscm-lite.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-orangepi-rv.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-pine64-star64.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-lite.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-lite-emmc.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.2a.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.3b.dtb

View File

@@ -281,14 +281,8 @@
assigned-clock-rates = <50000000>;
bus-width = <8>;
bootph-pre-ram;
cap-mmc-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
cap-mmc-hw-reset;
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins>;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&emmc_vdd>;
status = "okay";
};
@@ -298,8 +292,6 @@
assigned-clock-rates = <50000000>;
bus-width = <4>;
bootph-pre-ram;
cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW>;
disable-wp;
cap-sd-highspeed;
pinctrl-names = "default";
pinctrl-0 = <&mmc1_pins>;
@@ -444,17 +436,6 @@
};
mmc0_pins: mmc0-0 {
rst-pins {
pinmux = <GPIOMUX(62, GPOUT_SYS_SDIO0_RST,
GPOEN_ENABLE,
GPI_NONE)>;
bias-pull-up;
drive-strength = <12>;
input-disable;
input-schmitt-disable;
slew-rate = <0>;
};
mmc-pins {
pinmux = <PINMUX(PAD_SD0_CLK, 0)>,
<PINMUX(PAD_SD0_CMD, 0)>,

View File

@@ -11,6 +11,33 @@
compatible = "deepcomputing,fml13v01", "starfive,jh7110";
};
&mmc0 {
cap-mmc-highspeed;
cap-mmc-hw-reset;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&emmc_vdd>;
};
&mmc0_pins {
rst-pins {
pinmux = <GPIOMUX(62, GPOUT_SYS_SDIO0_RST,
GPOEN_ENABLE,
GPI_NONE)>;
bias-pull-up;
drive-strength = <12>;
input-disable;
input-schmitt-disable;
slew-rate = <0>;
};
};
&mmc1 {
cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW>;
disable-wp;
};
&pcie1 {
perst-gpios = <&sysgpio 21 GPIO_ACTIVE_LOW>;
phys = <&pciephy1>;

View File

@@ -22,6 +22,33 @@
status = "okay";
};
&mmc0 {
cap-mmc-highspeed;
cap-mmc-hw-reset;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&emmc_vdd>;
};
&mmc0_pins {
rst-pins {
pinmux = <GPIOMUX(62, GPOUT_SYS_SDIO0_RST,
GPOEN_ENABLE,
GPI_NONE)>;
bias-pull-up;
drive-strength = <12>;
input-disable;
input-schmitt-disable;
slew-rate = <0>;
};
};
&mmc1 {
cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW>;
disable-wp;
};
&pcie0 {
status = "okay";
};

View File

@@ -10,3 +10,12 @@
model = "Milk-V Mars CM";
compatible = "milkv,marscm-emmc", "starfive,jh7110";
};
&mmc0 {
cap-mmc-highspeed;
cap-mmc-hw-reset;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&emmc_vdd>;
};

View File

@@ -14,6 +14,7 @@
&mmc0 {
bus-width = <4>;
cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW>;
disable-wp;
};
&mmc0_pins {

View File

@@ -40,6 +40,19 @@
status = "disabled";
};
&mmc0_pins {
rst-pins {
pinmux = <GPIOMUX(62, GPOUT_SYS_SDIO0_RST,
GPOEN_ENABLE,
GPI_NONE)>;
bias-pull-up;
drive-strength = <12>;
input-disable;
input-schmitt-disable;
slew-rate = <0>;
};
};
&mmc1 {
#address-cells = <1>;
#size-cells = <0>;

View File

@@ -0,0 +1,76 @@
// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
* Copyright (C) 2025 Icenowy Zheng <uwu@icenowy.me>
*/
/dts-v1/;
#include "jh7110-common.dtsi"
/ {
model = "Xunlong Orange Pi RV";
compatible = "xunlong,orangepi-rv", "starfive,jh7110";
/* This regulator is always on by hardware */
reg_vcc3v3_pcie: regulator-vcc3v3-pcie {
compatible = "regulator-fixed";
regulator-name = "vcc3v3-pcie";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
wifi_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&sysgpio 62 GPIO_ACTIVE_LOW>;
};
};
&gmac0 {
assigned-clocks = <&aoncrg JH7110_AONCLK_GMAC0_TX>;
assigned-clock-parents = <&aoncrg JH7110_AONCLK_GMAC0_RMII_RTX>;
starfive,tx-use-rgmii-clk;
status = "okay";
};
&mmc0 {
#address-cells = <1>;
#size-cells = <0>;
cap-sd-highspeed;
mmc-pwrseq = <&wifi_pwrseq>;
vmmc-supply = <&reg_vcc3v3_pcie>;
vqmmc-supply = <&vcc_3v3>;
status = "okay";
ap6256: wifi@1 {
compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
reg = <1>;
/* TODO: out-of-band IRQ on GPIO21, lacking pinctrl support */
};
};
&mmc1 {
cd-gpios = <&sysgpio 41 GPIO_ACTIVE_HIGH>;
};
&pcie0 {
status = "okay";
};
&pcie1 {
status = "okay";
};
&phy0 {
rx-internal-delay-ps = <1500>;
tx-internal-delay-ps = <1500>;
motorcomm,rx-clk-drv-microamp = <3970>;
motorcomm,rx-data-drv-microamp = <2910>;
motorcomm,tx-clk-adj-enabled;
motorcomm,tx-clk-10-inverted;
motorcomm,tx-clk-100-inverted;
motorcomm,tx-clk-1000-inverted;
};
&pwmdac {
status = "okay";
};

View File

@@ -44,6 +44,33 @@
status = "okay";
};
&mmc0 {
cap-mmc-highspeed;
cap-mmc-hw-reset;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&emmc_vdd>;
};
&mmc0_pins {
rst-pins {
pinmux = <GPIOMUX(62, GPOUT_SYS_SDIO0_RST,
GPOEN_ENABLE,
GPI_NONE)>;
bias-pull-up;
drive-strength = <12>;
input-disable;
input-schmitt-disable;
slew-rate = <0>;
};
};
&mmc1 {
cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW>;
disable-wp;
};
&pcie1 {
status = "okay";
};

View File

@@ -0,0 +1,22 @@
// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
* Copyright (C) 2025 StarFive Technology Co., Ltd.
* Copyright (C) 2025 Hal Feng <hal.feng@starfivetech.com>
*/
/dts-v1/;
#include "jh7110-starfive-visionfive-2-lite.dtsi"
/ {
model = "StarFive VisionFive 2 Lite eMMC";
compatible = "starfive,visionfive-2-lite-emmc", "starfive,jh7110s";
};
&mmc0 {
cap-mmc-highspeed;
cap-mmc-hw-reset;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&emmc_vdd>;
};

View File

@@ -0,0 +1,20 @@
// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
* Copyright (C) 2025 StarFive Technology Co., Ltd.
* Copyright (C) 2025 Hal Feng <hal.feng@starfivetech.com>
*/
/dts-v1/;
#include "jh7110-starfive-visionfive-2-lite.dtsi"
/ {
model = "StarFive VisionFive 2 Lite";
compatible = "starfive,visionfive-2-lite", "starfive,jh7110s";
};
&mmc0 {
bus-width = <4>;
cd-gpios = <&sysgpio 41 GPIO_ACTIVE_HIGH>;
disable-wp;
cap-sd-highspeed;
};

View File

@@ -0,0 +1,161 @@
// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
* Copyright (C) 2025 StarFive Technology Co., Ltd.
* Copyright (C) 2025 Hal Feng <hal.feng@starfivetech.com>
*/
/dts-v1/;
#include "jh7110-common.dtsi"
/ {
vcc_3v3_pcie: regulator-vcc-3v3-pcie {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&sysgpio 27 GPIO_ACTIVE_HIGH>;
regulator-name = "vcc_3v3_pcie";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
&cpu_opp {
/delete-node/ opp-375000000;
/delete-node/ opp-500000000;
/delete-node/ opp-750000000;
/delete-node/ opp-1500000000;
opp-312500000 {
opp-hz = /bits/ 64 <312500000>;
opp-microvolt = <800000>;
};
opp-417000000 {
opp-hz = /bits/ 64 <417000000>;
opp-microvolt = <800000>;
};
opp-625000000 {
opp-hz = /bits/ 64 <625000000>;
opp-microvolt = <800000>;
};
opp-1250000000 {
opp-hz = /bits/ 64 <1250000000>;
opp-microvolt = <1000000>;
};
};
&gmac0 {
starfive,tx-use-rgmii-clk;
assigned-clocks = <&aoncrg JH7110_AONCLK_GMAC0_TX>;
assigned-clock-parents = <&aoncrg JH7110_AONCLK_GMAC0_RMII_RTX>;
status = "okay";
};
&i2c0 {
status = "okay";
};
&mmc1 {
max-frequency = <50000000>;
keep-power-in-suspend;
non-removable;
};
&pcie1 {
vpcie3v3-supply = <&vcc_3v3_pcie>;
status = "okay";
};
&phy0 {
motorcomm,tx-clk-adj-enabled;
motorcomm,tx-clk-100-inverted;
motorcomm,tx-clk-1000-inverted;
motorcomm,rx-clk-drv-microamp = <3970>;
motorcomm,rx-data-drv-microamp = <2910>;
rx-internal-delay-ps = <1500>;
tx-internal-delay-ps = <1500>;
};
&pwm {
status = "okay";
};
&spi0 {
status = "okay";
};
&syscrg {
assigned-clock-rates = <0>, <0>, <0>, <0>, <500000000>, <1250000000>;
};
&sysgpio {
uart1_pins: uart1-0 {
tx-pins {
pinmux = <GPIOMUX(22, GPOUT_SYS_UART1_TX,
GPOEN_ENABLE,
GPI_NONE)>;
bias-disable;
drive-strength = <12>;
input-disable;
input-schmitt-disable;
slew-rate = <0>;
};
rx-pins {
pinmux = <GPIOMUX(23, GPOUT_LOW,
GPOEN_DISABLE,
GPI_SYS_UART1_RX)>;
bias-pull-up;
drive-strength = <2>;
input-enable;
input-schmitt-enable;
slew-rate = <0>;
};
cts-pins {
pinmux = <GPIOMUX(24, GPOUT_LOW,
GPOEN_DISABLE,
GPI_SYS_UART1_CTS)>;
input-enable;
};
rts-pins {
pinmux = <GPIOMUX(25, GPOUT_SYS_UART1_RTS,
GPOEN_ENABLE,
GPI_NONE)>;
input-enable;
};
};
usb0_pins: usb0-0 {
power-pins {
pinmux = <GPIOMUX(26, GPOUT_HIGH,
GPOEN_ENABLE,
GPI_NONE)>;
input-disable;
};
switch-pins {
pinmux = <GPIOMUX(62, GPOUT_LOW,
GPOEN_ENABLE,
GPI_NONE)>;
input-disable;
};
};
};
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins>;
status = "okay";
};
&usb0 {
dr_mode = "host";
pinctrl-names = "default";
pinctrl-0 = <&usb0_pins>;
status = "okay";
};
&usb_cdns3 {
phys = <&usbphy0>, <&pciephy0>;
phy-names = "cdns3,usb2-phy", "cdns3,usb3-phy";
};

View File

@@ -38,9 +38,33 @@
};
&mmc0 {
cap-mmc-highspeed;
cap-mmc-hw-reset;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&emmc_vdd>;
non-removable;
};
&mmc0_pins {
rst-pins {
pinmux = <GPIOMUX(62, GPOUT_SYS_SDIO0_RST,
GPOEN_ENABLE,
GPI_NONE)>;
bias-pull-up;
drive-strength = <12>;
input-disable;
input-schmitt-disable;
slew-rate = <0>;
};
};
&mmc1 {
cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW>;
disable-wp;
};
&pcie0 {
status = "okay";
};