[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1a6ddd61-f6ad-4ed8-b554-22a0377689a3@freeshell.de>
Date: Mon, 24 Nov 2025 13:56:08 -0800
From: E Shattow <e@...eshell.de>
To: Conor Dooley <conor@...nel.org>, Icenowy Zheng <uwu@...nowy.me>
Cc: Emil Renner Berthing <kernel@...il.dk>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Paul Walmsley <pjw@...nel.org>,
Palmer Dabbelt <palmer@...belt.com>, Albert Ou <aou@...s.berkeley.edu>,
Alexandre Ghiti <alex@...ti.fr>, linux-kernel@...r.kernel.org,
linux-riscv@...ts.infradead.org, devicetree@...r.kernel.org,
Conor Dooley <conor+dt@...nel.org>
Subject: Re: [PATCH v3 2/2] riscv: dts: starfive: add Orange Pi RV
On 11/24/25 05:21, Conor Dooley wrote:
> 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@...nowy.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
Discussion below about TODO comment and out-of-band IRQ applies to the
above featured device named in the commit message. I don't have this
board and so I reformat the commit message without adding statements
about what is working or not working compared to the VisionFive 2 common
features. There is certainly not a complete devicetree in this series to
enable the wireless connectivity features. I don't know about other
features, for example the audio and HDMI video output.
>>>> - microSD slot on mmc1
>>>> - SPI NOR flash memory
>>>> - 24c02 EEPROM (read only by default)
>>>>
>>>> Signed-off-by: Icenowy Zheng <uwu@...nowy.me>
>>>> Signed-off-by: E Shattow <e@...eshell.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@...nowy.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@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.
>
Conor, amending the TODO comment and/or commit message sounds good to me
if you want to.
The need for out-of-band IRQ also applies to Milk-V Mars CM of the same
AP6256 chipset SDIO functionality, where however, it does not appear to
me to be the same use of GPIO21.
Milk-V vendor board support package has compatible = "bcmdhd_wlan" for
an Android driver on the 5.15 kernel not present in mainline Linux today:
https://github.com/milkv-mars/mars-buildroot-sdk/blob/dev/linux/arch/riscv/boot/dts/starfive/jh7110-milkv-mars-cm.dtsi
So it's a different driver now than the vendor stuff and can likely be
improved to be functional but I'm not sure what to do. When Icenowy or
anyone will make suggestions I can test for Milk-V Mars CM, and add the
remaining devicetree description there too when it is known what to do.
-E
>>
>>>
>>>> + };
>>>> +};
>>>> +
>>>> +&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
>>>>
>>
Powered by blists - more mailing lists