Skip to contentSkip to conversation

arm64: dts: qcom: Add Vicharak Axon Mini

PATCH Superseded Ajit Singh 4 participants 15 messages May 18 – May 19

Subsystems (3)

v1 of 5 Superseded Latest is v5 →

lore
Share & tools
lore

Ajit Singh

author
#0 lore raw

cover arm64: dts: qcom: Add Vicharak Axon Mini

Add initial support for the Vicharak Axon Mini, a QCS6490-based single-board computer.

This series adds the Vicharak vendor prefix, documents the board compatible, and adds the initial board DTS.

Tested:
- debug UART
- eMMC
- UFS
- SDIO WLAN
- USB 2.0 host
- PCIe

Ajit Singh (3):
dt-bindings: vendor-prefixes: Add prefix for Vicharak
dt-bindings: arm: qcom: Add Vicharak Axon Mini
arm64: dts: qcom: Add Vicharak Axon Mini

 .../devicetree/bindings/arm/qcom.yaml         |    1 +
 .../devicetree/bindings/vendor-prefixes.yaml  |    2 +
 arch/arm64/boot/dts/qcom/Makefile             |    1 +
 .../dts/qcom/qcs6490-vicharak-axon-mini.dts   | 1093 +++++++++++++++++
 4 files changed, 1097 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts
Signature · 1 line
2.50.1 (Apple Git-155)
author
#1 lore raw

PATCH 1/3 dt-bindings: vendor-prefixes: Add prefix for Vicharak

Vicharak develops computing platforms and manufactures single-board computers, including FPGA-integrated SBCs. Add a vendor prefix for them.

---
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/vendor-prefixes.yaml +2 -0
index ee7fd3cfe203..1948356337b9 100644
@@ -1767,6 +1767,8 @@ patternProperties:
     description: VIA Technologies, Inc.
   "^vialab,.*":
     description: VIA Labs, Inc.
+  "^vicharak,.*":
+    description: Vicharak Computers Pvt. Ltd.
   "^vicor,.*":
     description: Vicor Corporation
   "^videostrong,.*":
Signature · 1 line
2.50.1 (Apple Git-155)
author
#2 lore raw

PATCH 2/3 dt-bindings: arm: qcom: Add Vicharak Axon Mini

In reply to Ajit Singh

The Vicharak Axon Mini is a single-board computer based on the Qualcomm QCM6490 platform.

Add the top-level compatible string for this board.

---
 Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/qcom.yaml +1 -0
index d48c625d3fc4..6924bfe7b949 100644
@@ -361,6 +361,7 @@ properties:
               - radxa,dragon-q6a
               - shift,otter
               - thundercomm,rubikpi3
+              - vicharak,axon-mini
           - const: qcom,qcm6490
 
       - description: Qualcomm Technologies, Inc. Distributed Unit 1000 platform
Signature · 1 line
2.50.1 (Apple Git-155)
author
#3 lore raw

PATCH 3/3 arm64: dts: qcom: Add Vicharak Axon Mini

In reply to Ajit Singh

Add DTS for the Vicharak Axon Mini board based on the Qualcomm QCS6490 SoC.

This adds debug UART, eMMC, UFS, SDIO WLAN, USB 2.0 host, PCIe, support along with regulators.

---
 arch/arm64/boot/dts/qcom/Makefile             |    1 +
 .../dts/qcom/qcs6490-vicharak-axon-mini.dts   | 1093 +++++++++++++++++
 2 files changed, 1094 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index f80b5d9cf1e8..d8d04dc88e08 100644
@@ -146,6 +146,7 @@ qcs6490-rb3gen2-industrial-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-industrial-mezzanine.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-vision-mezzanine.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-thundercomm-rubikpi3.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-vicharak-axon-mini.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs8300-ride.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs8550-aim300-aiot.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs9100-ride.dtb
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +1093 -0

1,093 lines not on this page · raw message

