[PATCH v3 2/3] riscv: dts: sophgo: cv180x: Add PWR_GPIO controller

葉宸佑 chenyou910331 at gmail.com
Sun Jul 12 18:56:21 PDT 2026


> You should follow the device address order. not by the device name.

Right, I placed it next to the other GPIO nodes by type. Will move it
to the correct position by unit address in v4.

Inochi Amaoto <inochiama at gmail.com> 於 2026年7月13日週一 上午8:57寫道:
>
> On Fri, Jul 10, 2026 at 03:59:16PM +0800, Chen-Yu Yeh wrote:
> > The CV180x/CV181x family has an additional DesignWare APB GPIO
> > controller (PWR_GPIO) located in the always-on power domain at
> > 0x5021000. Add the node so that boards can reference GPIOs in this
> > bank, such as status LEDs.
> >
> > Signed-off-by: Chen-Yu Yeh <chenyou910331 at gmail.com>
> > ---
> > The base address and interrupt number match the vendor SDK device
> > tree (cv181x_base_riscv.dtsi: gpio at 05021000, PLIC interrupt 70,
> > i.e. SOC_PERIPHERAL_IRQ(54)). Verified on Milk-V Duo 256M hardware
> > via the onboard status LED on porte 2.
> >
> >  arch/riscv/boot/dts/sophgo/cv180x.dtsi | 18 ++++++++++++++++++
> >  1 file changed, 18 insertions(+)
> >
> > diff --git a/arch/riscv/boot/dts/sophgo/cv180x.dtsi b/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> > index 06b0ce5a2db7..25ad2bd265d7 100644
> > --- a/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> > +++ b/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> > @@ -160,6 +160,24 @@ portd: gpio-controller at 0 {
> >                       };
> >               };
> >
> > +             gpio4: gpio at 5021000 {
> > +                     compatible = "snps,dw-apb-gpio";
> > +                     reg = <0x5021000 0x1000>;
> > +                     #address-cells = <1>;
> > +                     #size-cells = <0>;
> > +
> > +                     porte: gpio-controller at 0 {
> > +                             compatible = "snps,dw-apb-gpio-port";
> > +                             gpio-controller;
> > +                             #gpio-cells = <2>;
> > +                             ngpios = <32>;
> > +                             reg = <0>;
> > +                             interrupt-controller;
> > +                             #interrupt-cells = <2>;
> > +                             interrupts = <SOC_PERIPHERAL_IRQ(54) IRQ_TYPE_LEVEL_HIGH>;
> > +                     };
> > +             };
> > +
>
> You should follow the device address order. not by the device name.
>
> >               saradc: adc at 30f0000 {
> >                       compatible = "sophgo,cv1800b-saradc";
> >                       reg = <0x030f0000 0x1000>;
> > --
> > 2.43.0
> >



More information about the linux-riscv mailing list