spacemit: k1-musepi-pro: add missing devices
Subsystems (3)
v3 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].
v3:
- drop reg_usb_vbus, non-controllable and served only as vin-supply
- fixed regulator-vcc-4v0 typo
- fold addition of pmic regulator labels into the pmic patch
- eeprom is a GT24C02B, fixed commit message
- added reg_qspi_vcc1v833
- fixed uboot nor name offset
- add missing "reg_" prefix for reg_pcie_vcc_3v3
- drop pcie{1,2}'s vpcie3v3-supply, it's already specified on the root ports
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
$ 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
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
ca800000.pcie-vpcie3v3 1 0mA 0mV 0mV
ca400000.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
d4280000.mmc-vmmc 0 0mA 3300mV 3300mV
QSPI_VCC1833 2 1 0 unknown 1833mV 0mA 1833mV 1833mV
spi0.0-vcc 1 0mA 0mV 0mV
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 24c02 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 | 309 +++++++++++++++++- 1 file changed, 308 insertions(+), 1 deletion(-)
Signature · 1 line
2.53.0
PATCH v3 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 | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+)
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +134 -0
@@ -17,6 +17,7 @@ / { aliases { ethernet0 = ð0; serial0 = &uart0; + i2c8 = &i2c8; }; chosen {
@@ -33,6 +34,15 @@ led1 { default-state = "on"; }; }; + + reg_vcc_4v0: regulator-vcc-4v0 { + compatible = "regulator-fixed"; + regulator-name = "VCC4V0"; + regulator-min-microvolt = <4000000>; + regulator-max-microvolt = <4000000>; + regulator-boot-on; + regulator-always-on; + }; }; &emmc {
@@ -72,6 +82,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_1v8: buck3 { + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1800000>; + regulator-ramp-delay = <5000>; + regulator-always-on; + }; + + buck4_3v3: 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 v3 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
Quoted 1 line · Andre Heider
Enable i2c8 and add the connected SpacemiT P1 PMIC with its related regulators
got a warning here, commit message should limit to 75 characters..
Quoted 3 lines
for the board's power infrastructure and voltage regulation support.
Signed-off-by Andre Heider <[email protected]>
Signature · 1 line
Yixun Lan (dlan)
Yixun Lan
maintainerRe: [PATCH v3 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 | 134 ++++++++++++++++++ 1 file changed, 134 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,15 @@ led1 { default-state = "on"; }; }; +
..
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts led1 { · line 38
Quoted 1 line
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +1
-0+ reg_vcc_4v0: regulator-vcc-4v0 {
I prefer to keep this name same as other boards, so let's change it to reg_vcc_4v ..
Quoted 8 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +7
-0+ compatible = "regulator-fixed"; + regulator-name = "VCC4V0"; + regulator-min-microvolt = <4000000>; + regulator-max-microvolt = <4000000>; + regulator-boot-on; + regulator-always-on; + }; };
Signature · 1 line
Yixun Lan (dlan)
[email protected]
AI reviewRe: [PATCH v3 1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
In reply to Andre HeiderThank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] Regulator minimum voltage constraints are set too loosely on fixed board rails, risking hardware…
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Regulator minimum voltage constraints are set too loosely on fixed board rails, risking hardware brownouts. --
commit 823adf1d7b0f1286cdd0e228119b713b02c36d2e
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 and voltage regulation support.
Quoted 4 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +0
-0
[ ... ]
Quoted 13 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +9
-0@@ -72,6 +82,130 @@ &pdma { status = "okay"; }; +&i2c8 { + pinctrl-0 = <&i2c8_cfg>; + pinctrl-names = "default"; + status = "okay"; + + pmic@41 { + compatible = "spacemit,p1"; + reg = <0x41>; + interrupts = <64>;
[ ... ]
Quoted 4 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +4
-0+ dldoin1-supply = <&buck5>; + dldoin2-supply = <&buck5>; + + regulators {
[ ... ]
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts &pdma { · line 121
Quoted 3 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +3
-0+ buck3_1v8: buck3 { + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1800000>;
Should these minimum bounds be restricted to match the exact hardware layout of the board?
The labels buck3_1v8 and buck4_3v3 indicate these rails are wired for fixed 1.8V and 3.3V usage, but the regulator-min-microvolt allows them to scale down to 0.5V. Could this loose constraint risk hardware brownouts if a driver attempts dynamic voltage scaling on these rails?
Quoted 4 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +4
-0+ regulator-ramp-delay = <5000>; + regulator-always-on; + }; +
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts &pdma { · line 135
Quoted 10 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +10
-0+ buck4_3v3: 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>;
Since buck5 is used as the parent supply for the DLDOs (dldoin1-supply and dldoin2-supply), could the wide 0.5V minimum constraint allow the OS to drop its voltage below the necessary headroom needed to power the downstream DLDOs?
Quoted 3 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +3
-0+ regulator-ramp-delay = <5000>; + regulator-always-on; + };
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
PATCH v3 2/6 riscv: dts: spacemit: k1-musepi-pro: add 24c02 eeprom
In reply to Andre HeiderEnable i2c2 and add the connected GT24C02B 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 | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+)
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +33 -0
@@ -17,6 +17,7 @@ / { aliases { ethernet0 = ð0; serial0 = &uart0; + i2c2 = &i2c2; i2c8 = &i2c8; };
@@ -82,6 +83,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";
Signature · 1 line
2.53.0
PATCH v3 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 | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+)
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +50 -0
@@ -44,6 +44,15 @@ reg_vcc_4v0: regulator-vcc-4v0 { regulator-boot-on; regulator-always-on; }; + + reg_qspi_vcc1v833: regulator-qspi-vcc1v833 { + compatible = "regulator-fixed"; + regulator-name = "QSPI_VCC1833"; + regulator-min-microvolt = <1833000>; + regulator-max-microvolt = <1833000>; + regulator-always-on; + vin-supply = <&buck4_3v3>; + }; }; &emmc {
@@ -239,6 +248,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 = <®_qspi_vcc1v833>; + 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@a0000 { + reg = <0xa0000 0x760000>; + }; + }; + }; +}; + &uart0 { pinctrl-0 = <&uart0_2_cfg>; pinctrl-names = "default";
Signature · 1 line
2.53.0
[email protected]
AI reviewRe: [PATCH v3 3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Low] Partition nodes use specific functional names instead of generic names. --
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Partition nodes use specific functional names instead of generic names. --
commit ead14b17b1685d70e44f6cab4060557873642eb6
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 adds a corresponding vendor flash partition layout.
Quoted 4 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +0
-0
[ ... ]
Quoted 7 lines
+&qspi {
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +6
-0+ pinctrl-names = "default"; + pinctrl-0 = <&qspi_cfg>; + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor";
[ ... ]
Quoted 13 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +13
-0+ 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>;
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts dldo7 { · line 287
Quoted 10 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +10
-0+ }; + env@60000 { + reg = <0x60000 0x10000>; + }; + opensbi@70000 { + reg = <0x70000 0x30000>; + }; + uboot@a0000 { + reg = <0xa0000 0x760000>; + };
Should these partition nodes use the generic partition@ naming convention instead of specific functional names?
The device tree schema for fixed-partitions expects child nodes to match the pattern ^partition@[0-9a-f]+$. Using specific names like bootinfo@0 might trigger dtc and schema validation warnings.
Could these functional names be provided via the label property instead, while keeping the node names generic?
Quoted 3 lines
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +3
-0+ }; + }; +};
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=3
PATCH v3 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 | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+)
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +52 -0
@@ -53,6 +53,26 @@ reg_qspi_vcc1v833: regulator-qspi-vcc1v833 { regulator-always-on; vin-supply = <&buck4_3v3>; }; + + reg_5v_vbus: regulator-5v-vbus { + compatible = "regulator-fixed"; + regulator-name = "5V_VBUS"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + 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; + gpio = <&gpio K1_GPIO(127) GPIO_ACTIVE_HIGH>; /* HUB_PWREN */ + enable-active-high; + }; }; &emmc {
@@ -65,6 +85,10 @@ &emmc { status = "okay"; }; +&combo_phy { + status = "okay"; +}; + ð0 { phy-handle = <&rgmii0>; phy-mode = "rgmii-id";
@@ -294,3 +318,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 v3 5/6 riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports
In reply to Andre HeiderEnable the two PCIe controllers along with 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 | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+)
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts +38 -0
@@ -36,6 +36,14 @@ led1 { }; }; + reg_pcie_vcc_3v3: regulator-pcie-vcc3v3 { + compatible = "regulator-fixed"; + regulator-name = "PCIE_VCC3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + reg_vcc_4v0: regulator-vcc-4v0 { compatible = "regulator-fixed"; regulator-name = "VCC4V0";
@@ -272,6 +280,36 @@ dldo7 { }; }; +&pcie1_phy { + pinctrl-names = "default"; + pinctrl-0 = <&pcie1_3_cfg>; + status = "okay"; +}; + +&pcie1_port { + phys = <&pcie1_phy>; + vpcie3v3-supply = <®_pcie_vcc_3v3>; +}; + +&pcie1 { + status = "okay"; +}; + +&pcie2_phy { + pinctrl-names = "default"; + pinctrl-0 = <&pcie2_4_cfg>; + status = "okay"; +}; + +&pcie2_port { + phys = <&pcie2_phy>; + vpcie3v3-supply = <®_pcie_vcc_3v3>; +}; + +&pcie2 { + status = "okay"; +}; + &qspi { pinctrl-names = "default"; pinctrl-0 = <&qspi_cfg>;
Signature · 1 line
2.53.0
PATCH v3 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
Yixun Lan
maintainerAndre,
Thanks for pushing this new version, overall, this series looks good to me,
Although there are few quite trivial issues, which I could help to fix it while applying, let's give community some time to test and review..
P.S I haven't run it on musepi board, but trust you tested all functions..
Quoted 76 lines · Andre Heider
Add the missing devices with their required regulators. The regulators are named after their label in the vendor schematics[0].
v3:
- dropreg_usb_vbus, non-controllable and served only as vin-supply
- fixed regulator-vcc-4v0 typo
- fold addition of pmic regulator labels into the pmic patch
- eeprom is a GT24C02B, fixed commit message
- addedreg_qspi_vcc1v833
- fixed uboot nor name offset
- add missing "reg_" prefix forreg_pcie_vcc_3v3
- drop pcie{1,2}'s vpcie3v3-supply, it's already specified on the root portsv2:
- dropreg_vcc_5v0_sysas per "non-controllable" review comments on similar patches for other boards (kept the rootreg_usb_vbusfor though)
- addreg_vcc_4v0instead as p1 vin?-supply, misread the schematics
- dropmpcie_vcc_3v3and usepcie_vcc_3v3for pcie2* too ("non-controllable" again)
- all of the above makes it consistent with other k1 boardsv1: https://lore.kernel.org/spacemit/[email protected]/T/#t
$ 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 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 ca800000.pcie-vpcie3v3 1 0mA 0mV 0mV ca400000.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 d4280000.mmc-vmmc 0 0mA 3300mV 3300mV QSPI_VCC1833 2 1 0 unknown 1833mV 0mA 1833mV 1833mV spi0.0-vcc 1 0mA 0mV 0mV 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 24c02 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 | 309 +++++++++++++++++- 1 file changed, 308 insertions(+), 1 deletion(-)Signature · 1 line
2.53.0
Signature · 1 line
Yixun Lan (dlan)
Hi Yixun,
Quoted 5 lines · Yixun Lan
Andre,
Thanks for pushing this new version, overall, this series looks good to me,
Although there are few quite trivial issues, which I could help to fix it while applying, let's give community some time to test and review..
alright, and sorry, my git send-email flow is a bit rusty, didn't notice those issues...
Quoted 1 line
P.SI haven't run it on musepi board, but trust you tested all functions..
I tested the added devices except nvme as I don't have one connected.
But I do have a pci card in there, which works just fine, so generally speaking pcie works and I'd assume/hope nvme would too ;)
Quoted 78 lines · Andre Heider
Quoted 76 lines
Add the missing devices with their required regulators. The regulators are named after their label in the vendor schematics[0].
v3:
- dropreg_usb_vbus, non-controllable and served only as vin-supply
- fixed regulator-vcc-4v0 typo
- fold addition of pmic regulator labels into the pmic patch
- eeprom is a GT24C02B, fixed commit message
- addedreg_qspi_vcc1v833
- fixed uboot nor name offset
- add missing "reg_" prefix forreg_pcie_vcc_3v3
- drop pcie{1,2}'s vpcie3v3-supply, it's already specified on the root portsv2:
- dropreg_vcc_5v0_sysas per "non-controllable" review comments on similar patches for other boards (kept the rootreg_usb_vbusfor though)
- addreg_vcc_4v0instead as p1 vin?-supply, misread the schematics
- dropmpcie_vcc_3v3and usepcie_vcc_3v3for pcie2* too ("non-controllable" again)
- all of the above makes it consistent with other k1 boardsv1: https://lore.kernel.org/spacemit/[email protected]/T/#t
$ 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 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 ca800000.pcie-vpcie3v3 1 0mA 0mV 0mV ca400000.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 d4280000.mmc-vmmc 0 0mA 3300mV 3300mV QSPI_VCC1833 2 1 0 unknown 1833mV 0mA 1833mV 1833mV spi0.0-vcc 1 0mA 0mV 0mV 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 24c02 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 | 309 +++++++++++++++++- 1 file changed, 308 insertions(+), 1 deletion(-)Signature · 1 line
2.53.0
Quoted 13 lines · Andre Heider
Add the missing devices with their required regulators. The regulators are named after their label in the vendor schematics[0].
v3:
- dropreg_usb_vbus, non-controllable and served only as vin-supply
- fixed regulator-vcc-4v0 typo
- fold addition of pmic regulator labels into the pmic patch
- eeprom is a GT24C02B, fixed commit message
- addedreg_qspi_vcc1v833
- fixed uboot nor name offset
- add missing "reg_" prefix forreg_pcie_vcc_3v3
- drop pcie{1,2}'s vpcie3v3-supply, it's already specified on the root ports
Quoted 1 line
[...]
Applied, thanks!
[1/6] riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure
https://github.com/spacemit-com/linux/commit/e2dac7c7a3a8970feeeb758f782ce86b89625ebd [2/6] riscv: dts: spacemit: k1-musepi-pro: add 24c02 eeprom https://github.com/spacemit-com/linux/commit/6bc75cfa56e885c2eab80e215f0a610075505846 [3/6] riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR https://github.com/spacemit-com/linux/commit/735b1b205d07bf7bfa55b1f50f5485b9cc42a251 [4/6] riscv: dts: spacemit: k1-musepi-pro: enable USB 3 ports https://github.com/spacemit-com/linux/commit/83c658c7a82304a2bc944cdd4a5b4f98d19322f0 [5/6] riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports https://github.com/spacemit-com/linux/commit/d9ab0a855ba13f1db3ae16539348714c74010a22 [6/6] riscv: dts: spacemit: k1-musepi-pro: set default console baud rate https://github.com/spacemit-com/linux/commit/f125c6085fd775f09a316f61cc89a0ae86826895
Best regards,
Signature · 1 line
Yixun Lan <[email protected]>