Signature · 1 line
2.50.1 (Apple Git-155)
#4 lore raw
Thank you for your contribution! Sashiko AI review found 5 potential issue(s) to consider: - [High] The `camera-thermal` zone references a non-existent thermal sensor index. - [High] The…

Thank you for your contribution! Sashiko AI review found 5 potential issue(s) to consider:
- [High] The camera-thermal zone references a non-existent thermal sensor index.
- [High] The pm8350c_temp_alarm node polls the wrong PMIC's die temperature.
- [Medium] The sdhc_1 eMMC node is missing the bus-width property, falling back to 1-bit mode.
- [Low] Peripheral regulators bypass power management by omitting consumers, and the Type-C regulator is completely unpowered.
- [Low] Regulator naming typo for the PCIe1 3.3V supply.
--

commit a197cbbff2c551bcef5dc82c20f61017dc75d278
Author: Ajit Singh <[email protected]>

arm64: dts: qcom: Add Vicharak Axon Mini

Add DTS for the Vicharak Axon Mini board based on the Qualcomm QCS6490 SoC. This adds debug UART, eMMC, UFS, SDIO WLAN, USB 2.0 host, PCIe, support along with regulators.

Quoted 5 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +0 -0
new file mode 100644
index 0000000000000..538485e342ed4

[ ... ]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 163

