[PATCH v2 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure

Andre Heider a.heider at gmail.com
Tue May 12 05:20:49 PDT 2026


On 12.05.26 1:39 PM, Yixun Lan wrote:
> Hi Andre,
> 
> On 13:11 Mon 11 May     , Andre Heider wrote:
>> Enable i2c8 and add the connected SpacemiT P1 PMIC with its related regulators
>> for the board's power infrastructure and voltage regulation support.
>>
>> Signed-off-by: Andre Heider <a.heider at gmail.com>
>> ---
>>   .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 144 ++++++++++++++++++
>>   1 file changed, 144 insertions(+)
>>
>> diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
>> index 29e333b670cf0..88c35ad1ef2ae 100644
>> --- a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
>> +++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
>> @@ -17,6 +17,7 @@ / {
>>   	aliases {
>>   		ethernet0 = &eth0;
>>   		serial0 = &uart0;
>> +		i2c8 = &i2c8;
>>   	};
>>   
>>   	chosen {
>> @@ -33,6 +34,25 @@ led1 {
>>   			default-state = "on";
>>   		};
>>   	};
>> +
> ..
>> +	reg_usb_vbus: regulator-usb-vbus {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "USBVBUS";
>> +		regulator-min-microvolt = <12000000>;
>> +		regulator-max-microvolt = <12000000>;
>> +		regulator-boot-on;
>> +		regulator-always-on;
>> +	};
> I think you can further drop above regulator, which merely serve as vin-supply
> and not used by devices, plus it's a non-controllable fixed regulator

It is, but as mentioned on the cover letter I left this one as it's consistent with the other k1 boards.
I don't care either way, so I'll just drop it.

Thanks,
Andre

> 
>> +
>> +	reg_vcc_4v0: regulator-vcc-40v {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "VCC4V0";
>> +		regulator-min-microvolt = <4000000>;
>> +		regulator-max-microvolt = <4000000>;
>> +		regulator-boot-on;
>> +		regulator-always-on;
>> +		vin-supply = <&reg_usb_vbus>;
>> +	};
>>   };
>>   
>>   &emmc {
>> @@ -72,6 +92,130 @@ &pdma {
>>   	status = "okay";
>>   };
>>   
>> +&i2c8 {
>> +	pinctrl-0 = <&i2c8_cfg>;
>> +	pinctrl-names = "default";
>> +	status = "okay";
>> +
>> +	pmic at 41 {
>> +		compatible = "spacemit,p1";
>> +		reg = <0x41>;
>> +		interrupts = <64>;
>> +		vin1-supply = <&reg_vcc_4v0>;
>> +		vin2-supply = <&reg_vcc_4v0>;
>> +		vin3-supply = <&reg_vcc_4v0>;
>> +		vin4-supply = <&reg_vcc_4v0>;
>> +		vin5-supply = <&reg_vcc_4v0>;
>> +		vin6-supply = <&reg_vcc_4v0>;
>> +		aldoin-supply = <&reg_vcc_4v0>;
>> +		dldoin1-supply = <&buck5>;
>> +		dldoin2-supply = <&buck5>;
>> +
>> +		regulators {
>> +			buck1 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3450000>;
>> +				regulator-ramp-delay = <5000>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			buck2 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3450000>;
>> +				regulator-ramp-delay = <5000>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			buck3 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <1800000>;
>> +				regulator-ramp-delay = <5000>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			buck4 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3300000>;
>> +				regulator-ramp-delay = <5000>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			buck5: buck5 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3450000>;
>> +				regulator-ramp-delay = <5000>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			buck6 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3450000>;
>> +				regulator-ramp-delay = <5000>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			aldo1 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3400000>;
>> +				regulator-boot-on;
>> +			};
>> +
>> +			aldo2 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3400000>;
>> +			};
>> +
>> +			aldo3 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3400000>;
>> +			};
>> +
>> +			aldo4 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3400000>;
>> +			};
>> +
>> +			dldo1 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3400000>;
>> +				regulator-boot-on;
>> +			};
>> +
>> +			dldo2 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3400000>;
>> +			};
>> +
>> +			dldo3 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3400000>;
>> +			};
>> +
>> +			dldo4 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3400000>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			dldo5 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3400000>;
>> +			};
>> +
>> +			dldo6 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3400000>;
>> +				regulator-always-on;
>> +			};
>> +
>> +			dldo7 {
>> +				regulator-min-microvolt = <500000>;
>> +				regulator-max-microvolt = <3400000>;
>> +			};
>> +		};
>> +	};
>> +};
>> +
>>   &uart0 {
>>   	pinctrl-0 = <&uart0_2_cfg>;
>>   	pinctrl-names = "default";
>> -- 
>> 2.53.0
>>
>>
> 




More information about the linux-riscv mailing list