spacemit: k1-musepi-pro: add missing devices
Subsystems (3)
v2 cover spacemit: k1-musepi-pro: add missing devices
Add the missing devices with their required regulators. The regulators are named after their label in the vendor schematics[0].
v2:
- drop reg_vcc_5v0_sys as per "non-controllable" review comments on similar patches for other boards (kept the root reg_usb_vbus for though)
- add reg_vcc_4v0 instead as p1 vin?-supply, misread the schematics
- drop mpcie_vcc_3v3 and use pcie_vcc_3v3 for pcie2* too ("non-controllable" again)
- all of the above makes it consistent with other k1 boards
v1: https://lore.kernel.org/spacemit/[email protected]/T/#t
root@OpenWrt:~# cat /sys/kernel/debug/regulator/regulator_summary
regulator use open bypass opmode voltage current min max
---------------------------------------------------------------------------------------
regulator-dummy 1 0 0 unknown 0mV 0mA 0mV 0mV
USBVBUS 5 4 0 unknown 12000mV 0mA 12000mV 12000mV
PCIE_VCC3V3 5 4 0 unknown 3300mV 0mA 3300mV 3300mV
ca400000.pcie:pcie@0-vpcie3v3 1 0mA 0mV 0mV
ca800000.pcie:pcie@0-vpcie3v3 1 0mA 0mV 0mV
ca400000.pcie-vpcie3v3 1 0mA 0mV 0mV
ca800000.pcie-vpcie3v3 1 0mA 0mV 0mV
VCC4V0 8 10 0 unknown 4000mV 0mA 4000mV 4000mV
buck1 1 0 0 unknown 1050mV 0mA 500mV 3450mV
buck2 1 0 0 unknown 900mV 0mA 500mV 3450mV
buck3 1 1 0 unknown 1800mV 0mA 500mV 1800mV
2-0050-vcc 0 0mA 0mV 0mV
buck4 2 2 0 unknown 3300mV 0mA 500mV 3300mV
spi0.0-vcc 1 0mA 0mV 0mV
d4280000.mmc-vmmc 0 0mA 3300mV 3300mV
buck5 3 7 0 unknown 2100mV 0mA 500mV 3450mV
dldo1 0 0 0 unknown 1200mV 0mA 500mV 3400mV
dldo2 0 0 0 unknown 500mV 0mA 500mV 3400mV
dldo3 0 0 0 unknown 500mV 0mA 500mV 3400mV
dldo4 1 0 0 unknown 1800mV 0mA 500mV 3400mV
dldo5 0 0 0 unknown 500mV 0mA 500mV 3400mV
dldo6 1 0 0 unknown 1800mV 0mA 500mV 3400mV
dldo7 0 0 0 unknown 500mV 0mA 500mV 3400mV
buck6 1 0 0 unknown 1100mV 0mA 500mV 3450mV
aldo1 1 1 0 unknown 3300mV 0mA 500mV 3400mV
d4280000.mmc-vqmmc 1 0mA 0mV 0mV
aldo2 0 0 0 unknown 500mV 0mA 500mV 3400mV
aldo3 0 0 0 unknown 500mV 0mA 500mV 3400mV
aldo4 0 0 0 unknown 500mV 0mA 500mV 3400mV
5V_VBUS 2 1 0 unknown 5000mV 0mA 5000mV 5000mV
c0a00000.usb-vbus 1 0mA 0mV 0mV
VCC5V0_HUB 2 1 0 unknown 5000mV 0mA 5000mV 5000mV
c0a00000.usb:hub@1-vdd 1 0mA 0mV 0mV[0] https://github.com/spacemit-com/docs-product/blob/main/en/k1_muse_pi_pro/pi_pro_hw.md
Andre Heider (6):
riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
riscv: dts: spacemit: k1-musepi-pro: add 24c04 eeprom
riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
riscv: dts: spacemit: k1-musepi-pro: enable USB 3 ports
riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports
riscv: dts: spacemit: k1-musepi-pro: set default console baud rate
.../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 324 +++++++++++++++++- 1 file changed, 323 insertions(+), 1 deletion(-)
Signature · 1 line
2.53.0
PATCH v2 1/6 riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
Enable i2c8 and add the connected SpacemiT P1 PMIC with its related regulators for the board's power infrastructure and voltage regulation support.
--- .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+)
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +144 -0
@@ -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";
Signature · 1 line
2.53.0
[email protected]
AI reviewRe: [PATCH v2 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Low] The node name `regulator-vcc-40v` incorrectly implies a 40V regulator, whereas it is configured for…
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The node name regulator-vcc-40v incorrectly implies a 40V regulator, whereas it is configured for 4.0V. --
commit 31559fd8aa980bcda8336aa1515122f80207c34b
Author: Andre Heider <[email protected]>
riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
This commit enables i2c8 and adds the connected SpacemiT P1 PMIC with its related regulators for the board's power infrastructure.
Quoted 3 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +0
-0
[ ... ]
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts led1 { · line 47
Quoted 1 line
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +1
-0+ reg_vcc_4v0: regulator-vcc-40v {
This isn't a bug, but there appears to be a typo in the node name. The 40v suffix implies a 40V regulator, whereas the regulator properties configure it for 4.0V. Should this be named regulator-vcc-4v0 or similar to match the label and configuration?
Quoted 8 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +8
-0+ compatible = "regulator-fixed"; + regulator-name = "VCC4V0"; + regulator-min-microvolt = <4000000>; + regulator-max-microvolt = <4000000>; + regulator-boot-on; + regulator-always-on; + vin-supply = <®_usb_vbus>; + };
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
Yixun Lan
maintainerRe: [PATCH v2 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
In reply to Andre HeiderHi Andre,
Quoted 25 lines · Andre Heider
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 <[email protected]>--- .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+)arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +2
-0@@ -17,6 +17,7 @@ / { aliases { ethernet0 = ð0; serial0 = &uart0; + i2c8 = &i2c8; }; chosen {@@ -33,6 +34,25 @@ led1 { default-state = "on"; }; }; +
..
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts led1 { · line 45
Quoted 8 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +8
-0+ 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
Quoted 148 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +134
-0+ + 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";Signature · 1 line
2.53.0
Signature · 1 line
Yixun Lan (dlan)
Re: [PATCH v2 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
Quoted 29 lines · Yixun Lan
Hi Andre,
Quoted 25 lines · Andre Heider
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 <[email protected]>--- .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+)arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +2
-0@@ -17,6 +17,7 @@ / { aliases { ethernet0 = ð0; serial0 = &uart0; + i2c8 = &i2c8; }; chosen {@@ -33,6 +34,25 @@ led1 { default-state = "on"; }; }; +..
Quoted 10 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts led1 { · line 45
Quoted 8 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +8
-0+ 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
Quoted 150 lines
Quoted 149 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +134
-0+ + 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";Signature · 1 line
2.53.0
Yixun Lan
maintainerRe: [PATCH v2 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
Hi Andre,
Quoted 41 lines · Andre Heider
Quoted 29 lines · Yixun Lan
Hi Andre,
Quoted 25 lines · Andre Heider
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 <[email protected]>--- .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+)arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +2
-0@@ -17,6 +17,7 @@ / { aliases { ethernet0 = ð0; serial0 = &uart0; + i2c8 = &i2c8; }; chosen {@@ -33,6 +34,25 @@ led1 { default-state = "on"; }; }; +..
Quoted 10 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts led1 { · line 45
Quoted 8 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +8
-0+ 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
Quoted 3 lines
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.
Please drop
It's a historical reason that we instroduced the unnecessary regulator before Krzysztof's comment, in other words, we should also fix that too..
Signature · 1 line
Yixun Lan (dlan)
PATCH v2 2/6 riscv: dts: spacemit: k1-musepi-pro: add 24c04 eeprom
In reply to Andre HeiderEnable 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)
--- .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-)
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +34 -1
@@ -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>;
Signature · 1 line
2.53.0
[email protected]
AI reviewRe: [PATCH v2 2/6] riscv: dts: spacemit: k1-musepi-pro: add 24c04 eeprom
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] Mismatch between commit message specifying 24C04 EEPROM and the device tree implementation…
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Mismatch between commit message specifying 24C04 EEPROM and the device tree implementation specifying 24C02. --
commit 8474b79f5a61bfe2629e2e2bdbab9bc9128b8502
Author: Andre Heider <[email protected]>
riscv: dts: spacemit: k1-musepi-pro: add 24c04 eeprom
This commit enables i2c2 and adds a connected EEPROM containing an ONIE TLV table.
Quoted 4 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +0
-0
[ ... ]
Quoted 6 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +2
-0@@ -92,6 +93,38 @@ &pdma { status = "okay"; }; +&i2c2 { + pinctrl-0 = <&i2c2_0_cfg>;
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts &pdma { · line 107
Quoted 10 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +10
-0+ pinctrl-names = "default"; + status = "okay"; + + eeprom@50 { + compatible = "atmel,24c02"; + reg = <0x50>; + vcc-supply = <&buck3_1v8>; /* EEPROM_VCC1V8 */ + pagesize = <8>; + read-only; + size = <256>;
The commit message states "add 24c04 eeprom", but the device tree uses the atmel,24c02 compatible string, a page size of 8, and a total size of 256 bytes.
Since a 24c04 EEPROM is typically 512 bytes with a 16-byte page size, is this hardware actually a 24c02, or does the device tree node need to be updated to fully describe a 24c04?
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=2
PATCH v2 3/6 riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
In reply to Andre HeiderAdd the QSPI controller node and describe the attached SPI NOR flash (Winbond W25Q64FWSSAQ).
Add a corresponding vendor flash partition layout.
--- .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-)
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +42 -1
@@ -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";
Signature · 1 line
2.53.0
[email protected]
AI reviewRe: [PATCH v2 3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: - [High] Potential overvoltage risk for the W25Q64FW SPI NOR flash via the 'buck4_3v3' supply. - [Low] The…
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Potential overvoltage risk for the W25Q64FW SPI NOR flash via the 'buck4_3v3' supply.
- [Low] The unit-address in the 'uboot' partition node name does not match the base address in its 'reg' property. --
commit 470f9c74bd3cfec41ed69dd8c4e22535a7e8164f
Author: Andre Heider <[email protected]>
riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
This commit adds the QSPI controller node and describes the attached SPI NOR flash. It also provides a corresponding vendor flash partition layout.
Quoted 3 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +0
-0
[ ... ]
Quoted 9 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +1
-1@@ -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>;
[ ... ]
Quoted 6 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +2
-0@@ -249,6 +249,47 @@ dldo7 { }; }; +&qspi { + pinctrl-names = "default";
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts dldo7 { · line 263
Quoted 10 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +10
-0+ 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 */
The commit message notes this flash is a Winbond W25Q64FWSSAQ, which is a strict 1.8V part. Could this vcc-supply assignment cause hardware damage?
The buck4 regulator has a maximum voltage of 3.3V. If the regulator defaults to 3.3V or is configured to 3.3V dynamically, it exceeds the absolute maximum ratings for the 1.8V W25Q series flash.
Is the board actually using the 3V equivalent (W25Q64JV), or does the regulator need stricter constraints if it exclusively powers this flash?
Quoted 6 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +6
-0+ m25p,fast-read; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>;
[ ... ]
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts dldo7 { · line 287
Quoted 5 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +5
-0+ opensbi@70000 { + reg = <0x70000 0x30000>; + }; + uboot@a00000 { + reg = <0xa0000 0x760000>;
This isn't a regression, but there is a mismatch between the unit-address in the node name and the base address in the reg property.
Should the node be named uboot@a0000 to match the 0xa0000 address and prevent a compiler warning?
Quoted 4 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +4
-0+ }; + }; + }; +};
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=3
Re: [PATCH v2 3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
Quoted 52 lines · On 12.05.26 4:28 AM, [email protected] wrote:
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Potential overvoltage risk for the W25Q64FW SPI NOR flash via the 'buck4_3v3' supply.
- [Low] The unit-address in the 'uboot' partition node name does not match the base address in its 'reg' property. --commit
470f9c74bd3cfec41ed69dd8c4e22535a7e8164f
Author: Andre Heider <[email protected]>riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
This commit adds the QSPI controller node and describes the attached SPI NOR flash. It also provides a corresponding vendor flash partition layout.
Quoted 3 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +0
-0[ ... ]
Quoted 9 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +1
-1@@ -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>;[ ... ]
Quoted 6 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +2
-0@@ -249,6 +249,47 @@ dldo7 { }; }; +&qspi { + pinctrl-names = "default";arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts dldo7 { · line 263
Quoted 10 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +10
-0+ 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 */The commit message notes this flash is a Winbond W25Q64FWSSAQ, which is a strict 1.8V part. Could this vcc-supply assignment cause hardware damage?
Quoted 3 lines
The buck4 regulator has a maximum voltage of 3.3V. If the regulator defaults to 3.3V or is configured to 3.3V dynamically, it exceeds the absolute maximum ratings for the 1.8V W25Q series flash.
As per the comment, there's a the non controllable regulator QSPI_VCC1833 in between. k1-milkv-jupiter.dts matches in this regard.
I'll keep it unchanged unless someone has an idea how to express that in a better way.
Quoted 30 lines
Is the board actually using the 3V equivalent (W25Q64JV), or does the regulator need stricter constraints if it exclusively powers this flash?
Quoted 6 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +6
-0+ m25p,fast-read; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>;[ ... ]
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts dldo7 { · line 287
Quoted 5 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +5
-0+ opensbi@70000 { + reg = <0x70000 0x30000>; + }; + uboot@a00000 { + reg = <0xa0000 0x760000>;This isn't a regression, but there is a mismatch between the unit-address in the node name and the base address in the reg property.
Should the node be named uboot@a0000 to match the
0xa0000address and prevent a compiler warning?Quoted 4 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +4
-0+ }; + }; + }; +};
Rob Herring
maintainerRe: [PATCH v2 3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
Quoted 54 lines · Andre Heider
Quoted 52 lines · On 12.05.26 4:28 AM, [email protected] wrote:
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Potential overvoltage risk for the W25Q64FW SPI NOR flash via the 'buck4_3v3' supply.
- [Low] The unit-address in the 'uboot' partition node name does not match the base address in its 'reg' property. --commit
470f9c74bd3cfec41ed69dd8c4e22535a7e8164f
Author: Andre Heider <[email protected]>riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
This commit adds the QSPI controller node and describes the attached SPI NOR flash. It also provides a corresponding vendor flash partition layout.
Quoted 3 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +0
-0[ ... ]
Quoted 9 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +1
-1@@ -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>;[ ... ]
Quoted 6 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +2
-0@@ -249,6 +249,47 @@ dldo7 { }; }; +&qspi { + pinctrl-names = "default";arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts dldo7 { · line 263
Quoted 10 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +10
-0+ 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 */The commit message notes this flash is a Winbond W25Q64FWSSAQ, which is a strict 1.8V part. Could this vcc-supply assignment cause hardware damage?
Quoted 7 lines
Quoted 3 lines
The buck4 regulator has a maximum voltage of 3.3V. If the regulator defaults to 3.3V or is configured to 3.3V dynamically, it exceeds the absolute maximum ratings for the 1.8V W25Q series flash.
As per the comment, there's a the non controllable regulator
QSPI_VCC1833in between.k1-milkv-jupiter.dtsmatches in this regard.
I'll keep it unchanged unless someone has an idea how to express that in a better way.
That's what we have fixed-regulator binding for. It can take an input supply.
Rob
Re: [PATCH v2 3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
Quoted 59 lines · Rob Herring
Quoted 58 lines · Andre Heider
Quoted 55 lines · On 12.05.26 4:28 AM, [email protected] wrote:
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Potential overvoltage risk for the W25Q64FW SPI NOR flash via the 'buck4_3v3' supply.
- [Low] The unit-address in the 'uboot' partition node name does not match the base address in its 'reg' property. --commit
470f9c74bd3cfec41ed69dd8c4e22535a7e8164f
Author: Andre Heider <[email protected]>riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
This commit adds the QSPI controller node and describes the attached SPI NOR flash. It also provides a corresponding vendor flash partition layout.
Quoted 3 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +0
-0[ ... ]
Quoted 9 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +1
-1@@ -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>;[ ... ]
Quoted 6 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +2
-0@@ -249,6 +249,47 @@ dldo7 { }; }; +&qspi { + pinctrl-names = "default";arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts dldo7 { · line 263
Quoted 10 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +10
-0+ 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 */The commit message notes this flash is a Winbond W25Q64FWSSAQ, which is a strict 1.8V part. Could this vcc-supply assignment cause hardware damage?
The buck4 regulator has a maximum voltage of 3.3V. If the regulator defaults to 3.3V or is configured to 3.3V dynamically, it exceeds the absolute maximum ratings for the 1.8V W25Q series flash.
Quoted 5 lines
Quoted 3 lines
As per the comment, there's a the non controllable regulator
QSPI_VCC1833in between.k1-milkv-jupiter.dtsmatches in this regard.
I'll keep it unchanged unless someone has an idea how to express that in a better way.That's what we have fixed-regulator binding for. It can take an input supply.
Yeah, I was just trying to avoid the "non controllable" comment with a request to get rid of it ;) But I guess if I have a consumer that's fine.
Note that dtbs_check passes, AFAICT sashiko is the only instance noticing it.
Thanks,
Andre
Yixun Lan
maintainerRe: [PATCH v2 3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
In reply to Andre HeiderHi Andre,
Quoted 15 lines · Andre Heider
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 <[email protected]>--- .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-)arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +0
-0
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts buck3_1v8: buck3 { · line 169
Quoted 5 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +1
-1@@ -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..
Quoted 54 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +41
-0regulator-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";Signature · 1 line
2.53.0
Signature · 1 line
Yixun Lan (dlan)
PATCH v2 4/6 riscv: dts: spacemit: k1-musepi-pro: enable USB 3 ports
In reply to Andre HeiderEnable 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.
--- .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+)
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +54 -0
@@ -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 */ + }; +};
Signature · 1 line
2.53.0
PATCH v2 5/6 riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports
In reply to Andre HeiderEnable 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.
--- .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+)
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +50 -0
@@ -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>;
Signature · 1 line
2.53.0
[email protected]
AI reviewRe: [PATCH v2 5/6] riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: - [Medium] The `vpcie3v3-supply` property is incorrectly assigned to the top-level PCIe host controller…
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] The vpcie3v3-supply property is incorrectly assigned to the top-level PCIe host controller nodes (&pcie1 and &pcie2), which will cause a dtbs_check schema validation failure.
- [Low] Grammar and phrasing errors in the commit message.
--
commit 2a8e8221b4fb4ddc072a4a8a753e3e9b7e8f1d06
Author: Andre Heider <[email protected]>
riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports
This commit enables the two PCIe controllers and their PHYs for the SpacemiT K1 MusePI Pro board. The PCIe ports are routed to the M.2 M-key connector and the PCIe slot, and fixed regulators are provided for the 3.3V supplies.
Quoted 2 lines
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.
This isn't a bug, but there's a typo in the commit message. The word "controller" should be plural, and there is an extra "and" after "with".
Quoted 4 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +0
-0
[ ... ]
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts dldo7 { · line 308
Quoted 13 lines
+&pcie1_phy {
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +12
-0+ 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>;
Does this cause a dtbs_check schema validation failure?
According to the SpacemiT PCIe device tree binding schema, the vpcie3v3-supply property is strictly defined under the patternProperties for the child PCI bridge node. The top-level host controller node specifies unevaluatedProperties: false and does not define vpcie3v3-supply.
Quoted 6 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +6
-0+ status = "okay"; +}; + +&pcie2_phy { + pinctrl-names = "default"; + pinctrl-0 = <&pcie2_4_cfg>;
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts dldo7 { · line 324
Quoted 10 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +10
-0+ status = "okay"; +}; + +&pcie2_port { + phys = <&pcie2_phy>; + vpcie3v3-supply = <&mpcie_vcc_3v3>; +}; + +&pcie2 { + vpcie3v3-supply = <&mpcie_vcc_3v3>;
Is this redundancy added to work around an existing issue in the SpacemiT K1 PCIe driver?
The driver currently fetches the regulator from the root controller device instead of the port node, but duplicating the property in the device tree violates the bindings.
Should the driver be updated to parse the child node instead of duplicating the property here in the root nodes?
Quoted 2 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +2
-0+ status = "okay"; +};
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=5
Yixun Lan
maintainerRe: [PATCH v2 5/6] riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports
In reply to Andre HeiderHi Andre,
Quoted 53 lines · Andre Heider
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 <[email protected]>--- .../riscv/boot/dts/spacemit/k1-musepi-pro.dts | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+)arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +30
-0@@ -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 {
..
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
Quoted 1 line
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +1
-0+ vpcie3v3-supply = <&pcie_vcc_3v3>;
drop vpcie3v3-supply which not needed
Quoted 6 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +6
-0+ status = "okay"; +}; + +&pcie2_phy { + pinctrl-names = "default"; + pinctrl-0 = <&pcie2_4_cfg>;
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts dldo7 { · line 324
Quoted 10 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +10
-0+ status = "okay"; +}; + +&pcie2_port { + phys = <&pcie2_phy>; + vpcie3v3-supply = <&mpcie_vcc_3v3>; +}; + +&pcie2 { + vpcie3v3-supply = <&mpcie_vcc_3v3>;
same here
Quoted 9 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +3
-0+ status = "okay"; +}; + &qspi { pinctrl-names = "default"; pinctrl-0 = <&qspi_cfg>;Signature · 1 line
2.53.0
Signature · 1 line
Yixun Lan (dlan)
PATCH v2 6/6 riscv: dts: spacemit: k1-musepi-pro: set default console baud rate
In reply to Andre HeiderAllow serial output with the same uboot/opensbi settings so the console works without providing a cmdline.
--- arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +1 -1
@@ -22,7 +22,7 @@ aliases { }; chosen { - stdout-path = "serial0"; + stdout-path = "serial0:115200n8"; }; leds {
Signature · 1 line
2.53.0
Re: [PATCH v2 6/6] riscv: dts: spacemit: k1-musepi-pro: set default console baud rate
Quoted 4 lines · Andre Heider
Allow serial output with the same uboot/opensbi settings so the console works without providing a cmdline.
Signed-off-by Andre Heider <[email protected]>
Quoted 20 lines
--- arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +1
-1@@ -22,7 +22,7 @@ aliases { }; chosen { - stdout-path = "serial0"; + stdout-path = "serial0:115200n8"; }; leds {Signature · 1 line
2.53.0
Signature · 1 line
Yixun Lan (dlan)