Quoted 5 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +5 -0
+	thermal-zones {
+		camera-thermal {
+			polling-delay-passive = <0>;
+
+			thermal-sensors = <&pmk8350_adc_tm 2>;

The &pmk8350_adc_tm node only defines subnodes for reg = <0>, reg = <1>, and reg = <3>.

Does this missing sensor index 2 cause the thermal framework to fail to look up the sensor and bind the camera thermal zone?

[ ... ]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 309

Quoted 13 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +13 -0
+	vcc_5v0_typec0: regulator-vcc-5v0-typec0 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_5v0_typec0";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		vin-supply = <&vcc_5v0>;
+
+		gpio = <&tlmm 54 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&vcc5v0_typec0_en>;
+	};

Since this regulator lacks both regulator-always-on and a consumer node that would request it, will this regulator ever be enabled?

Additionally, do regulators like vcc_pcie0_dsi_3v3 and vcc_pcie1_3v3 bypass runtime power management by relying on regulator-always-on instead of being linked to their consumers?

[ ... ]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 331

Quoted 3 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +3 -0
+	vcc_pcie1_3v3: regulator-vcc-pcie1-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_pcie_3v3";

This isn't a bug, but the regulator-name omits the index '1' compared to its node name.

[ ... ]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 441

Quoted 4 lines

+&pm8350c_temp_alarm {

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +3 -0
+	io-channels = <&pmk8350_vadc PMK8350_ADC7_DIE_TEMP>;
+	io-channel-names = "thermal";
+};

Does reading PMK8350_ADC7_DIE_TEMP cause the pm8350c_temp_alarm to track the primary PMK8350 PMIC's temperature instead of its own PM8350C PMIC?

[ ... ]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 908

Quoted 10 lines

+&sdhc_1 {

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +9 -0
+	non-removable;
+	no-sd;
+	no-sdio;
+
+	vmmc-supply = <&vreg_bob_3p296>;
+	vqmmc-supply = <&vreg_l19b_1p8>;
+
+	status = "okay";
+};

Does this node fall back to a 1-bit bus width without an explicitly defined bus-width property, degrading eMMC performance?

Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=3
#5 lore raw
In reply to Ajit Singh
Quoted 8 lines · Ajit Singh

Add DTS for the Vicharak Axon Mini board based on the Qualcomm QCS6490 SoC.

This adds debug UART, eMMC, UFS, SDIO WLAN, USB 2.0 host, PCIe, support along with regulators.

---

Hello, this looks good overall, I have a couple comments below

[...]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 269

Quoted 13 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +13 -0
+	vcc_3v3: regulator-vcc-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		vin-supply = <&vcc_5v0>;
+
+		gpio = <&tlmm 113 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&vcc_3v3_en>;

nit: Please put

property-n
property-names

in this order, consistently

[...]

Review

Quoted 3 lines

+&usb_2 {

(quoted diff) +2 -0
+	dr_mode = "host";
+	status = "okay";

Let's also keep a \n before the 'status' property, file-wide

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 820

Quoted 5 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +5 -0
+};
+
+&eud {
+	status = "disabled";
+};

It's already disabled in kodiak.dtsi, you can drop this override

Quoted 2 lines

+
+&usb_2_hsphy {

Please sort the top-level &label references alphabetically

[...]

Review

Quoted 2 lines

+&ice {

(quoted diff) +1 -0
+	status = "disabled";

It should be working fine, any reason?

[...]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 889

Quoted 12 lines

+&ufs_mem_hc {

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +11 -0
+	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+	vcc-supply = <&vreg_l7b_2p96>;
+	vcc-max-microamp = <800000>;
+	vccq-supply = <&vreg_l9b_1p2>;
+	vccq-max-microamp = <900000>;
+	vccq2-supply = <&vreg_l9b_1p2>;
+	vccq2-max-microamp = <900000>;
+
+	status = "okay";
+
+	/delete-property/ qcom,ice;

similarly here

[...]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 968

Quoted 8 lines

+&pcie0 {

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +7 -0
+	perst-gpios = <&tlmm 87 GPIO_ACTIVE_LOW>;
+	wake-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>;
+
+	pinctrl-0 = <&pcie0_clkreq_n>, <&pcie0_reset_n>, <&pcie0_wake_n>;
+	pinctrl-names = "default";
+
+	status = "okay";

Is there anything interesting connected to these buses?

Konrad

author
#6 lore raw
Quoted 54 lines · Konrad Dybcio
Quoted 8 lines · Ajit Singh

Add DTS for the Vicharak Axon Mini board based on the Qualcomm QCS6490 SoC.

This adds debug UART, eMMC, UFS, SDIO WLAN, USB 2.0 host, PCIe, support along with regulators.

---

Hello, this looks good overall, I have a couple comments below

[...]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 269

Quoted 13 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +13 -0
+	vcc_3v3: regulator-vcc-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		vin-supply = <&vcc_5v0>;
+
+		gpio = <&tlmm 113 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&vcc_3v3_en>;

nit: Please put

property-n
property-names

in this order, consistently

[...]

Review

Quoted 3 lines

+&usb_2 {

(quoted diff) +2 -0
+	dr_mode = "host";
+	status = "okay";

Let's also keep a \n before the 'status' property, file-wide

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 820

Quoted 5 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +5 -0
+};
+
+&eud {
+	status = "disabled";
+};

It's already disabled in kodiak.dtsi, you can drop this override

Quoted 2 lines

+
+&usb_2_hsphy {

Quoted 8 lines

Please sort the top-level &label references alphabetically

[...]

Review

Quoted 2 lines

+&ice {

(quoted diff) +1 -0
+	status = "disabled";

It should be working fine, any reason?

ICE is kept disabled because enabling the ICE node currently causes a fatal SError during ICE probe on this board:

    qcom_ice_create+0x90/0x274 [qcom_ice]
    qcom_ice_probe+0x38/0x80 [qcom_ice]
    Kernel panic - not syncing: Asynchronous SError Interrupt

UFS works without ICE, so I kept ICE disabled for the initial board support.

Quoted 20 lines

[...]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 889

Quoted 12 lines

+&ufs_mem_hc {

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +11 -0
+	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+	vcc-supply = <&vreg_l7b_2p96>;
+	vcc-max-microamp = <800000>;
+	vccq-supply = <&vreg_l9b_1p2>;
+	vccq-max-microamp = <900000>;
+	vccq2-supply = <&vreg_l9b_1p2>;
+	vccq2-max-microamp = <900000>;
+
+	status = "okay";
+
+	/delete-property/ qcom,ice;

similarly here

[...]

Quoted 10 lines

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 968

Quoted 8 lines

+&pcie0 {

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +7 -0
+	perst-gpios = <&tlmm 87 GPIO_ACTIVE_LOW>;
+	wake-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>;
+
+	pinctrl-0 = <&pcie0_clkreq_n>, <&pcie0_reset_n>, <&pcie0_wake_n>;
+	pinctrl-names = "default";
+
+	status = "okay";

Is there anything interesting connected to these buses?

PCIe0 is routed to the onboard NVMe slot. PCIe1 is routed to the modular HAT connector, where the attached endpoint depends on the HAT module, for example Ethernet or USB.

Quoted 2 lines

Konrad

author
#7 lore raw

v2 cover arm64: dts: qcom: Add Vicharak Axon Mini

In reply to Ajit Singh

Add initial support for the Vicharak Axon Mini, a QCS6490-based single-board computer.

This series adds the Vicharak vendor prefix, documents the board compatible, and adds the initial board DTS.

Tested:
- debug UART
- eMMC
- UFS
- SDIO WLAN
- USB 2.0 host
- PCIe

Changes in v2:
- Drop unused Type-C VBUS regulator.
- Drop invalid camera thermal zone.
- Drop incorrect PM8350C thermal alarm override.
- Fix PCIe1 3.3 V regulator name.
- Drop redundant EUD disable override.
- Keep ICE disabled due to fatal SError during qcom_ice_create().
- Fix pinctrl property ordering.
- Sort top-level label references.
- Add blank lines before status properties.

Ajit Singh (3):
dt-bindings: vendor-prefixes: Add prefix for Vicharak
dt-bindings: arm: qcom: Add Vicharak Axon Mini
arm64: dts: qcom: Add Vicharak Axon Mini

 .../devicetree/bindings/arm/qcom.yaml         |    1 +
 .../devicetree/bindings/vendor-prefixes.yaml  |    2 +
 arch/arm64/boot/dts/qcom/Makefile             |    1 +
 .../dts/qcom/qcs6490-vicharak-axon-mini.dts   | 1055 +++++++++++++++++
 4 files changed, 1059 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts
Signature · 1 line
2.50.1 (Apple Git-155)
author
#8 lore raw

PATCH v2 1/3 dt-bindings: vendor-prefixes: Add prefix for Vicharak

In reply to Ajit Singh

Vicharak develops computing platforms and manufactures single-board computers, including FPGA-integrated SBCs. Add a vendor prefix for them.

---
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/vendor-prefixes.yaml +2 -0
index ee7fd3cfe203..1948356337b9 100644
@@ -1767,6 +1767,8 @@ patternProperties:
     description: VIA Technologies, Inc.
   "^vialab,.*":
     description: VIA Labs, Inc.
+  "^vicharak,.*":
+    description: Vicharak Computers Pvt. Ltd.
   "^vicor,.*":
     description: Vicor Corporation
   "^videostrong,.*":
Signature · 1 line
2.50.1 (Apple Git-155)
Acked-by on v2 1/3
#9 lore raw

Re: [PATCH v2 1/3] dt-bindings: vendor-prefixes: Add prefix for Vicharak

Quoted 7 lines · Ajit Singh

Vicharak develops computing platforms and manufactures single-board computers, including FPGA-integrated SBCs. Add a vendor prefix for them.

Do not attach (thread) your patchsets to some other threads (unrelated or older versions). This buries them deep in the mailbox and might interfere with applying entire sets. See also:
https://elixir.bootlin.com/linux/v6.16-rc2/source/Documentation/process/submitting-patches.rst#L830

Best regards,
Krzysztof

author
#10 lore raw

PATCH v2 2/3 dt-bindings: arm: qcom: Add Vicharak Axon Mini

In reply to Ajit Singh

The Vicharak Axon Mini is a single-board computer based on the Qualcomm QCM6490 platform.

Add the top-level compatible string for this board.

---
 Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/qcom.yaml +1 -0
index d48c625d3fc4..6924bfe7b949 100644
@@ -361,6 +361,7 @@ properties:
               - radxa,dragon-q6a
               - shift,otter
               - thundercomm,rubikpi3
+              - vicharak,axon-mini
           - const: qcom,qcm6490
 
       - description: Qualcomm Technologies, Inc. Distributed Unit 1000 platform
Signature · 1 line
2.50.1 (Apple Git-155)
Acked-by on v2 2/3
#11 lore raw

Re: [PATCH v2 2/3] dt-bindings: arm: qcom: Add Vicharak Axon Mini

Quoted 9 lines · Ajit Singh

The Vicharak Axon Mini is a single-board computer based on the Qualcomm QCM6490 platform.

Add the top-level compatible string for this board.

---
 Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
 1 file changed, 1 insertion(+)

<form letter>
This is an automated instruction, just in case, because many review tags are being ignored. If you know the process, just skip it entirely (please do not feel offended by me posting it here - no bad intentions intended, no patronizing, I just want to avoid wasted efforts). If you do not know the process, here is a short explanation:

Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions of patchset, under or above your Signed-off-by tag, unless patch changed significantly (e.g. new properties added to the DT bindings). Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here ('b4 trailers -u ...'). However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply.

https://elixir.bootlin.com/linux/v6.15/source/Documentation/process/submitting-patches.rst#L591
</form letter>

Best regards,
Krzysztof

author
#12 lore raw

PATCH v2 3/3 arm64: dts: qcom: Add Vicharak Axon Mini

In reply to Ajit Singh

Add DTS for the Vicharak Axon Mini board based on the Qualcomm QCS6490 SoC.

This adds debug UART, eMMC, UFS, SDIO WLAN, USB 2.0 host, PCIe support along with regulators.

---
 arch/arm64/boot/dts/qcom/Makefile             |    1 +
 .../dts/qcom/qcs6490-vicharak-axon-mini.dts   | 1055 +++++++++++++++++
 2 files changed, 1056 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index f80b5d9cf1e8..d8d04dc88e08 100644
@@ -146,6 +146,7 @@ qcs6490-rb3gen2-industrial-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-industrial-mezzanine.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-vision-mezzanine.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-thundercomm-rubikpi3.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-vicharak-axon-mini.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs8300-ride.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs8550-aim300-aiot.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs9100-ride.dtb
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +1055 -0

1,055 lines not on this page · raw message

Signature · 1 line
2.50.1 (Apple Git-155)
#13 lore raw
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: - [Medium] The PCIe endpoints lack their power supply definitions (`vddpe-3v3-supply`), relying instead on…

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] The PCIe endpoints lack their power supply definitions (vddpe-3v3-supply), relying instead on regulator-always-on.
- [Medium] The USB 2.0 host controller lacks its VBUS power supply definition (vbus-supply), relying instead on regulator-always-on. --

commit 9bf522377749eb6ea3477116679a7d9817103a9f
Author: Ajit Singh <[email protected]>

arm64: dts: qcom: Add Vicharak Axon Mini

Add DTS for the Vicharak Axon Mini board based on the Qualcomm QCS6490 SoC. This adds debug UART, eMMC, UFS, SDIO WLAN, USB 2.0 host, PCIe support along with regulators.

Quoted 5 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +0 -0
new file mode 100644
index 0000000000000..e9d54804ade1d

[ ... ]

Quoted 53 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +53 -0
+	vcc_5v0_usb2_0: regulator-vcc-5v0-usb2-0 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_5v0_usb2_0";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		vin-supply = <&vcc_5v0>;
+
+		gpio = <&tlmm 117 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&vcc5v0_usb2_0_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	vcc_pcie1_3v3: regulator-vcc-pcie1-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_pcie1_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		vin-supply = <&vcc_5v0>;
+
+		gpio = <&tlmm 115 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&vcc_pcie1_3v3_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	vcc_pcie0_dsi_3v3: regulator-vcc-pcie0-dsi-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_pcie0_dsi_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		vin-supply = <&vcc_5v0>;
+
+		gpio = <&tlmm 114 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&vcc_pcie0_dsi_3v3_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+		regulator-always-on;
+	};

[ ... ]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 698

Quoted 9 lines

+&pcie0 {

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +8 -0
+	perst-gpios = <&tlmm 87 GPIO_ACTIVE_LOW>;
+	wake-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>;
+
+	pinctrl-0 = <&pcie0_clkreq_n>, <&pcie0_reset_n>, <&pcie0_wake_n>;
+	pinctrl-names = "default";
+
+	status = "okay";
+};

Can the &pcie0 node properly power-manage its endpoint without a vddpe-3v3-supply property?

The device tree defines vcc_pcie0_dsi_3v3 with regulator-always-on and doesn't link it here. This breaks proper PCIe power management, as the driver cannot turn power off during suspend or reset sequences.

[ ... ]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 720

Quoted 9 lines

+&pcie1 {

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +8 -0
+	perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+	wake-gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>;
+
+	pinctrl-0 = <&pcie1_reset_n>, <&pcie1_wake_n>, <&pcie1_clkreq_n>;
+	pinctrl-names = "default";
+
+	status = "okay";
+};

Similarly here, should vcc_pcie1_3v3 be referenced as vddpe-3v3-supply for the &pcie1 node instead of relying on regulator-always-on?

[ ... ]

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 1043

Quoted 5 lines

+&usb_2 {

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +4 -0
+	dr_mode = "host";
+
+	status = "okay";
+};

Does the USB 2.0 host controller need a vbus-supply reference here?

The device tree defines vcc_5v0_usb2_0 as a 5V regulator but relies on regulator-always-on instead of referencing it as vbus-supply (typically via a usb-a-connector child node). Without this linkage, the USB driver cannot control VBUS power when the port is inactive or suspended.

Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=3
#14 lore raw
In reply to Ajit Singh
Quoted 20 lines · Ajit Singh
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +20 -0
+		sdm-skin-thermal {
+			polling-delay-passive = <0>;
+
+			thermal-sensors = <&pmk8350_adc_tm 3>;
+
+			trips {
+				active-config0 {
+					temperature = <125000>;
+					hysteresis = <1000>;
+					type = "passive";
+				};
+			};
+		};
+
+		xo-thermal {
+			polling-delay-passive = <0>;
+
+			thermal-sensors = <&pmk8350_adc_tm 0>;
+
+			trips {

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 231

Quoted 10 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +10 -0
+				active-config0 {
+					temperature = <125000>;
+					hysteresis = <1000>;
+					type = "passive";
+				};
+			};
+		};
+	};
+
+	vcc_1v8: regulator-vcc-1v8 {

Drop node, unused.

Quoted 20 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +20 -0
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_1v8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+
+		vin-supply = <&vcc_5v0>;
+
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	vcc_3v3: regulator-vcc-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		vin-supply = <&vcc_5v0>;
+
+		gpio = <&tlmm 113 GPIO_ACTIVE_HIGH>;

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 261

Quoted 10 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +10 -0
+		enable-active-high;
+
+		pinctrl-0 = <&vcc_3v3_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	vcc_5v0: regulator-vcc-5v-peri {

Drop node, unused.

arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts line 271

Quoted 10 lines
arch/arm64/boot/dts/qcom/qcs6490-vicharak-axon-mini.dts new file +10 -0
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_5v0";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+
+		vin-supply = <&vph_pwr>;
+
+		regulator-boot-on;
+		regulator-always-on;
+	};

Best regards,
Krzysztof