Re: [PATCH v2 2/2] riscv: dts: sophgo: Add Milk-V Duo 256M board support

葉宸佑 <[email protected]> Fri, 10 Jul 2026 16:07:38 +0800
Newsgroups dev.linux.lists.sophgo,org.infradead.lists.linux-riscv,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <CAKspUhKriysiFhu-Jk-e1u6+GBJjMV1A5a7WgiLjf=aTgTyA_w@mail.gmail.com>
> > IIRC the led is not controlled by the small core, so the node should
> > be described in the dts.
> ...
> So why not adding the porte?

You are right, adding the porte is the proper fix. In v3 I added the
PWR_GPIO controller node to cv180x.dtsi as a separate patch, and
restored the gpio-leds node in the board dts. Verified on the actual
board that the heartbeat LED works with the new node.

> Why you change this? Please do not touch unrelated things.

Sorry, the removal of the trailing newline was accidental. I have
dropped this unrelated change in v3.

> I guess a right copyright is needed for your code.

Fixed in v3. Since the file is derived from cv1800b-milkv-duo.dts, I
kept the original copyright and added my own.

v3 has been sent:
https://lore.kernel.org/r/[email protected]

Thanks for the review,
Chen-Yu

Inochi Amaoto <[email protected]> =E6=96=BC 2026=E5=B9=B47=E6=9C=882=E6=
=97=A5=E9=80=B1=E5=9B=9B =E4=B8=8B=E5=8D=885:51=E5=AF=AB=E9=81=93=EF=BC=9A
>
> On Thu, Jul 02, 2026 at 11:38:09AM +0800, Inochi Amaoto wrote:
> > On Wed, Jun 10, 2026 at 08:10:10PM +0800, Chen-Yu Yeh wrote:
> > > The Milk-V Duo 256M is a small form factor development board based on
> > > the Sophgo SG2002 SoC.
> > >
> > > This patch adds basic device tree support for the board, including:
> > > - UART console
> > > - SD/MMC controller
> > > - USB host
> > > - Onboard blue status LED (connected to PWR_GPIO[2] / porte 2)
> > >
> >
> > > Tested on actual Milk-V Duo 256M hardware, verified boot to shell and
> > > heartbeat LED functionality.
> > >
> >
> > IIRC the led is not controlled by the small core, so the node should
> > be described in the dts.
> >
> > I see the Sashiko does provide some good question, please check.
> >
> > > Signed-off-by: Chen-Yu Yeh <[email protected]>
> > > ---
> > > Changes since v1:
> > > - Removed the leds node because &porte is not yet supported in cv180x=
.dtsi,
> > >   which would cause a dtc compilation error.
> > > - Retained the &usb node because it is already defined in cv180x.dtsi=
.
> > > - Cleaned up the trailing blank line in the Makefile.
> > >
>
>
> So why not adding the porte?
>
> Regards,
> Inochi
>
> > >  arch/riscv/boot/dts/sophgo/Makefile           |   3 +-
> > >  .../boot/dts/sophgo/sg2002-milkv-duo256m.dts  | 108 ++++++++++++++++=
++
> > >  2 files changed, 110 insertions(+), 1 deletion(-)
> > >  create mode 100644 arch/riscv/boot/dts/sophgo/sg2002-milkv-duo256m.d=
ts
> > >
> > > diff --git a/arch/riscv/boot/dts/sophgo/Makefile b/arch/riscv/boot/dt=
s/sophgo/Makefile
> > > index 6f65526d4193..f9415c30a2c5 100644
> > > --- a/arch/riscv/boot/dts/sophgo/Makefile
> > > +++ b/arch/riscv/boot/dts/sophgo/Makefile
> > > @@ -2,7 +2,8 @@
> > >  dtb-$(CONFIG_ARCH_SOPHGO) +=3D cv1800b-milkv-duo.dtb
> > >  dtb-$(CONFIG_ARCH_SOPHGO) +=3D cv1812h-huashan-pi.dtb
> > >  dtb-$(CONFIG_ARCH_SOPHGO) +=3D sg2002-licheerv-nano-b.dtb
> > > +dtb-$(CONFIG_ARCH_SOPHGO) +=3D sg2002-milkv-duo256m.dtb
> > >  dtb-$(CONFIG_ARCH_SOPHGO) +=3D sg2042-milkv-pioneer.dtb
> > >  dtb-$(CONFIG_ARCH_SOPHGO) +=3D sg2042-evb-v1.dtb
> > >  dtb-$(CONFIG_ARCH_SOPHGO) +=3D sg2042-evb-v2.dtb
> > > -dtb-$(CONFIG_ARCH_SOPHGO) +=3D sg2044-sophgo-srd3-10.dtb
> > > +dtb-$(CONFIG_ARCH_SOPHGO) +=3D sg2044-sophgo-srd3-10.dtb
> > > \ No newline at end of file
> >
> >
> > Why you change this? Please do not touch unrelated things.
> >
> > > diff --git a/arch/riscv/boot/dts/sophgo/sg2002-milkv-duo256m.dts b/ar=
ch/riscv/boot/dts/sophgo/sg2002-milkv-duo256m.dts
> > > new file mode 100644
> > > index 000000000000..4cf441ab3790
> > > --- /dev/null
> > > +++ b/arch/riscv/boot/dts/sophgo/sg2002-milkv-duo256m.dts
> > > @@ -0,0 +1,108 @@
> > > +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> > > +/*
> > > + * Copyright (C) 2023 Jisheng Zhang <[email protected]>
> >
> > I guess a right copyright is needed for your code.
> >
> > > + */
> > > +
> > > +/dts-v1/;
> > > +
> > > +#include "sg2002.dtsi"
> > > +#include <dt-bindings/gpio/gpio.h>
> > > +
> > > +/ {
> > > +   model =3D "Milk-V Duo 256M";
> > > +   compatible =3D "milkv,duo256m", "sophgo,sg2002";
> > > +
> > > +   aliases {
> > > +           serial0 =3D &uart0;
> > > +           serial1 =3D &uart1;
> > > +           serial2 =3D &uart2;
> > > +           serial3 =3D &uart3;
> > > +           serial4 =3D &uart4;
> > > +   };
> > > +
> > > +   chosen {
> > > +           stdout-path =3D "serial0:115200n8";
> > > +   };
> > > +
> > > +   reserved-memory {
> > > +           #address-cells =3D <1>;
> > > +           #size-cells =3D <1>;
> > > +           ranges;
> > > +
> > > +           coprocessor_rtos: region@83f40000 {
> > > +                   reg =3D <0x83f40000 0xc0000>;
> > > +                   no-map;
> > > +           };
> > > +   };
> > > +};
> > > +
> > > +&osc {
> > > +   clock-frequency =3D <25000000>;
> > > +};
> > > +
> > > +&pinctrl {
> > > +   uart0_cfg: uart0-cfg {
> > > +           uart0-pins {
> > > +                   pinmux =3D <PINMUX(PIN_UART0_TX, 0)>,
> > > +                            <PINMUX(PIN_UART0_RX, 0)>;
> > > +                   bias-pull-up;
> > > +                   drive-strength-microamp =3D <10800>;
> > > +                   power-source =3D <3300>;
> > > +           };
> > > +   };
> > > +
> > > +   sdhci0_cfg: sdhci0-cfg {
> > > +           sdhci0-clk-pins {
> > > +                   pinmux =3D <PINMUX(PIN_SD0_CLK, 0)>;
> > > +                   bias-pull-up;
> > > +                   drive-strength-microamp =3D <16100>;
> > > +                   power-source =3D <3300>;
> > > +           };
> > > +
> > > +           sdhci0-cmd-pins {
> > > +                   pinmux =3D <PINMUX(PIN_SD0_CMD, 0)>;
> > > +                   bias-pull-up;
> > > +                   drive-strength-microamp =3D <10800>;
> > > +                   power-source =3D <3300>;
> > > +           };
> > > +
> > > +           sdhci0-data-pins {
> > > +                   pinmux =3D <PINMUX(PIN_SD0_D0, 0)>,
> > > +                            <PINMUX(PIN_SD0_D1, 0)>,
> > > +                            <PINMUX(PIN_SD0_D2, 0)>,
> > > +                            <PINMUX(PIN_SD0_D3, 0)>;
> > > +                   bias-pull-up;
> > > +                   drive-strength-microamp =3D <10800>;
> > > +                   power-source =3D <3300>;
> > > +           };
> > > +
> > > +           sdhci0-cd-pins {
> > > +                   pinmux =3D <PINMUX(PIN_SD0_CD, 0)>;
> > > +                   bias-pull-up;
> > > +                   drive-strength-microamp =3D <10800>;
> > > +                   power-source =3D <3300>;
> > > +           };
> > > +   };
> > > +};
> > > +
> > > +&sdhci0 {
> > > +   pinctrl-0 =3D <&sdhci0_cfg>;
> > > +   pinctrl-names =3D "default";
> > > +   status =3D "okay";
> > > +   bus-width =3D <4>;
> > > +   no-1-8-v;
> > > +   no-mmc;
> > > +   no-sdio;
> > > +   disable-wp;
> > > +};
> > > +
> > > +&uart0 {
> > > +   pinctrl-0 =3D <&uart0_cfg>;
> > > +   pinctrl-names =3D "default";
> > > +   status =3D "okay";
> > > +};
> > > +
> > > +&usb {
> > > +   dr_mode =3D "host";
> > > +   status =3D "okay";
> > > +};
> > > --
> > > 2.43.0
> > >