* [PATCH v2 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
2026-05-11 11:11 [PATCH v2 0/6] spacemit: k1-musepi-pro: add missing devices Andre Heider
@ 2026-05-11 11:11 ` Andre Heider
2026-05-12 11:39 ` Yixun Lan
2026-05-11 11:11 ` [PATCH v2 2/6] riscv: dts: spacemit: k1-musepi-pro: add 24c04 eeprom Andre Heider
` (4 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Andre Heider @ 2026-05-11 11:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Yixun Lan
Cc: devicetree, linux-riscv, spacemit, linux-kernel
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@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 = ð0;
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;
+ };
+
+ 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 = <®_usb_vbus>;
+ };
};
&emmc {
@@ -72,6 +92,130 @@ &pdma {
status = "okay";
};
+&i2c8 {
+ pinctrl-0 = <&i2c8_cfg>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ pmic@41 {
+ compatible = "spacemit,p1";
+ reg = <0x41>;
+ interrupts = <64>;
+ vin1-supply = <®_vcc_4v0>;
+ vin2-supply = <®_vcc_4v0>;
+ vin3-supply = <®_vcc_4v0>;
+ vin4-supply = <®_vcc_4v0>;
+ vin5-supply = <®_vcc_4v0>;
+ vin6-supply = <®_vcc_4v0>;
+ aldoin-supply = <®_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
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH v2 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
2026-05-11 11:11 ` [PATCH v2 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure Andre Heider
@ 2026-05-12 11:39 ` Yixun Lan
2026-05-12 12:20 ` Andre Heider
0 siblings, 1 reply; 12+ messages in thread
From: Yixun Lan @ 2026-05-12 11:39 UTC (permalink / raw)
To: Andre Heider
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Yixun Lan, devicetree,
linux-riscv, spacemit, linux-kernel
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@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 = ð0;
> 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
> +
> + 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 = <®_usb_vbus>;
> + };
> };
>
> &emmc {
> @@ -72,6 +92,130 @@ &pdma {
> status = "okay";
> };
>
> +&i2c8 {
> + pinctrl-0 = <&i2c8_cfg>;
> + pinctrl-names = "default";
> + status = "okay";
> +
> + pmic@41 {
> + compatible = "spacemit,p1";
> + reg = <0x41>;
> + interrupts = <64>;
> + vin1-supply = <®_vcc_4v0>;
> + vin2-supply = <®_vcc_4v0>;
> + vin3-supply = <®_vcc_4v0>;
> + vin4-supply = <®_vcc_4v0>;
> + vin5-supply = <®_vcc_4v0>;
> + vin6-supply = <®_vcc_4v0>;
> + aldoin-supply = <®_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
>
>
--
Yixun Lan (dlan)
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH v2 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
2026-05-12 11:39 ` Yixun Lan
@ 2026-05-12 12:20 ` Andre Heider
0 siblings, 0 replies; 12+ messages in thread
From: Andre Heider @ 2026-05-12 12:20 UTC (permalink / raw)
To: Yixun Lan
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Yixun Lan, devicetree,
linux-riscv, spacemit, linux-kernel
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@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 = ð0;
>> 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 = <®_usb_vbus>;
>> + };
>> };
>>
>> &emmc {
>> @@ -72,6 +92,130 @@ &pdma {
>> status = "okay";
>> };
>>
>> +&i2c8 {
>> + pinctrl-0 = <&i2c8_cfg>;
>> + pinctrl-names = "default";
>> + status = "okay";
>> +
>> + pmic@41 {
>> + compatible = "spacemit,p1";
>> + reg = <0x41>;
>> + interrupts = <64>;
>> + vin1-supply = <®_vcc_4v0>;
>> + vin2-supply = <®_vcc_4v0>;
>> + vin3-supply = <®_vcc_4v0>;
>> + vin4-supply = <®_vcc_4v0>;
>> + vin5-supply = <®_vcc_4v0>;
>> + vin6-supply = <®_vcc_4v0>;
>> + aldoin-supply = <®_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
>>
>>
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 2/6] riscv: dts: spacemit: k1-musepi-pro: add 24c04 eeprom
2026-05-11 11:11 [PATCH v2 0/6] spacemit: k1-musepi-pro: add missing devices Andre Heider
2026-05-11 11:11 ` [PATCH v2 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure Andre Heider
@ 2026-05-11 11:11 ` Andre Heider
2026-05-11 11:11 ` [PATCH v2 3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR Andre Heider
` (3 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Andre Heider @ 2026-05-11 11:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: devicetree, linux-riscv, spacemit, linux-kernel
Enable i2c2 and add the connected 24c04 EEPROM.
It contains an ONIE TLV table:
=> tlv_eeprom
TLV: 0
[ 12.162] TlvInfo Header:
[ 12.162] Id String: TlvInfo
[ 12.165] Version: 1
[ 12.168] Total Length: 58
[ 12.171] TLV Name Code Len Value
[ 12.175] -------------------- ---- --- -----
[ 12.179] Product Name 0x21 16 k1-x_MUSE-Pi-Pro
[ 12.184] Serial Number 0x23 17 BPMIMXXXXXXXXXXXX
[ 12.189] Unknown 0x41 1 0x02
[ 12.194] Base MAC Address 0x24 6 FE:FE:FE:XX:XX:XX
[ 12.199] MAC Addresses 0x2A 2 2
[ 12.203] CRC-32 0xFE 4 0x395ECD34
[ 12.207] Checksum is valid.
(With 0x41 as TLV_CODE_DDR_CSNUM)
Signed-off-by: Andre Heider <a.heider@gmail.com>
---
.../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 35 ++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
index 88c35ad1ef2ae..79415d760f162 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 = ð0;
serial0 = &uart0;
+ i2c2 = &i2c2;
i2c8 = &i2c8;
};
@@ -92,6 +93,38 @@ &pdma {
status = "okay";
};
+&i2c2 {
+ pinctrl-0 = <&i2c2_0_cfg>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ eeprom@50 {
+ compatible = "atmel,24c02";
+ reg = <0x50>;
+ vcc-supply = <&buck3_1v8>; /* EEPROM_VCC1V8 */
+ pagesize = <8>;
+ read-only;
+ size = <256>;
+
+ nvmem-layout {
+ compatible = "onie,tlv-layout";
+
+ product-name {
+ };
+
+ serial-number {
+ };
+
+ mac-address {
+ #nvmem-cell-cells = <1>;
+ };
+
+ num-macs {
+ };
+ };
+ };
+};
+
&i2c8 {
pinctrl-0 = <&i2c8_cfg>;
pinctrl-names = "default";
@@ -126,7 +159,7 @@ buck2 {
regulator-always-on;
};
- buck3 {
+ buck3_1v8: buck3 {
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1800000>;
regulator-ramp-delay = <5000>;
--
2.53.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH v2 3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
2026-05-11 11:11 [PATCH v2 0/6] spacemit: k1-musepi-pro: add missing devices Andre Heider
2026-05-11 11:11 ` [PATCH v2 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure Andre Heider
2026-05-11 11:11 ` [PATCH v2 2/6] riscv: dts: spacemit: k1-musepi-pro: add 24c04 eeprom Andre Heider
@ 2026-05-11 11:11 ` Andre Heider
2026-05-12 11:44 ` Yixun Lan
2026-05-11 11:11 ` [PATCH v2 4/6] riscv: dts: spacemit: k1-musepi-pro: enable USB 3 ports Andre Heider
` (2 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Andre Heider @ 2026-05-11 11:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: devicetree, linux-riscv, spacemit, linux-kernel
Add the QSPI controller node and describe the attached SPI NOR flash
(Winbond W25Q64FWSSAQ).
Add a corresponding vendor flash partition layout.
Signed-off-by: Andre Heider <a.heider@gmail.com>
---
.../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 43 ++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
index 79415d760f162..7ebace0e46edb 100644
--- a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
@@ -166,7 +166,7 @@ buck3_1v8: buck3 {
regulator-always-on;
};
- buck4 {
+ buck4_3v3: buck4 {
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <5000>;
@@ -249,6 +249,47 @@ dldo7 {
};
};
+&qspi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&qspi_cfg>;
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <26500000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
+ vcc-supply = <&buck4_3v3>; /* QSPI_VCC1833 */
+ m25p,fast-read;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ bootinfo@0 {
+ reg = <0x0 0x10000>;
+ };
+ private@10000 {
+ reg = <0x10000 0x10000>;
+ };
+ fsbl@20000 {
+ reg = <0x20000 0x40000>;
+ };
+ env@60000 {
+ reg = <0x60000 0x10000>;
+ };
+ opensbi@70000 {
+ reg = <0x70000 0x30000>;
+ };
+ uboot@a00000 {
+ reg = <0xa0000 0x760000>;
+ };
+ };
+ };
+};
+
&uart0 {
pinctrl-0 = <&uart0_2_cfg>;
pinctrl-names = "default";
--
2.53.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH v2 3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
2026-05-11 11:11 ` [PATCH v2 3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR Andre Heider
@ 2026-05-12 11:44 ` Yixun Lan
0 siblings, 0 replies; 12+ messages in thread
From: Yixun Lan @ 2026-05-12 11:44 UTC (permalink / raw)
To: Andre Heider
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
devicetree, linux-riscv, spacemit, linux-kernel
Hi Andre,
On 13:11 Mon 11 May , Andre Heider wrote:
> Add the QSPI controller node and describe the attached SPI NOR flash
> (Winbond W25Q64FWSSAQ).
>
> Add a corresponding vendor flash partition layout.
>
> Signed-off-by: Andre Heider <a.heider@gmail.com>
> ---
> .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 43 ++++++++++++++++++-
> 1 file changed, 42 insertions(+), 1 deletion(-)
>
> diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> index 79415d760f162..7ebace0e46edb 100644
> --- a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> +++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> @@ -166,7 +166,7 @@ buck3_1v8: buck3 {
> regulator-always-on;
> };
>
> - buck4 {
> + buck4_3v3: buck4 {
I'd prefer you make it right once in the first patch [1/6] which introduced this
regulator.. please fix all similar issues in this series..
> regulator-min-microvolt = <500000>;
> regulator-max-microvolt = <3300000>;
> regulator-ramp-delay = <5000>;
> @@ -249,6 +249,47 @@ dldo7 {
> };
> };
>
> +&qspi {
> + pinctrl-names = "default";
> + pinctrl-0 = <&qspi_cfg>;
> + status = "okay";
> +
> + flash@0 {
> + compatible = "jedec,spi-nor";
> + reg = <0>;
> + spi-max-frequency = <26500000>;
> + spi-rx-bus-width = <4>;
> + spi-tx-bus-width = <4>;
> + vcc-supply = <&buck4_3v3>; /* QSPI_VCC1833 */
> + m25p,fast-read;
> +
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + bootinfo@0 {
> + reg = <0x0 0x10000>;
> + };
> + private@10000 {
> + reg = <0x10000 0x10000>;
> + };
> + fsbl@20000 {
> + reg = <0x20000 0x40000>;
> + };
> + env@60000 {
> + reg = <0x60000 0x10000>;
> + };
> + opensbi@70000 {
> + reg = <0x70000 0x30000>;
> + };
> + uboot@a00000 {
> + reg = <0xa0000 0x760000>;
> + };
> + };
> + };
> +};
> +
> &uart0 {
> pinctrl-0 = <&uart0_2_cfg>;
> pinctrl-names = "default";
> --
> 2.53.0
>
--
Yixun Lan (dlan)
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 4/6] riscv: dts: spacemit: k1-musepi-pro: enable USB 3 ports
2026-05-11 11:11 [PATCH v2 0/6] spacemit: k1-musepi-pro: add missing devices Andre Heider
` (2 preceding siblings ...)
2026-05-11 11:11 ` [PATCH v2 3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR Andre Heider
@ 2026-05-11 11:11 ` Andre Heider
2026-05-11 11:11 ` [PATCH v2 5/6] riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports Andre Heider
2026-05-11 11:11 ` [PATCH v2 6/6] riscv: dts: spacemit: k1-musepi-pro: set default console baud rate Andre Heider
5 siblings, 0 replies; 12+ messages in thread
From: Andre Heider @ 2026-05-11 11:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Yixun Lan
Cc: devicetree, linux-riscv, spacemit, linux-kernel
Enable the DWC3 USB 3.0 controller, its associated combo_phy (USB 3 PHY)
and usbphy2 (USB 2 PHY) on the MusePi Pro board.
The board uses a VLI VL817 hub, providing four ports.
Signed-off-by: Andre Heider <a.heider@gmail.com>
---
.../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 54 +++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
index 7ebace0e46edb..9c90c2817ecb7 100644
--- a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
@@ -54,6 +54,28 @@ reg_vcc_4v0: regulator-vcc-40v {
regulator-always-on;
vin-supply = <®_usb_vbus>;
};
+
+ reg_5v_vbus: regulator-5v-vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "5V_VBUS";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ vin-supply = <®_usb_vbus>;
+ gpio = <&gpio K1_GPIO(79) GPIO_ACTIVE_HIGH>; /* USB3_PWREN */
+ enable-active-high;
+ };
+
+ reg_vcc5v_hub: regulator-vcc5v-hub {
+ compatible = "regulator-fixed";
+ regulator-name = "VCC5V0_HUB";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ vin-supply = <®_usb_vbus>;
+ gpio = <&gpio K1_GPIO(127) GPIO_ACTIVE_HIGH>; /* HUB_PWREN */
+ enable-active-high;
+ };
};
&emmc {
@@ -66,6 +88,10 @@ &emmc {
status = "okay";
};
+&combo_phy {
+ status = "okay";
+};
+
ð0 {
phy-handle = <&rgmii0>;
phy-mode = "rgmii-id";
@@ -295,3 +321,31 @@ &uart0 {
pinctrl-names = "default";
status = "okay";
};
+
+&usbphy2 {
+ status = "okay";
+};
+
+&usb_dwc3 {
+ dr_mode = "host";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ vbus-supply = <®_5v_vbus>;
+ status = "okay";
+
+ hub_2_0: hub@1 {
+ compatible = "usb2109,2817";
+ reg = <0x1>;
+ vdd-supply = <®_vcc5v_hub>;
+ peer-hub = <&hub_3_0>;
+ reset-gpios = <&gpio K1_GPIO(123) GPIO_ACTIVE_LOW>; /* HUB_RST */
+ };
+
+ hub_3_0: hub@2 {
+ compatible = "usb2109,817";
+ reg = <0x2>;
+ vdd-supply = <®_vcc5v_hub>;
+ peer-hub = <&hub_2_0>;
+ reset-gpios = <&gpio K1_GPIO(123) GPIO_ACTIVE_LOW>; /* HUB_RST */
+ };
+};
--
2.53.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH v2 5/6] riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports
2026-05-11 11:11 [PATCH v2 0/6] spacemit: k1-musepi-pro: add missing devices Andre Heider
` (3 preceding siblings ...)
2026-05-11 11:11 ` [PATCH v2 4/6] riscv: dts: spacemit: k1-musepi-pro: enable USB 3 ports Andre Heider
@ 2026-05-11 11:11 ` Andre Heider
2026-05-12 11:34 ` Yixun Lan
2026-05-11 11:11 ` [PATCH v2 6/6] riscv: dts: spacemit: k1-musepi-pro: set default console baud rate Andre Heider
5 siblings, 1 reply; 12+ messages in thread
From: Andre Heider @ 2026-05-11 11:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: devicetree, linux-riscv, spacemit, linux-kernel
Enable the two PCIe controller along with and their associated PHYs. They
are routed to the M.2 M-key connector and to the PCIe slot.
Signed-off-by: Andre Heider <a.heider@gmail.com>
---
.../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 50 +++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
index 9c90c2817ecb7..2d3e30f0bd806 100644
--- a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
@@ -36,6 +36,24 @@ led1 {
};
};
+ pcie_vcc_3v3: regulator-pcie-vcc3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "PCIE_VCC3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ vin-supply = <®_usb_vbus>;
+ };
+
+ mpcie_vcc_3v3: regulator-mpcie-vcc3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "MPCIE_VCC3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ vin-supply = <®_usb_vbus>;
+ };
+
reg_usb_vbus: regulator-usb-vbus {
compatible = "regulator-fixed";
regulator-name = "USBVBUS";
@@ -275,6 +293,38 @@ dldo7 {
};
};
+&pcie1_phy {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie1_3_cfg>;
+ status = "okay";
+};
+
+&pcie1_port {
+ phys = <&pcie1_phy>;
+ vpcie3v3-supply = <&pcie_vcc_3v3>;
+};
+
+&pcie1 {
+ vpcie3v3-supply = <&pcie_vcc_3v3>;
+ status = "okay";
+};
+
+&pcie2_phy {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie2_4_cfg>;
+ status = "okay";
+};
+
+&pcie2_port {
+ phys = <&pcie2_phy>;
+ vpcie3v3-supply = <&mpcie_vcc_3v3>;
+};
+
+&pcie2 {
+ vpcie3v3-supply = <&mpcie_vcc_3v3>;
+ status = "okay";
+};
+
&qspi {
pinctrl-names = "default";
pinctrl-0 = <&qspi_cfg>;
--
2.53.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH v2 5/6] riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports
2026-05-11 11:11 ` [PATCH v2 5/6] riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports Andre Heider
@ 2026-05-12 11:34 ` Yixun Lan
0 siblings, 0 replies; 12+ messages in thread
From: Yixun Lan @ 2026-05-12 11:34 UTC (permalink / raw)
To: Andre Heider
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
devicetree, linux-riscv, spacemit, linux-kernel
Hi Andre,
On 13:11 Mon 11 May , Andre Heider wrote:
> Enable the two PCIe controller along with and their associated PHYs. They
> are routed to the M.2 M-key connector and to the PCIe slot.
>
> Signed-off-by: Andre Heider <a.heider@gmail.com>
> ---
> .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 50 +++++++++++++++++++
> 1 file changed, 50 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> index 9c90c2817ecb7..2d3e30f0bd806 100644
> --- a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> +++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> @@ -36,6 +36,24 @@ led1 {
> };
> };
>
> + pcie_vcc_3v3: regulator-pcie-vcc3v3 {
> + compatible = "regulator-fixed";
> + regulator-name = "PCIE_VCC3V3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + vin-supply = <®_usb_vbus>;
> + };
> +
> + mpcie_vcc_3v3: regulator-mpcie-vcc3v3 {
> + compatible = "regulator-fixed";
> + regulator-name = "MPCIE_VCC3V3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + vin-supply = <®_usb_vbus>;
> + };
> +
> reg_usb_vbus: regulator-usb-vbus {
> compatible = "regulator-fixed";
> regulator-name = "USBVBUS";
> @@ -275,6 +293,38 @@ dldo7 {
> };
> };
>
> +&pcie1_phy {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pcie1_3_cfg>;
> + status = "okay";
> +};
> +
> +&pcie1_port {
> + phys = <&pcie1_phy>;
> + vpcie3v3-supply = <&pcie_vcc_3v3>;
> +};
> +
> +&pcie1 {
..
> + vpcie3v3-supply = <&pcie_vcc_3v3>;
drop vpcie3v3-supply which not needed
> + status = "okay";
> +};
> +
> +&pcie2_phy {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pcie2_4_cfg>;
> + status = "okay";
> +};
> +
> +&pcie2_port {
> + phys = <&pcie2_phy>;
> + vpcie3v3-supply = <&mpcie_vcc_3v3>;
> +};
> +
> +&pcie2 {
> + vpcie3v3-supply = <&mpcie_vcc_3v3>;
same here
> + status = "okay";
> +};
> +
> &qspi {
> pinctrl-names = "default";
> pinctrl-0 = <&qspi_cfg>;
> --
> 2.53.0
>
--
Yixun Lan (dlan)
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 6/6] riscv: dts: spacemit: k1-musepi-pro: set default console baud rate
2026-05-11 11:11 [PATCH v2 0/6] spacemit: k1-musepi-pro: add missing devices Andre Heider
` (4 preceding siblings ...)
2026-05-11 11:11 ` [PATCH v2 5/6] riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports Andre Heider
@ 2026-05-11 11:11 ` Andre Heider
2026-05-12 11:35 ` Yixun Lan
5 siblings, 1 reply; 12+ messages in thread
From: Andre Heider @ 2026-05-11 11:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Yixun Lan
Cc: devicetree, linux-riscv, spacemit, linux-kernel
Allow serial output with the same uboot/opensbi settings so the
console works without providing a cmdline.
Signed-off-by: Andre Heider <a.heider@gmail.com>
---
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
index 2d3e30f0bd806..c8bf776511c94 100644
--- a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
@@ -22,7 +22,7 @@ aliases {
};
chosen {
- stdout-path = "serial0";
+ stdout-path = "serial0:115200n8";
};
leds {
--
2.53.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH v2 6/6] riscv: dts: spacemit: k1-musepi-pro: set default console baud rate
2026-05-11 11:11 ` [PATCH v2 6/6] riscv: dts: spacemit: k1-musepi-pro: set default console baud rate Andre Heider
@ 2026-05-12 11:35 ` Yixun Lan
0 siblings, 0 replies; 12+ messages in thread
From: Yixun Lan @ 2026-05-12 11:35 UTC (permalink / raw)
To: Andre Heider
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Yixun Lan, devicetree,
linux-riscv, spacemit, linux-kernel
On 13:11 Mon 11 May , Andre Heider wrote:
> Allow serial output with the same uboot/opensbi settings so the
> console works without providing a cmdline.
>
> Signed-off-by: Andre Heider <a.heider@gmail.com>
Reviewed-by: Yixun Lan <dlan@kernel.org>
> ---
> arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> index 2d3e30f0bd806..c8bf776511c94 100644
> --- a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> +++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> @@ -22,7 +22,7 @@ aliases {
> };
>
> chosen {
> - stdout-path = "serial0";
> + stdout-path = "serial0:115200n8";
> };
>
> leds {
> --
> 2.53.0
>
--
Yixun Lan (dlan)
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 12+ messages in thread