[PATCH v3 2/2] riscv: dts: starfive: add Orange Pi RV
Conor Dooley
conor at kernel.org
Mon Nov 24 05:21:42 PST 2025
On Mon, Nov 24, 2025 at 07:08:55PM +0800, Icenowy Zheng wrote:
> 在 2025-11-24星期一的 11:07 +0000,Conor Dooley写道:
> > On Sun, Nov 23, 2025 at 02:50:45PM -0800, E Shattow wrote:
> > > From: Icenowy Zheng <uwu at icenowy.me>
> > >
> > > Orange Pi RV is a SBC based on the StarFive VisionFive 2 board.
> > >
> > > Orange Pi RV features:
> > >
> > > - StarFive JH7110 SoC
> > > - GbE port connected to JH7110 GMAC0 via YT8531 PHY
> > > - 4x USB ports via VL805 PCIe USB controller connected to JH7110
> > > pcie0
> > > - M.2 M-key slot connected to JH7110 pcie1
> > > - HDMI video output
> > > - 3.5mm audio output
> > > - Ampak AP6256 SDIO Wi-Fi/Bluetooth module on mmc0
> > > - microSD slot on mmc1
> > > - SPI NOR flash memory
> > > - 24c02 EEPROM (read only by default)
> > >
> > > Signed-off-by: Icenowy Zheng <uwu at icenowy.me>
> > > Signed-off-by: E Shattow <e at freeshell.de>
> > > ---
> > > arch/riscv/boot/dts/starfive/Makefile | 1 +
> > > .../boot/dts/starfive/jh7110-orangepi-rv.dts | 76
> > > +++++++++++++++++++
> > > 2 files changed, 77 insertions(+)
> > > create mode 100644 arch/riscv/boot/dts/starfive/jh7110-orangepi-
> > > rv.dts
> > >
> > > diff --git a/arch/riscv/boot/dts/starfive/Makefile
> > > b/arch/riscv/boot/dts/starfive/Makefile
> > > index 62b659f89ba7..d34c8c79bc10 100644
> > > --- a/arch/riscv/boot/dts/starfive/Makefile
> > > +++ b/arch/riscv/boot/dts/starfive/Makefile
> > > @@ -12,6 +12,7 @@ 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-
> > > v1.2a.dtb
> > > dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-
> > > v1.3b.dtb
> > > diff --git a/arch/riscv/boot/dts/starfive/jh7110-orangepi-rv.dts
> > > b/arch/riscv/boot/dts/starfive/jh7110-orangepi-rv.dts
> > > new file mode 100644
> > > index 000000000000..16ec2767134e
> > > --- /dev/null
> > > +++ b/arch/riscv/boot/dts/starfive/jh7110-orangepi-rv.dts
> > > @@ -0,0 +1,76 @@
> > > +// SPDX-License-Identifier: GPL-2.0 OR MIT
> > > +/*
> > > + * Copyright (C) 2025 Icenowy Zheng <uwu at 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 = <®_vcc3v3_pcie>;
> > > + vqmmc-supply = <&vcc_3v3>;
> > > + status = "okay";
> > > +
> > > + ap6256: wifi at 1 {
> > > + compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-
> > > fmac";
> > > + reg = <1>;
> > > + /* TODO: out-of-band IRQ on GPIO21 */
> >
> > What's up with this TODO? Why's the gpio not here? Missing binding
> > support, missing driver support?
>
> Missing driver support in the pinctrl driver.
Provided Emil is okay with the patchset, I'll probably modify the
comment to mention what the todo depends on then.
>
> >
> > > + };
> > > +};
> > > +
> > > +&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";
> > > +};
> > > --
> > > 2.50.0
> > >
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-riscv/attachments/20251124/841c657a/attachment.sig>
More information about the linux-riscv
mailing list