public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_aux_vcc5v>;
+		vin2-supply = <&reg_aux_vcc5v>;
+		vin3-supply = <&reg_aux_vcc5v>;
+		vin4-supply = <&reg_aux_vcc5v>;
+		vin5-supply = <&reg_aux_vcc5v>;
+		vin6-supply = <&reg_aux_vcc5v>;
+		aldoin-supply = <&reg_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 = <&reg_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 = <&reg_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