* [PATCH] dts: riscv: spacemit: k3: add P1 PMIC regulator tree
@ 2026-03-25 9:56 Yixun Lan
2026-03-25 13:54 ` Krzysztof Kozlowski
0 siblings, 1 reply; 7+ messages in thread
From: Yixun Lan @ 2026-03-25 9:56 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: devicetree, linux-riscv, spacemit, linux-kernel, Yixun Lan
Add the P1 PMIC's regulator topology tree for pico-itx board.
Signed-off-by: Yixun Lan <dlan@kernel.org>
---
This series try to add a regulator power tree from P1 PMIC,
the PMIC is controlled via an I2C interface.
To test this patch, it will need the I2C patch series [1]
Link: https://lore.kernel.org/all/20260325-02-k3-i2c-v1-0-78f29c83d9ac@kernel.org [1]
---
arch/riscv/boot/dts/spacemit/k3-pico-itx.dts | 185 +++++++++++++++++++++++++++
arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi | 11 ++
2 files changed, 196 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
index b098dbd0e7a1..5b59c569dbde 100644
--- a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
+++ b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
@@ -23,6 +23,191 @@ memory@100000000 {
device_type = "memory";
reg = <0x1 0x00000000 0x4 0x00000000>;
};
+
+ reg_dc_in: regulator-dc-in-12v {
+ compatible = "regulator-fixed";
+ regulator-name = "dc_in_12v";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ reg_aux_vcc3v3: regulator-aux-vcc3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "AUX_VCC3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ vin-supply = <®_dc_in>;
+ };
+
+ reg_aux_vcc5v: regulator-aux-vcc5v {
+ compatible = "regulator-fixed";
+ regulator-name = "AUX_VCC5V";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ vin-supply = <®_dc_in>;
+ };
+
+ reg_main_vcc1v8: regulator-main-vcc1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "MAIN_VCC1V8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ vin-supply = <®_dc_in>;
+ };
+
+ reg_main_vcc3v3: regulator-main-vcc3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "MAIN_VCC3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ vin-supply = <®_dc_in>;
+ };
+
+};
+
+&i2c8 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c8_cfg>;
+ status = "okay";
+
+ p1@41 {
+ compatible = "spacemit,p1";
+ reg = <0x41>;
+ interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
+ vin1-supply = <®_aux_vcc5v>;
+ vin2-supply = <®_aux_vcc5v>;
+ vin3-supply = <®_aux_vcc5v>;
+ vin4-supply = <®_aux_vcc5v>;
+ vin5-supply = <®_aux_vcc5v>;
+ vin6-supply = <®_aux_vcc5v>;
+ aldoin-supply = <®_aux_vcc5v>;
+ dldoin1-supply = <&buck4>;
+ dldoin2-supply = <&buck4>;
+
+ regulators {
+ buck1: buck1 {
+ regulator-min-microvolt = <1050000>;
+ regulator-max-microvolt = <1050000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ buck2: buck2 {
+ regulator-min-microvolt = <1050000>;
+ regulator-max-microvolt = <1050000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ buck3: buck3 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <800000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ buck4: buck4 {
+ regulator-min-microvolt = <2100000>;
+ regulator-max-microvolt = <2100000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ buck5: buck5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ buck6: buck6 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <500000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
+ aldo1: aldo1 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ aldo2: aldo2 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ aldo3: aldo3 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ aldo4: aldo4 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ dldo1: dldo1 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ dldo2: dldo2 {
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ dldo3: dldo3 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <800000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ dldo4: dldo4 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-boot-on;
+ };
+
+ dldo5: dldo5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ dldo6: dldo6 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ dldo7: dldo7 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+ };
+ };
};
&uart0 {
diff --git a/arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi b/arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi
index efb0f1572188..dd99909e9044 100644
--- a/arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi
+++ b/arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi
@@ -11,6 +11,17 @@
#define K3_GPIO(x) (x / 32) (x % 32)
&pinctrl {
+ /omit-if-no-ref/
+ i2c8_cfg: i2c8-cfg {
+ i2c8-pins {
+ pinmux = <K3_PADCONF(128, 0)>, /* i2c8 scl */
+ <K3_PADCONF(129, 0)>; /* i2c8 sda */
+
+ bias-pull-up = <0>;
+ drive-strength = <25>;
+ };
+ };
+
/omit-if-no-ref/
uart0_0_cfg: uart0-0-cfg {
uart0-0-pins {
---
base-commit: 43a2ce590c0364ddb28377218b3268f9cd722bde
change-id: 20260311-02-k3-i2c-6ad52566a9a3
prerequisite-change-id: 20260311-02-k3-i2c-6ad52566a9a3:v1
prerequisite-patch-id: 9a6b8f6968935c8ed5c9acd8ecb778be2d1a3faa
prerequisite-patch-id: d43e077460cb3ea4e391fb7c528b6ffa80f35574
Best regards,
--
Yixun Lan <dlan@kernel.org>
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH] dts: riscv: spacemit: k3: add P1 PMIC regulator tree
2026-03-25 9:56 [PATCH] dts: riscv: spacemit: k3: add P1 PMIC regulator tree Yixun Lan
@ 2026-03-25 13:54 ` Krzysztof Kozlowski
2026-03-25 23:48 ` Yixun Lan
0 siblings, 1 reply; 7+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-25 13:54 UTC (permalink / raw)
To: Yixun Lan, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: devicetree, linux-riscv, spacemit, linux-kernel
On 25/03/2026 10:56, Yixun Lan wrote:
> Add the P1 PMIC's regulator topology tree for pico-itx board.
>
> Signed-off-by: Yixun Lan <dlan@kernel.org>
> ---
> This series try to add a regulator power tree from P1 PMIC,
> the PMIC is controlled via an I2C interface.
>
> To test this patch, it will need the I2C patch series [1]
>
> Link: https://lore.kernel.org/all/20260325-02-k3-i2c-v1-0-78f29c83d9ac@kernel.org [1]
> ---
> arch/riscv/boot/dts/spacemit/k3-pico-itx.dts | 185 +++++++++++++++++++++++++++
> arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi | 11 ++
> 2 files changed, 196 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
> index b098dbd0e7a1..5b59c569dbde 100644
> --- a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
> +++ b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
> @@ -23,6 +23,191 @@ memory@100000000 {
> device_type = "memory";
> reg = <0x1 0x00000000 0x4 0x00000000>;
> };
> +
> + reg_dc_in: regulator-dc-in-12v {
> + compatible = "regulator-fixed";
> + regulator-name = "dc_in_12v";
> + regulator-min-microvolt = <12000000>;
> + regulator-max-microvolt = <12000000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
This is a pointless supply. It's non-controllable and serves no devices,
so it only bloats the DTB and slows down boot process without any benefits.
> +
> + reg_aux_vcc3v3: regulator-aux-vcc3v3 {
This is even more pointless because there is no user. Dead code.
> + compatible = "regulator-fixed";
> + regulator-name = "AUX_VCC3V3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + vin-supply = <®_dc_in>;
> + };
>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] dts: riscv: spacemit: k3: add P1 PMIC regulator tree
2026-03-25 13:54 ` Krzysztof Kozlowski
@ 2026-03-25 23:48 ` Yixun Lan
2026-03-26 7:02 ` Krzysztof Kozlowski
0 siblings, 1 reply; 7+ messages in thread
From: Yixun Lan @ 2026-03-25 23:48 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, devicetree,
linux-riscv, spacemit, linux-kernel
Hi Krzysztof,
On 14:54 Wed 25 Mar , Krzysztof Kozlowski wrote:
> On 25/03/2026 10:56, Yixun Lan wrote:
> > Add the P1 PMIC's regulator topology tree for pico-itx board.
> >
> > Signed-off-by: Yixun Lan <dlan@kernel.org>
> > ---
> > This series try to add a regulator power tree from P1 PMIC,
> > the PMIC is controlled via an I2C interface.
> >
> > To test this patch, it will need the I2C patch series [1]
> >
> > Link: https://lore.kernel.org/all/20260325-02-k3-i2c-v1-0-78f29c83d9ac@kernel.org [1]
> > ---
> > arch/riscv/boot/dts/spacemit/k3-pico-itx.dts | 185 +++++++++++++++++++++++++++
> > arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi | 11 ++
> > 2 files changed, 196 insertions(+)
> >
> > diff --git a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
> > index b098dbd0e7a1..5b59c569dbde 100644
> > --- a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
> > +++ b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
> > @@ -23,6 +23,191 @@ memory@100000000 {
> > device_type = "memory";
> > reg = <0x1 0x00000000 0x4 0x00000000>;
> > };
> > +
> > + reg_dc_in: regulator-dc-in-12v {
> > + compatible = "regulator-fixed";
> > + regulator-name = "dc_in_12v";
> > + regulator-min-microvolt = <12000000>;
> > + regulator-max-microvolt = <12000000>;
> > + regulator-boot-on;
> > + regulator-always-on;
> > + };
>
> This is a pointless supply. It's non-controllable and serves no devices,
Yes.. I thought to describe a more complete regulator tree, it just
shows more information - e.g. from $debugfs/regulator_summary
> so it only bloats the DTB and slows down boot process without any benefits.
Ok, I will drop it then
>
>
>
> > +
> > + reg_aux_vcc3v3: regulator-aux-vcc3v3 {
>
> This is even more pointless because there is no user. Dead code.
>
reg_aux_vcc3v3 is used by various devices, but I can drop it too,
leaves till there is device really needed..
> > + compatible = "regulator-fixed";
> > + regulator-name = "AUX_VCC3V3";
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-always-on;
> > + vin-supply = <®_dc_in>;
> > + };
> >
>
>
> Best regards,
> Krzysztof
--
Yixun Lan (dlan)
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] dts: riscv: spacemit: k3: add P1 PMIC regulator tree
2026-03-25 23:48 ` Yixun Lan
@ 2026-03-26 7:02 ` Krzysztof Kozlowski
2026-03-26 7:14 ` Yixun Lan
0 siblings, 1 reply; 7+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-26 7:02 UTC (permalink / raw)
To: Yixun Lan
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, devicetree,
linux-riscv, spacemit, linux-kernel
On 26/03/2026 00:48, Yixun Lan wrote:
>>
>>
>>> +
>>> + reg_aux_vcc3v3: regulator-aux-vcc3v3 {
>>
>> This is even more pointless because there is no user. Dead code.
>>
> reg_aux_vcc3v3 is used by various devices, but I can drop it too,
Which ones?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] dts: riscv: spacemit: k3: add P1 PMIC regulator tree
2026-03-26 7:02 ` Krzysztof Kozlowski
@ 2026-03-26 7:14 ` Yixun Lan
2026-03-26 7:15 ` Krzysztof Kozlowski
0 siblings, 1 reply; 7+ messages in thread
From: Yixun Lan @ 2026-03-26 7:14 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, devicetree,
linux-riscv, spacemit, linux-kernel
Hi Krzysztof,
On 08:02 Thu 26 Mar , Krzysztof Kozlowski wrote:
> On 26/03/2026 00:48, Yixun Lan wrote:
> >>
> >>
> >>> +
> >>> + reg_aux_vcc3v3: regulator-aux-vcc3v3 {
> >>
> >> This is even more pointless because there is no user. Dead code.
> >>
> > reg_aux_vcc3v3 is used by various devices, but I can drop it too,
>
> Which ones?
To be precise, I should say reg_aux_vcc3v3 will be used by various
devices in future, but not in current device tree of mainline, e.g,
USB2.0, PCIe, 10G Ethernet, Audio..
--
Yixun Lan (dlan)
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] dts: riscv: spacemit: k3: add P1 PMIC regulator tree
2026-03-26 7:14 ` Yixun Lan
@ 2026-03-26 7:15 ` Krzysztof Kozlowski
2026-03-26 7:27 ` Yixun Lan
0 siblings, 1 reply; 7+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-26 7:15 UTC (permalink / raw)
To: Yixun Lan
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, devicetree,
linux-riscv, spacemit, linux-kernel
On 26/03/2026 08:14, Yixun Lan wrote:
> Hi Krzysztof,
>
> On 08:02 Thu 26 Mar , Krzysztof Kozlowski wrote:
>> On 26/03/2026 00:48, Yixun Lan wrote:
>>>>
>>>>
>>>>> +
>>>>> + reg_aux_vcc3v3: regulator-aux-vcc3v3 {
>>>>
>>>> This is even more pointless because there is no user. Dead code.
>>>>
>>> reg_aux_vcc3v3 is used by various devices, but I can drop it too,
>>
>> Which ones?
> To be precise, I should say reg_aux_vcc3v3 will be used by various
> devices in future, but not in current device tree of mainline, e.g,
> USB2.0, PCIe, 10G Ethernet, Audio..
So it is not used by various devices. I just wrote - THERE IS NO USER.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] dts: riscv: spacemit: k3: add P1 PMIC regulator tree
2026-03-26 7:15 ` Krzysztof Kozlowski
@ 2026-03-26 7:27 ` Yixun Lan
0 siblings, 0 replies; 7+ messages in thread
From: Yixun Lan @ 2026-03-26 7:27 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, devicetree,
linux-riscv, spacemit, linux-kernel
Hi Krzysztof,
On 08:15 Thu 26 Mar , Krzysztof Kozlowski wrote:
> On 26/03/2026 08:14, Yixun Lan wrote:
> > Hi Krzysztof,
> >
> > On 08:02 Thu 26 Mar , Krzysztof Kozlowski wrote:
> >> On 26/03/2026 00:48, Yixun Lan wrote:
> >>>>
> >>>>
> >>>>> +
> >>>>> + reg_aux_vcc3v3: regulator-aux-vcc3v3 {
> >>>>
> >>>> This is even more pointless because there is no user. Dead code.
> >>>>
> >>> reg_aux_vcc3v3 is used by various devices, but I can drop it too,
> >>
> >> Which ones?
> > To be precise, I should say reg_aux_vcc3v3 will be used by various
> > devices in future, but not in current device tree of mainline, e.g,
> > USB2.0, PCIe, 10G Ethernet, Audio..
>
> So it is not used by various devices. I just wrote - THERE IS NO USER.
Ok, I got your point, thanks for the review
--
Yixun Lan (dlan)
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-03-26 7:28 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-25 9:56 [PATCH] dts: riscv: spacemit: k3: add P1 PMIC regulator tree Yixun Lan
2026-03-25 13:54 ` Krzysztof Kozlowski
2026-03-25 23:48 ` Yixun Lan
2026-03-26 7:02 ` Krzysztof Kozlowski
2026-03-26 7:14 ` Yixun Lan
2026-03-26 7:15 ` Krzysztof Kozlowski
2026-03-26 7:27 ` Yixun Lan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox