* [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2
@ 2026-02-06 14:50 Neil Armstrong
2026-02-06 14:50 ` [PATCH v3 1/9] dt-bindings: usb: document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller Neil Armstrong
` (9 more replies)
0 siblings, 10 replies; 29+ messages in thread
From: Neil Armstrong @ 2026-02-06 14:50 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio
Cc: linux-usb, devicetree, linux-kernel, linux-renesas-soc, linux-pci,
linux-arm-msm, Neil Armstrong, Krzysztof Kozlowski, Konrad Dybcio,
Dmitry Baryshkov, KancyJoe
The Ayaneo Pocket S2 is a gaming console based on the Qualcomm
Snapdragon 8 Gen 3. It has an internal UFS storage, WiFi,
Bluetooth, gaming buttons, SDCard, 2K display and USB-C
connector.
Product Page [1].
The Initial linux port was done by KancyJoe (Sunflower2333)
at [2].
[1] https://www.ayaneo.com/goods/9344082149621
[2] https://github.com/sunflower2333/linux/tree/master
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
Changes in v3:
- Made renesas,upd720201-pci bindings supplies required
- Fixed description and example of renesas,upd720201-pci bindings
- Renamed slot to generic, added renesas,upd720201-pci entry
- Used PMIC_GPIO_STRENGTH_LOW instead of numbers
- Removed all output-low in pinconf
- Link to v2: https://patch.msgid.link/20260127-topic-sm8650-ayaneo-pocket-s2-base-v2-0-c55ec1b5d8bf@linaro.org
Changes in v2:
- Add proper regulators for the USB controller, with bindings & power ctrl
- Add proper regulators for FAN
- Dropped support for headset over USB-C, audio is connected to a jack port
- Cleaned up Audio routing and fixed the DP endpoint index
- Added i2c clk frequencies
- Renamed fan node and used interrupts-extended
- Dropped the usb-c self-powered
- Reordered nodes alphabetically
- Renamed pcieport1 to pcie1_port0
- Link to v1: https://patch.msgid.link/20260121-topic-sm8650-ayaneo-pocket-s2-base-v1-0-bb3f95f1c085@linaro.org
---
KancyJoe (1):
arm64: dts: qcom: add basic devicetree for Ayaneo Pocket S2 gaming console
Neil Armstrong (8):
dt-bindings: usb: document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller
pci: pwrctrl: slot: fix dev_err_probe() usage
pci: pwrctrl: rename pci-pwrctrl-slot as generic
pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
arm64: defconfig: enable pci-pwrctrl-generic as module
dt-binding: vendor-prefixes: document the Ayaneo brand
dt-bindings: arm: qcom: document the Ayaneo Pocket S2
arm64: dts: qcom: sm8650: Add sound DAI prefix for DP
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
.../bindings/usb/renesas,upd720201-pci.yaml | 61 +
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts | 1551 ++++++++++++++++++++
arch/arm64/boot/dts/qcom/sm8650.dtsi | 47 +-
arch/arm64/configs/defconfig | 1 +
drivers/pci/pwrctrl/Kconfig | 8 +-
drivers/pci/pwrctrl/Makefile | 4 +-
drivers/pci/pwrctrl/{slot.c => generic.c} | 16 +-
10 files changed, 1655 insertions(+), 37 deletions(-)
---
base-commit: 8efd812b03edcd5fff1b3a36c0277b2d1397712d
change-id: 20260121-topic-sm8650-ayaneo-pocket-s2-base-05c348efd86d
Best regards,
--
Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v3 1/9] dt-bindings: usb: document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-06 14:50 [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Neil Armstrong
@ 2026-02-06 14:50 ` Neil Armstrong
2026-02-10 2:37 ` Rob Herring (Arm)
2026-02-12 15:17 ` Bjorn Andersson
2026-02-06 14:50 ` [PATCH v3 2/9] pci: pwrctrl: slot: fix dev_err_probe() usage Neil Armstrong
` (8 subsequent siblings)
9 siblings, 2 replies; 29+ messages in thread
From: Neil Armstrong @ 2026-02-06 14:50 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio
Cc: linux-usb, devicetree, linux-kernel, linux-renesas-soc, linux-pci,
linux-arm-msm, Neil Armstrong
Document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller,
which connects over PCIe and requires specific power supplies to
start up.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
.../bindings/usb/renesas,upd720201-pci.yaml | 61 ++++++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/Documentation/devicetree/bindings/usb/renesas,upd720201-pci.yaml b/Documentation/devicetree/bindings/usb/renesas,upd720201-pci.yaml
new file mode 100644
index 000000000000..34acee62cdd2
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/renesas,upd720201-pci.yaml
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/renesas,upd720201-pci.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: UPD720201/UPD720202 USB 3.0 xHCI Host Controller (PCIe)
+
+maintainers:
+ - Neil Armstrong <neil.armstrong@linaro.org>
+
+description:
+ UPD720201 USB 3.0 xHCI Host Controller via PCIe x1 Gen2 interface.
+ The UPD720202 supports up to two downstream ports, while UPD720201
+ supports up to four downstream USB 3.0 rev1.0 ports.
+
+properties:
+ compatible:
+ const: pci1912,0014
+
+ reg:
+ maxItems: 1
+
+ avdd33-supply:
+ description: +3.3 V power supply for analog circuit
+
+ vdd10-supply:
+ description: +1.05 V power supply
+
+ vdd33-supply:
+ description: +3.3 V power supply
+
+required:
+ - compatible
+ - reg
+ - avdd33-supply
+ - vdd10-supply
+ - vdd33-supply
+
+allOf:
+ - $ref: usb-xhci.yaml
+
+additionalProperties: false
+
+examples:
+ - |
+ pcie@0 {
+ reg = <0x0 0x1000>;
+ ranges = <0x02000000 0x0 0x100000 0x10000000 0x0 0x0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ device_type = "pci";
+
+ usb-controller@0 {
+ compatible = "pci1912,0014";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+ avdd33-supply = <&avdd33_reg>;
+ vdd10-supply = <&vdd10_reg>;
+ vdd33-supply = <&vdd33_reg>;
+ };
+ };
--
2.34.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v3 2/9] pci: pwrctrl: slot: fix dev_err_probe() usage
2026-02-06 14:50 [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Neil Armstrong
2026-02-06 14:50 ` [PATCH v3 1/9] dt-bindings: usb: document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller Neil Armstrong
@ 2026-02-06 14:50 ` Neil Armstrong
2026-02-06 15:13 ` Bartosz Golaszewski
2026-02-06 14:50 ` [PATCH v3 3/9] pci: pwrctrl: rename pci-pwrctrl-slot as generic Neil Armstrong
` (7 subsequent siblings)
9 siblings, 1 reply; 29+ messages in thread
From: Neil Armstrong @ 2026-02-06 14:50 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio
Cc: linux-usb, devicetree, linux-kernel, linux-renesas-soc, linux-pci,
linux-arm-msm, Neil Armstrong
The code was not returning dev_err_probe() but dev_err_probe()
returns the error code, so simplify the code.
Suggested-by: Bartosz Golaszewski <brgl@kernel.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
drivers/pci/pwrctrl/slot.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/slot.c
index 3320494b62d8..08e53243cdbd 100644
--- a/drivers/pci/pwrctrl/slot.c
+++ b/drivers/pci/pwrctrl/slot.c
@@ -40,17 +40,14 @@ static int pci_pwrctrl_slot_probe(struct platform_device *pdev)
ret = of_regulator_bulk_get_all(dev, dev_of_node(dev),
&slot->supplies);
- if (ret < 0) {
- dev_err_probe(dev, ret, "Failed to get slot regulators\n");
- return ret;
- }
+ if (ret < 0)
+ return dev_err_probe(dev, ret, "Failed to get slot regulators\n");
slot->num_supplies = ret;
ret = regulator_bulk_enable(slot->num_supplies, slot->supplies);
if (ret < 0) {
- dev_err_probe(dev, ret, "Failed to enable slot regulators\n");
regulator_bulk_free(slot->num_supplies, slot->supplies);
- return ret;
+ return dev_err_probe(dev, ret, "Failed to enable slot regulators\n");
}
ret = devm_add_action_or_reset(dev, devm_pci_pwrctrl_slot_power_off,
@@ -59,10 +56,9 @@ static int pci_pwrctrl_slot_probe(struct platform_device *pdev)
return ret;
clk = devm_clk_get_optional_enabled(dev, NULL);
- if (IS_ERR(clk)) {
+ if (IS_ERR(clk))
return dev_err_probe(dev, PTR_ERR(clk),
"Failed to enable slot clock\n");
- }
pci_pwrctrl_init(&slot->ctx, dev);
--
2.34.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v3 3/9] pci: pwrctrl: rename pci-pwrctrl-slot as generic
2026-02-06 14:50 [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Neil Armstrong
2026-02-06 14:50 ` [PATCH v3 1/9] dt-bindings: usb: document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller Neil Armstrong
2026-02-06 14:50 ` [PATCH v3 2/9] pci: pwrctrl: slot: fix dev_err_probe() usage Neil Armstrong
@ 2026-02-06 14:50 ` Neil Armstrong
2026-02-09 11:31 ` Manivannan Sadhasivam
2026-02-09 11:33 ` Manivannan Sadhasivam
2026-02-06 14:50 ` [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller Neil Armstrong
` (6 subsequent siblings)
9 siblings, 2 replies; 29+ messages in thread
From: Neil Armstrong @ 2026-02-06 14:50 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio
Cc: linux-usb, devicetree, linux-kernel, linux-renesas-soc, linux-pci,
linux-arm-msm, Neil Armstrong
The driver is pretty generic and would fit for either
PCI Slots or PCI devices connected to PCI ports, so rename
the driver and module as pci-pwrctrl-generic.
Suggested-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
drivers/pci/pwrctrl/Kconfig | 8 ++++----
drivers/pci/pwrctrl/Makefile | 4 ++--
drivers/pci/pwrctrl/{slot.c => generic.c} | 0
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/pci/pwrctrl/Kconfig b/drivers/pci/pwrctrl/Kconfig
index e0f999f299bb..0a93ac4cd11b 100644
--- a/drivers/pci/pwrctrl/Kconfig
+++ b/drivers/pci/pwrctrl/Kconfig
@@ -11,12 +11,12 @@ config PCI_PWRCTRL_PWRSEQ
select POWER_SEQUENCING
select PCI_PWRCTRL
-config PCI_PWRCTRL_SLOT
- tristate "PCI Power Control driver for PCI slots"
+config PCI_PWRCTRL_GENERIC
+ tristate "Generic PCI Power Control driver for PCI slots"
select PCI_PWRCTRL
help
- Say Y here to enable the PCI Power Control driver to control the power
- state of PCI slots.
+ Say Y here to enable the generic PCI Power Control driver to control
+ the power state of PCI slots.
This is a generic driver that controls the power state of different
PCI slots. The voltage regulators powering the rails of the PCI slots
diff --git a/drivers/pci/pwrctrl/Makefile b/drivers/pci/pwrctrl/Makefile
index 13b02282106c..f6bb4fb9a410 100644
--- a/drivers/pci/pwrctrl/Makefile
+++ b/drivers/pci/pwrctrl/Makefile
@@ -5,7 +5,7 @@ pci-pwrctrl-core-y := core.o
obj-$(CONFIG_PCI_PWRCTRL_PWRSEQ) += pci-pwrctrl-pwrseq.o
-obj-$(CONFIG_PCI_PWRCTRL_SLOT) += pci-pwrctrl-slot.o
-pci-pwrctrl-slot-y := slot.o
+obj-$(CONFIG_PCI_PWRCTRL_GENERIC) += pci-pwrctrl-generic.o
+pci-pwrctrl-generic-y := generic.o
obj-$(CONFIG_PCI_PWRCTRL_TC9563) += pci-pwrctrl-tc9563.o
diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/generic.c
similarity index 100%
rename from drivers/pci/pwrctrl/slot.c
rename to drivers/pci/pwrctrl/generic.c
--
2.34.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-06 14:50 [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Neil Armstrong
` (2 preceding siblings ...)
2026-02-06 14:50 ` [PATCH v3 3/9] pci: pwrctrl: rename pci-pwrctrl-slot as generic Neil Armstrong
@ 2026-02-06 14:50 ` Neil Armstrong
2026-02-09 11:30 ` Manivannan Sadhasivam
2026-02-06 14:50 ` [PATCH v3 5/9] arm64: defconfig: enable pci-pwrctrl-generic as module Neil Armstrong
` (5 subsequent siblings)
9 siblings, 1 reply; 29+ messages in thread
From: Neil Armstrong @ 2026-02-06 14:50 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio
Cc: linux-usb, devicetree, linux-kernel, linux-renesas-soc, linux-pci,
linux-arm-msm, Neil Armstrong
Enable the generic pwrctrl driver to control the power of the
PCIe UPD720201/UPD720202 USB 3.0 xHCI Host Controller.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
drivers/pci/pwrctrl/generic.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/pci/pwrctrl/generic.c b/drivers/pci/pwrctrl/generic.c
index 08e53243cdbd..4a57a631362f 100644
--- a/drivers/pci/pwrctrl/generic.c
+++ b/drivers/pci/pwrctrl/generic.c
@@ -73,6 +73,10 @@ static const struct of_device_id pci_pwrctrl_slot_of_match[] = {
{
.compatible = "pciclass,0604",
},
+ /* Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller */
+ {
+ .compatible = "pci1912,0014",
+ },
{ }
};
MODULE_DEVICE_TABLE(of, pci_pwrctrl_slot_of_match);
--
2.34.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v3 5/9] arm64: defconfig: enable pci-pwrctrl-generic as module
2026-02-06 14:50 [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Neil Armstrong
` (3 preceding siblings ...)
2026-02-06 14:50 ` [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller Neil Armstrong
@ 2026-02-06 14:50 ` Neil Armstrong
2026-02-09 11:32 ` Manivannan Sadhasivam
2026-02-06 14:50 ` [PATCH v3 6/9] dt-binding: vendor-prefixes: document the Ayaneo brand Neil Armstrong
` (4 subsequent siblings)
9 siblings, 1 reply; 29+ messages in thread
From: Neil Armstrong @ 2026-02-06 14:50 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio
Cc: linux-usb, devicetree, linux-kernel, linux-renesas-soc, linux-pci,
linux-arm-msm, Neil Armstrong
Enable the generic power control driver module since it's required
to power up the PCIe USB3 controller found on the Ayaneo Pocket S2
gaming console.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
arch/arm64/configs/defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 35e9eb180c9a..5efcd4943a4b 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -250,6 +250,7 @@ CONFIG_PCIE_LAYERSCAPE_GEN4=y
CONFIG_PCI_ENDPOINT=y
CONFIG_PCI_ENDPOINT_CONFIGFS=y
CONFIG_PCI_EPF_TEST=m
+CONFIG_PCI_PWRCTRL_GENERIC=m
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_FW_LOADER_USER_HELPER=y
--
2.34.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v3 6/9] dt-binding: vendor-prefixes: document the Ayaneo brand
2026-02-06 14:50 [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Neil Armstrong
` (4 preceding siblings ...)
2026-02-06 14:50 ` [PATCH v3 5/9] arm64: defconfig: enable pci-pwrctrl-generic as module Neil Armstrong
@ 2026-02-06 14:50 ` Neil Armstrong
2026-02-06 14:50 ` [PATCH v3 7/9] dt-bindings: arm: qcom: document the Ayaneo Pocket S2 Neil Armstrong
` (3 subsequent siblings)
9 siblings, 0 replies; 29+ messages in thread
From: Neil Armstrong @ 2026-02-06 14:50 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio
Cc: linux-usb, devicetree, linux-kernel, linux-renesas-soc, linux-pci,
linux-arm-msm, Neil Armstrong, Krzysztof Kozlowski
Document the Ayaneo from the Anyun Intelligent Technology
(Hong Kong) Co., Ltd company.
Website: https://www.ayaneo.com/product/ayaneobrand.html
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index c7591b2aec2a..45fb1a3a3a06 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -217,6 +217,8 @@ patternProperties:
description: Axiado Corporation
"^axis,.*":
description: Axis Communications AB
+ "^ayaneo,.*":
+ description: Anyun Intelligent Technology (Hong Kong) Co., Ltd
"^azoteq,.*":
description: Azoteq (Pty) Ltd
"^azw,.*":
--
2.34.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v3 7/9] dt-bindings: arm: qcom: document the Ayaneo Pocket S2
2026-02-06 14:50 [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Neil Armstrong
` (5 preceding siblings ...)
2026-02-06 14:50 ` [PATCH v3 6/9] dt-binding: vendor-prefixes: document the Ayaneo brand Neil Armstrong
@ 2026-02-06 14:50 ` Neil Armstrong
2026-02-06 23:16 ` Rob Herring (Arm)
2026-02-06 14:50 ` [PATCH v3 8/9] arm64: dts: qcom: sm8650: Add sound DAI prefix for DP Neil Armstrong
` (2 subsequent siblings)
9 siblings, 1 reply; 29+ messages in thread
From: Neil Armstrong @ 2026-02-06 14:50 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio
Cc: linux-usb, devicetree, linux-kernel, linux-renesas-soc, linux-pci,
linux-arm-msm, Neil Armstrong
Document the Qualcomm SM8650 based Ayaneo Pocket S2 gaming console.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index d84bd3bca201..351cc2eff14a 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1042,6 +1042,7 @@ properties:
- items:
- enum:
+ - ayaneo,pocket-s2
- qcom,sm8650-hdk
- qcom,sm8650-mtp
- qcom,sm8650-qrd
--
2.34.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v3 8/9] arm64: dts: qcom: sm8650: Add sound DAI prefix for DP
2026-02-06 14:50 [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Neil Armstrong
` (6 preceding siblings ...)
2026-02-06 14:50 ` [PATCH v3 7/9] dt-bindings: arm: qcom: document the Ayaneo Pocket S2 Neil Armstrong
@ 2026-02-06 14:50 ` Neil Armstrong
2026-02-06 14:50 ` [PATCH v3 9/9] arm64: dts: qcom: add basic devicetree for Ayaneo Pocket S2 gaming console Neil Armstrong
2026-02-06 21:35 ` [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Bjorn Helgaas
9 siblings, 0 replies; 29+ messages in thread
From: Neil Armstrong @ 2026-02-06 14:50 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio
Cc: linux-usb, devicetree, linux-kernel, linux-renesas-soc, linux-pci,
linux-arm-msm, Neil Armstrong, Konrad Dybcio, Dmitry Baryshkov
Sound DAI devices exposing same set of mixers, e.g. each DisplayPort
controller, need to add dedicated prefix for these mixers to avoid
conflicts and to allow ALSA to properly configure given instance.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8650.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
index a7a06f78e564..6098d6201002 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -5773,6 +5773,7 @@ mdss_dp0: displayport-controller@af54000 {
phy-names = "dp";
#sound-dai-cells = <0>;
+ sound-name-prefix = "DisplayPort0";
status = "disabled";
--
2.34.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v3 9/9] arm64: dts: qcom: add basic devicetree for Ayaneo Pocket S2 gaming console
2026-02-06 14:50 [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Neil Armstrong
` (7 preceding siblings ...)
2026-02-06 14:50 ` [PATCH v3 8/9] arm64: dts: qcom: sm8650: Add sound DAI prefix for DP Neil Armstrong
@ 2026-02-06 14:50 ` Neil Armstrong
2026-02-06 21:35 ` [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Bjorn Helgaas
9 siblings, 0 replies; 29+ messages in thread
From: Neil Armstrong @ 2026-02-06 14:50 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio
Cc: linux-usb, devicetree, linux-kernel, linux-renesas-soc, linux-pci,
linux-arm-msm, Neil Armstrong, KancyJoe, Konrad Dybcio
From: KancyJoe <kancy2333@outlook.com>
Add initial Device Tree for the Ayaneo Pocket S2 gaming console based
on the Qualcomm Snapdragon 8 Gen 3 platform.
The design is similar to a phone without the modem, the game control
is handled via a standalone controller connected to a PCIe USB
controller.
Display panel support will be added in a second time.
Signed-off-by: KancyJoe <kancy2333@outlook.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts | 1551 ++++++++++++++++++++
arch/arm64/boot/dts/qcom/sm8650.dtsi | 46 +-
3 files changed, 1575 insertions(+), 23 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6f34d5ed331c..1ba29755e5ba 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -313,6 +313,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8550-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-samsung-q5q.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-sony-xperia-yodo-pdx234.dtb
+dtb-$(CONFIG_ARCH_QCOM) += sm8650-ayaneo-pocket-s2.dtb
sm8650-hdk-display-card-dtbs := sm8650-hdk.dtb sm8650-hdk-display-card.dtbo
diff --git a/arch/arm64/boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts b/arch/arm64/boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts
new file mode 100644
index 000000000000..0dc994f4e48d
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm8650-ayaneo-pocket-s2.dts
@@ -0,0 +1,1551 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Linaro Limited
+ * Copyright (c) 2025, Kancy Joe <kancy2333@outlook.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8650.dtsi"
+#include "pm8550.dtsi"
+#include "pm8550b.dtsi"
+#define PMK8550VE_SID 8
+#include "pm8550ve.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+
+/delete-node/ &rmtfs_mem;
+/delete-node/ &hwfence_shbuf;
+
+/ {
+ model = "AYANEO Pocket S2 (Pro)";
+ compatible = "ayaneo,pocket-s2", "qcom,sm8650";
+ chassis-type = "handset";
+
+ aliases {
+ serial0 = &uart15;
+ serial1 = &uart14;
+ };
+
+ wcd939x: audio-codec {
+ compatible = "qcom,wcd9395-codec", "qcom,wcd9390-codec";
+
+ pinctrl-0 = <&wcd_default>;
+ pinctrl-names = "default";
+
+ qcom,micbias1-microvolt = <1800000>;
+ qcom,micbias2-microvolt = <1800000>;
+ qcom,micbias3-microvolt = <1800000>;
+ qcom,micbias4-microvolt = <1800000>;
+ qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
+ qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
+ qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
+ qcom,rx-device = <&wcd_rx>;
+ qcom,tx-device = <&wcd_tx>;
+
+ reset-gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+
+ vdd-buck-supply = <&vreg_l15b_1p8>;
+ vdd-rxtx-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l15b_1p8>;
+ vdd-mic-bias-supply = <&vreg_bob1>;
+
+ #sound-dai-cells = <1>;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ fan: fan {
+ compatible = "pwm-fan";
+
+ interrupts-extended = <&tlmm 14 IRQ_TYPE_EDGE_FALLING>;
+
+ pwms = <&pm8550_pwm 3 50000>;
+
+ fan-supply = <&fan_pwr>;
+
+ #cooling-cells = <2>;
+ cooling-levels = <0 16 32 45 60 80 105 130 155 180 205 230 255>;
+
+ pinctrl-0 = <&fan_int>, <&pwm_fan_ctrl_active>;
+ pinctrl-1 = <&pwm_fan_ctrl_sleep>;
+ pinctrl-names = "default", "sleep";
+ };
+
+ fan_pwr: fan-pwr-regulator {
+ compatible = "regulator-fixed";
+
+ regulator-name = "fan_pwr";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpios = <&tlmm 125 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ vin-supply = <&fan_vdd>;
+
+ pinctrl-0 = <&fan_pwr_pins>;
+ pinctrl-names = "default";
+ };
+
+ fan_vdd: fan-vdd-regulator {
+ compatible = "regulator-fixed";
+
+ regulator-name = "fan_vdd";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpios = <&tlmm 124 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ vin-supply = <&vph_pwr>;
+
+ pinctrl-0 = <&fan_vdd_pins>;
+ pinctrl-names = "default";
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&volume_up_n>;
+ pinctrl-names = "default";
+
+ key-volume-up {
+ label = "Volume Up";
+ linux,code = <KEY_VOLUMEUP>;
+ gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+ };
+
+ pmic-glink {
+ compatible = "qcom,sm8650-pmic-glink",
+ "qcom,sm8550-pmic-glink",
+ "qcom,pmic-glink";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ orientation-gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>;
+
+ connector@0 {
+ compatible = "usb-c-connector";
+ reg = <0>;
+
+ power-role = "dual";
+ data-role = "dual";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ pmic_glink_hs_in: endpoint {
+ remote-endpoint = <&usb_1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss_in: endpoint {
+ remote-endpoint = <&redriver_ss_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_sbu: endpoint {
+ remote-endpoint = <&wcd_usbss_sbu_mux>;
+ };
+ };
+ };
+ };
+ };
+
+ upd720201_avdd33_reg: upd720201-avdd33-regulator {
+ compatible = "regulator-fixed";
+
+ regulator-name = "upd720201_avdd33";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpios = <&tlmm 123 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ vin-supply = <&vph_pwr>;
+
+ pinctrl-0 = <&upd720201_avdd33>;
+ pinctrl-names = "default";
+ };
+
+ upd720201_vdd10_reg: upd720201-vdd10-regulator {
+ compatible = "regulator-fixed";
+
+ regulator-name = "upd720201_vdd10";
+ regulator-min-microvolt = <1050000>;
+ regulator-max-microvolt = <1050000>;
+
+ gpios = <&tlmm 122 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ vin-supply = <&vph_pwr>;
+
+ pinctrl-0 = <&upd720201_vdd10>;
+ pinctrl-names = "default";
+ };
+
+ upd720201_vdd33_reg: upd720201-vdd33-regulator {
+ compatible = "regulator-fixed";
+
+ regulator-name = "upd720201_vdd33";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ vin-supply = <&vph_pwr>;
+
+ pinctrl-0 = <&upd720201_vdd33>;
+ pinctrl-names = "default";
+ };
+
+ sound {
+ compatible = "qcom,sm8650-sndcard", "qcom,sm8450-sndcard";
+ model = "SM8650-APS2";
+ audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
+ "SpkrRight IN", "WSA_SPK2 OUT",
+ "IN1_HPHL", "HPHL_OUT",
+ "IN2_HPHR", "HPHR_OUT",
+ "AMIC1", "MIC BIAS1",
+ "AMIC2", "MIC BIAS2",
+ "AMIC3", "MIC BIAS3",
+ "AMIC4", "MIC BIAS3",
+ "AMIC5", "MIC BIAS4",
+ "TX SWR_INPUT0", "ADC1_OUTPUT",
+ "TX SWR_INPUT1", "ADC2_OUTPUT",
+ "TX SWR_INPUT7", "DMIC1_OUTPUT",
+ "TX SWR_INPUT8", "DMIC2_OUTPUT";
+
+ wcd-playback-dai-link {
+ link-name = "WCD Playback";
+
+ codec {
+ sound-dai = <&wcd939x 0>,
+ <&swr1 0>,
+ <&lpass_rxmacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wcd-capture-dai-link {
+ link-name = "WCD Capture";
+ codec {
+ sound-dai = <&wcd939x 1>,
+ <&swr2 0>,
+ <&lpass_txmacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
+ };
+
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wsa-dai-link {
+ link-name = "WSA Playback";
+
+ codec {
+ sound-dai = <&right_spkr>,
+ <&left_spkr>,
+ <&swr3 0>,
+ <&lpass_wsa2macro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ va-dai-link {
+ link-name = "VA Capture";
+
+ codec {
+ sound-dai = <&lpass_vamacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ dp-dai-link {
+ link-name = "DisplayPort Playback";
+
+ codec {
+ sound-dai = <&mdss_dp0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai DISPLAY_PORT_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+ };
+
+ vph_pwr: vph-pwr-regulator {
+ compatible = "regulator-fixed";
+
+ regulator-name = "vph_pwr";
+ regulator-min-microvolt = <3700000>;
+ regulator-max-microvolt = <3700000>;
+
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ wcn7850-pmu {
+ compatible = "qcom,wcn7850-pmu";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlan_en>, <&bt_default>;
+
+ wlan-enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
+ bt-enable-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
+
+ vdd-supply = <&vreg_s4i_0p85>;
+ vddio-supply = <&vreg_l15b_1p8>;
+ vddio1p2-supply = <&vreg_l3c_1p2>;
+ vddaon-supply = <&vreg_s2c_0p8>;
+ vdddig-supply = <&vreg_s3c_0p9>;
+ vddrfa1p2-supply = <&vreg_s1c_1p2>;
+ vddrfa1p8-supply = <&vreg_s6c_1p8>;
+
+ clocks = <&rpmhcc RPMH_RF_CLK1>;
+
+ regulators {
+ vreg_pmu_rfa_cmn: ldo0 {
+ regulator-name = "vreg_pmu_rfa_cmn";
+ };
+
+ vreg_pmu_aon_0p59: ldo1 {
+ regulator-name = "vreg_pmu_aon_0p59";
+ };
+
+ vreg_pmu_wlcx_0p8: ldo2 {
+ regulator-name = "vreg_pmu_wlcx_0p8";
+ };
+
+ vreg_pmu_wlmx_0p85: ldo3 {
+ regulator-name = "vreg_pmu_wlmx_0p85";
+ };
+
+ vreg_pmu_btcmx_0p85: ldo4 {
+ regulator-name = "vreg_pmu_btcmx_0p85";
+ };
+
+ vreg_pmu_rfa_0p8: ldo5 {
+ regulator-name = "vreg_pmu_rfa_0p8";
+ };
+
+ vreg_pmu_rfa_1p2: ldo6 {
+ regulator-name = "vreg_pmu_rfa_1p2";
+ };
+
+ vreg_pmu_rfa_1p8: ldo7 {
+ regulator-name = "vreg_pmu_rfa_1p8";
+ };
+
+ vreg_pmu_pcie_0p9: ldo8 {
+ regulator-name = "vreg_pmu_pcie_0p9";
+ };
+
+ vreg_pmu_pcie_1p8: ldo9 {
+ regulator-name = "vreg_pmu_pcie_1p8";
+ };
+ };
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm8550-rpmh-regulators";
+
+ vdd-bob1-supply = <&vph_pwr>;
+ vdd-bob2-supply = <&vph_pwr>;
+ vdd-l2-l13-l14-supply = <&vreg_bob1>;
+ vdd-l3-supply = <&vreg_s1c_1p2>;
+ vdd-l5-l16-supply = <&vreg_bob1>;
+ vdd-l6-l7-supply = <&vreg_bob1>;
+ vdd-l8-l9-supply = <&vreg_bob1>;
+ vdd-l11-supply = <&vreg_s1c_1p2>;
+ vdd-l12-supply = <&vreg_s6c_1p8>;
+ vdd-l15-supply = <&vreg_s6c_1p8>;
+ vdd-l17-supply = <&vreg_bob2>;
+
+ qcom,pmic-id = "b";
+
+ vreg_bob1: bob1 {
+ regulator-name = "vreg_bob1";
+ regulator-min-microvolt = <3296000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob2: bob2 {
+ regulator-name = "vreg_bob2";
+ regulator-min-microvolt = <2720000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2b_3p0: ldo2 {
+ regulator-name = "vreg_l2b_3p0";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5b_3p1: ldo5 {
+ regulator-name = "vreg_l5b_3p1";
+ regulator-min-microvolt = <3104000>;
+ regulator-max-microvolt = <3104000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6b_1p8: ldo6 {
+ regulator-name = "vreg_l6b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7b_1p8: ldo7 {
+ regulator-name = "vreg_l7b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8b_1p8: ldo8 {
+ regulator-name = "vreg_l8b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9b_2p9: ldo9 {
+ regulator-name = "vreg_l9b_2p9";
+ regulator-min-microvolt = <2960000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l11b_1p2: ldo11 {
+ regulator-name = "vreg_l11b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12b_1p8: ldo12 {
+ regulator-name = "vreg_l12b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13b_3p0: ldo13 {
+ regulator-name = "vreg_l13b_3p0";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l14b_3p2: ldo14 {
+ regulator-name = "vreg_l14b_3p2";
+ regulator-min-microvolt = <3200000>;
+ regulator-max-microvolt = <3200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15b_1p8: ldo15 {
+ regulator-name = "vreg_l15b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l16b_2p8: ldo16 {
+ regulator-name = "vreg_l16b_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vreg_l17b_2p5: ldo17 {
+ regulator-name = "vreg_l17b_2p5";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <2504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+
+ vdd-l1-supply = <&vreg_s1c_1p2>;
+ vdd-l2-supply = <&vreg_s1c_1p2>;
+ vdd-l3-supply = <&vreg_s1c_1p2>;
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+ vdd-s3-supply = <&vph_pwr>;
+ vdd-s4-supply = <&vph_pwr>;
+ vdd-s5-supply = <&vph_pwr>;
+ vdd-s6-supply = <&vph_pwr>;
+
+ qcom,pmic-id = "c";
+
+ vreg_s1c_1p2: smps1 {
+ regulator-name = "vreg_s1c_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1348000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s2c_0p8: smps2 {
+ regulator-name = "vreg_s2c_0p8";
+ regulator-min-microvolt = <852000>;
+ regulator-max-microvolt = <1036000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s3c_0p9: smps3 {
+ regulator-name = "vreg_s3c_0p9";
+ regulator-min-microvolt = <976000>;
+ regulator-max-microvolt = <1064000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s4c_1p2: smps4 {
+ regulator-name = "vreg_s4c_1p2";
+ regulator-min-microvolt = <1224000>;
+ regulator-max-microvolt = <1280000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s5c_0p7: smps5 {
+ regulator-name = "vreg_s5c_0p7";
+ regulator-min-microvolt = <752000>;
+ regulator-max-microvolt = <900000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s6c_1p8: smps6 {
+ regulator-name = "vreg_s6c_1p8";
+ regulator-min-microvolt = <1856000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1c_1p2: ldo1 {
+ regulator-name = "vreg_l1c_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3c_1p2: ldo3 {
+ regulator-name = "vreg_l3c_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+
+ vdd-l1-supply = <&vreg_s3c_0p9>;
+
+ qcom,pmic-id = "d";
+
+ vreg_l1d_0p88: ldo1 {
+ regulator-name = "vreg_l1d_0p88";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-3 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+
+ vdd-l3-supply = <&vreg_s3c_0p9>;
+
+ qcom,pmic-id = "e";
+
+ vreg_l3e_0p9: ldo3 {
+ regulator-name = "vreg_l3e_0p9";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-4 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+
+ vdd-l1-supply = <&vreg_s3c_0p9>;
+ vdd-l3-supply = <&vreg_s3c_0p9>;
+
+ qcom,pmic-id = "g";
+
+ vreg_l1g_0p91: ldo1 {
+ regulator-name = "vreg_l1g_0p91";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3g_0p91: ldo3 {
+ regulator-name = "vreg_l3g_0p91";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-5 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+
+ vdd-l1-supply = <&vreg_s3c_0p9>;
+ vdd-l2-supply = <&vreg_s3c_0p9>;
+ vdd-l3-supply = <&vreg_s1c_1p2>;
+ vdd-s4-supply = <&vph_pwr>;
+
+ qcom,pmic-id = "i";
+
+ vreg_s4i_0p85: smps4 {
+ regulator-name = "vreg_s4i_0p85";
+ regulator-min-microvolt = <852000>;
+ regulator-max-microvolt = <1004000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1i_0p88: ldo1 {
+ regulator-name = "vreg_l1i_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2i_0p88: ldo2 {
+ regulator-name = "vreg_l2i_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3i_1p2: ldo3 {
+ regulator-name = "vreg_l3i_0p91";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&cpu2_top_thermal {
+ trips {
+ cpu2_active: cpu2-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ };
+
+ cooling-maps {
+ map {
+ trip = <&cpu2_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+};
+
+&cpu3_top_thermal {
+ trips {
+ cpu3_active: cpu3-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ };
+
+ cooling-maps {
+ map {
+ trip = <&cpu3_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+};
+
+&cpu4_top_thermal {
+ trips {
+ cpu4_active: cpu4-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ };
+
+ cooling-maps {
+ map {
+ trip = <&cpu4_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+};
+
+&cpu5_top_thermal {
+ trips {
+ cpu5_active: cpu5-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ };
+
+ cooling-maps {
+ map {
+ trip = <&cpu5_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+};
+
+&cpu6_top_thermal {
+ trips {
+ cpu6_active: cpu6-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ };
+
+ cooling-maps {
+ map {
+ trip = <&cpu6_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+};
+
+&cpu7_top_thermal {
+ trips {
+ cpu7_active: cpu7-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ };
+
+ cooling-maps {
+ map {
+ trip = <&cpu7_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+};
+
+&gpi_dma1 {
+ status = "okay";
+};
+
+&gpi_dma2 {
+ status = "okay";
+};
+
+&gpu0_cooling_maps {
+ map1 {
+ trip = <&gpu0_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+};
+
+&gpu1_cooling_maps {
+ map1 {
+ trip = <&gpu1_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+};
+
+&gpu2_cooling_maps {
+ map1 {
+ trip = <&gpu2_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+};
+
+&gpu3_cooling_maps {
+ map1 {
+ trip = <&gpu3_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+};
+
+&gpu4_cooling_maps {
+ map1 {
+ trip = <&gpu4_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+};
+
+&gpu5_cooling_maps {
+ map1 {
+ trip = <&gpu5_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+};
+
+&gpu6_cooling_maps {
+ map1 {
+ trip = <&gpu6_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+};
+
+&gpu7_cooling_maps {
+ map1 {
+ trip = <&gpu7_active>;
+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+};
+
+&gpu0_trips {
+ gpu0_active: trip-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+};
+
+&gpu1_trips {
+ gpu1_active: trip-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+};
+
+&gpu2_trips {
+ gpu2_active: trip-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+};
+
+&gpu3_trips {
+ gpu3_active: trip-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+};
+
+&gpu4_trips {
+ gpu4_active: trip-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+};
+
+&gpu5_trips {
+ gpu5_active: trip-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+};
+
+&gpu6_trips {
+ gpu6_active: trip-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+
+};
+
+&gpu7_trips {
+ gpu7_active: trip-active {
+ temperature = <38000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+};
+
+&i2c3 {
+ clock-frequency = <100000>;
+
+ status = "okay";
+
+ wcd_usbss: typec-mux@e {
+ compatible = "qcom,wcd9395-usbss", "qcom,wcd9390-usbss";
+ reg = <0xe>;
+
+ vdd-supply = <&vreg_l15b_1p8>;
+ reset-gpios = <&tlmm 152 GPIO_ACTIVE_HIGH>;
+
+ mode-switch;
+ orientation-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ wcd_usbss_sbu_mux: endpoint {
+ remote-endpoint = <&pmic_glink_sbu>;
+ };
+ };
+ };
+ };
+};
+
+&i2c6 {
+ clock-frequency = <100000>;
+
+ status = "okay";
+
+ typec-mux@1c {
+ compatible = "onnn,nb7vpq904m";
+ reg = <0x1c>;
+
+ vcc-supply = <&vreg_l15b_1p8>;
+
+ retimer-switch;
+ orientation-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ redriver_ss_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss_in>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ redriver_ss_in: endpoint {
+ remote-endpoint = <&usb_dp_qmpphy_out>;
+ };
+ };
+ };
+ };
+};
+
+&iris {
+ status = "okay";
+};
+
+&lpass_wsa2macro {
+ status = "okay";
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dp0 {
+ status = "okay";
+};
+
+&mdss_dp0_out {
+ status = "okay";
+};
+
+&pcie0 {
+ wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+ perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&pcie0_default_state>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcieport0 {
+ wifi@0 {
+ compatible = "pci17cb,1107";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+ vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+ };
+};
+
+&pcie0_phy {
+ vdda-phy-supply = <&vreg_l1i_0p88>;
+ vdda-pll-supply = <&vreg_l3i_1p2>;
+
+ status = "okay";
+};
+
+&pcie1 {
+ wake-gpios = <&tlmm 99 GPIO_ACTIVE_HIGH>;
+ perst-gpios = <&tlmm 97 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&pcie1_default_state>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie1_port0 {
+ /* Renesas μPD720201 PCIe USB3.0 HOST CONTROLLER */
+ usb-controller@0 {
+ compatible = "pci1912,0014";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ avdd33-supply = <&upd720201_avdd33_reg>;
+ vdd10-supply = <&upd720201_vdd10_reg>;
+ vdd33-supply = <&upd720201_vdd33_reg>;
+
+ pinctrl-0 = <&gamepad_pwr_en>;
+ pinctrl-names = "default";
+ };
+};
+
+&pcie1_phy {
+ vdda-phy-supply = <&vreg_l3e_0p9>;
+ vdda-pll-supply = <&vreg_l3i_1p2>;
+ vdda-qref-supply = <&vreg_l1i_0p88>;
+
+ status = "okay";
+};
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&pm8550_gpios {
+ volume_up_n: volume-up-n-state {
+ pins = "gpio6";
+ function = "normal";
+ bias-pull-up;
+ input-enable;
+ power-source = <1>;
+ };
+
+ pwm_fan_ctrl_active: pwm-fan-ctrl-active-state {
+ pins = "gpio9";
+ function = "func1";
+ bias-disable;
+ power-source = <0>;
+ qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+ };
+
+ pwm_fan_ctrl_sleep: pwm-fan-ctrl-sleep-state {
+ pins = "gpio9";
+ function = "normal";
+ output-high;
+ bias-disable;
+ power-source = <0>;
+ qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+ };
+
+ sdc2_card_det_n: sdc2-card-det-state {
+ pins = "gpio12";
+ function = "normal";
+ bias-pull-up;
+ input-enable;
+ output-disable;
+ power-source = <1>; /* 1.8 V */
+ };
+};
+
+&pm8550_pwm {
+ status = "okay";
+
+ multi-led {
+ color = <LED_COLOR_ID_RGB>;
+ function = LED_FUNCTION_STATUS;
+ label = "Power Status";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led@1 {
+ reg = <1>;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ led@2 {
+ reg = <2>;
+ color = <LED_COLOR_ID_GREEN>;
+ };
+
+ led@3 {
+ reg = <3>;
+ color = <LED_COLOR_ID_BLUE>;
+ };
+ };
+};
+
+&pm8550b_eusb2_repeater {
+ vdd18-supply = <&vreg_l15b_1p8>;
+ vdd3-supply = <&vreg_l5b_3p1>;
+};
+
+&qup_i2c3_data_clk {
+ /* Use internal I2C pull-up */
+ bias-pull-up = <2200>;
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&qupv3_id_1 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/sm8650/ayaneo/ps2/adsp.mbn",
+ "qcom/sm8650/ayaneo/ps2/adsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/sm8650/ayaneo/ps2/cdsp.mbn",
+ "qcom/sm8650/ayaneo/ps2/cdsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&reserved_memory {
+ lost_reg_mem: lost-reg-mem {
+ reg = <0 0x9b09c000 0 0x4000>;
+ no-map;
+ };
+
+ hwfence_shbuf: hwfence-shbuf@d4e23000 {
+ reg = <0 0xd4e23000 0 0x2dd000>;
+ no-map;
+ };
+
+ splash_region: splash-region {
+ label = "cont_splash_region";
+ reg = <0 0xd5100000 0 0x2b00000>;
+ no-map;
+ };
+};
+
+&sdhc_2 {
+ cd-gpios = <&pm8550_gpios 12 GPIO_ACTIVE_LOW>;
+
+ vmmc-supply = <&vreg_l9b_2p9>;
+ vqmmc-supply = <&vreg_l8b_1p8>;
+ bus-width = <4>;
+ no-sdio;
+ no-mmc;
+
+ pinctrl-0 = <&sdc2_default>, <&sdc2_card_det_n>;
+ pinctrl-1 = <&sdc2_sleep>, <&sdc2_card_det_n>;
+ pinctrl-names = "default", "sleep";
+
+ status = "okay";
+};
+
+&sleep_clk {
+ clock-frequency = <32764>;
+};
+
+&swr1 {
+ status = "okay";
+
+ /* WCD9395 RX */
+ wcd_rx: codec@0,4 {
+ compatible = "sdw20217010e00";
+ reg = <0 4>;
+
+ /*
+ * WCD9395 RX Port 1 (HPH_L/R) <=> SWR1 Port 1 (HPH_L/R)
+ * WCD9395 RX Port 2 (CLSH) <=> SWR1 Port 2 (CLSH)
+ * WCD9395 RX Port 3 (COMP_L/R) <=> SWR1 Port 3 (COMP_L/R)
+ * WCD9395 RX Port 4 (LO) <=> SWR1 Port 4 (LO)
+ * WCD9395 RX Port 5 (DSD_L/R) <=> SWR1 Port 5 (DSD_L/R)
+ * WCD9395 RX Port 6 (HIFI_PCM_L/R) <=> SWR1 Port 9 (HIFI_PCM_L/R)
+ */
+ qcom,rx-port-mapping = <1 2 3 4 5 9>;
+ };
+};
+
+&swr2 {
+ status = "okay";
+
+ /* WCD9395 TX */
+ wcd_tx: codec@0,3 {
+ compatible = "sdw20217010e00";
+ reg = <0 3>;
+
+ /*
+ * WCD9395 TX Port 1 (ADC1,2,3,4) <=> SWR2 Port 2 (TX SWR_INPUT 0,1,2,3)
+ * WCD9395 TX Port 2 (ADC3,4 & DMIC0,1) <=> SWR2 Port 2 (TX SWR_INPUT 0,1,2,3)
+ * WCD9395 TX Port 3 (DMIC0,1,2,3 & MBHC) <=> SWR2 Port 3 (TX SWR_INPUT 4,5,6,7)
+ * WCD9395 TX Port 4 (DMIC4,5,6,7) <=> SWR2 Port 4 (TX SWR_INPUT 8,9,10,11)
+ */
+ qcom,tx-port-mapping = <2 2 3 4>;
+ };
+};
+
+&swr3 {
+ status = "okay";
+
+ pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>;
+ pinctrl-names = "default";
+
+ /* WSA8845, Speaker Left */
+ left_spkr: speaker@0,0 {
+ compatible = "sdw20217020400";
+ reg = <0 0>;
+ #sound-dai-cells = <0>;
+ reset-gpios = <&tlmm 77 GPIO_ACTIVE_LOW>;
+ sound-name-prefix = "SpkrLeft";
+ vdd-1p8-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l3c_1p2>;
+
+ /*
+ * WSA8845 Port 1 (DAC) <=> SWR3 Port 1 (SPKR_L)
+ * WSA8845 Port 2 (COMP) <=> SWR3 Port 2 (SPKR_L_COMP)
+ * WSA8845 Port 3 (BOOST) <=> SWR3 Port 3 (SPKR_L_BOOST)
+ * WSA8845 Port 4 (PBR) <=> SWR3 Port 7 (PBR)
+ * WSA8845 Port 5 (VISENSE) <=> SWR3 Port 10 (SPKR_L_VI)
+ * WSA8845 Port 6 (CPS) <=> SWR3 Port 13 (CPS)
+ */
+ qcom,port-mapping = <1 2 3 7 10 13>;
+ };
+
+ /* WSA8845, Speaker Right */
+ right_spkr: speaker@0,1 {
+ compatible = "sdw20217020400";
+ reg = <0 1>;
+ #sound-dai-cells = <0>;
+ reset-gpios = <&tlmm 77 GPIO_ACTIVE_LOW>;
+ sound-name-prefix = "SpkrRight";
+ vdd-1p8-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l3c_1p2>;
+
+ /*
+ * WSA8845 Port 1 (DAC) <=> SWR3 Port 4 (SPKR_R)
+ * WSA8845 Port 2 (COMP) <=> SWR3 Port 5 (SPKR_R_COMP)
+ * WSA8845 Port 3 (BOOST) <=> SWR3 Port 6 (SPKR_R_BOOST)
+ * WSA8845 Port 4 (PBR) <=> SWR3 Port 7 (PBR)
+ * WSA8845 Port 5 (VISENSE) <=> SWR3 Port 11 (SPKR_R_VI)
+ * WSA8845 Port 6 (CPS) <=> SWR3 Port 13 (CPS)
+ */
+ qcom,port-mapping = <4 5 6 7 11 13>;
+ };
+};
+
+&tlmm {
+ /* Reserved I/Os for NFC */
+ gpio-reserved-ranges = <32 4>, <36 1>, <38 6>, <74 1>;
+
+ bt_default: bt-default-state {
+ bt-en-pins {
+ pins = "gpio17";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ sw-ctrl-pins {
+ pins = "gpio18";
+ function = "gpio";
+ bias-pull-down;
+ };
+ };
+
+ fan_pwr_pins: fan-pwr-state {
+ pins = "gpio125";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ fan_vdd_pins: fan-vdd-state {
+ pins = "gpio124";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ fan_int: fan-int-state {
+ pins = "gpio14";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ upd720201_avdd33: upd720201-avdd33-state {
+ pins = "gpio123";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ upd720201_vdd10: pd720201-vdd10-state {
+ pins = "gpio122";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ upd720201_vdd33: upd720201-vdd33-state {
+ pins = "gpio121";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ gamepad_pwr_en: gamepad-pwr-en-active-state {
+ pins = "gpio28";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ output-high;
+ };
+
+ spkr_23_sd_n_active: spkr-23-sd-n-active-state {
+ pins = "gpio77";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ spkr_01_sd_n_active: spkr-01-sd-n-active-state {
+ pins = "gpio21";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ wcd_default: wcd-reset-n-active-state {
+ pins = "gpio107";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ wlan_en: wlan-en-state {
+ pins = "gpio16";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+};
+
+&uart14 {
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn7850-bt";
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+
+ max-speed = <3200000>;
+ };
+};
+
+&uart15 {
+ status = "okay";
+};
+
+&ufs_mem_hc {
+ reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
+
+ vcc-supply = <&vreg_l17b_2p5>;
+ vcc-max-microamp = <1300000>;
+ vccq-supply = <&vreg_l1c_1p2>;
+ vccq-max-microamp = <1200000>;
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&vreg_l1d_0p88>;
+ vdda-pll-supply = <&vreg_l3i_1p2>;
+
+ status = "okay";
+};
+
+/*
+ * DPAUX -> WCD9395 -> USB_SBU -> USB-C
+ * eUSB2 DP/DM -> PM85550HS -> eUSB2 DP/DM -> WCD9395 -> USB-C
+ * USB SS -> NB7VPQ904MMUTWG -> USB-C
+ */
+
+&usb_1 {
+ dr_mode = "otg";
+ usb-role-switch;
+
+ status = "okay";
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_hsphy {
+ vdd-supply = <&vreg_l1i_0p88>;
+ vdda12-supply = <&vreg_l3i_1p2>;
+
+ phys = <&pm8550b_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_dp_qmpphy {
+ vdda-phy-supply = <&vreg_l3i_1p2>;
+ vdda-pll-supply = <&vreg_l3g_0p91>;
+
+ status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+ remote-endpoint = <&redriver_ss_in>;
+};
+
+&xo_board {
+ clock-frequency = <76800000>;
+};
diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
index 6098d6201002..bae8ce2e8ad5 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -3973,7 +3973,7 @@ opp-32000000-4 {
};
};
- pcie@0 {
+ pcie1_port0: pcie@0 {
device_type = "pci";
reg = <0x0 0x0 0x0 0x0 0x0>;
bus-range = <0x01 0xff>;
@@ -7603,7 +7603,7 @@ cpuss3-critical {
};
};
- cpu2-top-thermal {
+ cpu2_top_thermal: cpu2-top-thermal {
thermal-sensors = <&tsens0 5>;
trips {
@@ -7627,7 +7627,7 @@ cpu2-critical {
};
};
- cpu3-top-thermal {
+ cpu3_top_thermal: cpu3-top-thermal {
thermal-sensors = <&tsens0 7>;
trips {
@@ -7651,7 +7651,7 @@ cpu3-critical {
};
};
- cpu4-top-thermal {
+ cpu4_top_thermal: cpu4-top-thermal {
thermal-sensors = <&tsens0 9>;
trips {
@@ -7675,7 +7675,7 @@ cpu4-critical {
};
};
- cpu5-top-thermal {
+ cpu5_top_thermal: cpu5-top-thermal {
thermal-sensors = <&tsens0 11>;
trips {
@@ -7699,7 +7699,7 @@ cpu5-critical {
};
};
- cpu6-top-thermal {
+ cpu6_top_thermal: cpu6-top-thermal {
thermal-sensors = <&tsens0 13>;
trips {
@@ -7741,7 +7741,7 @@ aoss1-critical {
};
};
- cpu7-top-thermal {
+ cpu7_top_thermal: cpu7-top-thermal {
thermal-sensors = <&tsens1 1>;
trips {
@@ -8004,14 +8004,14 @@ gpuss0-thermal {
thermal-sensors = <&tsens2 1>;
- cooling-maps {
+ gpu0_cooling_maps: cooling-maps {
map0 {
trip = <&gpu0_alert0>;
cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
- trips {
+ gpu0_trips: trips {
gpu0_alert0: trip-point0 {
temperature = <95000>;
hysteresis = <1000>;
@@ -8037,14 +8037,14 @@ gpuss1-thermal {
thermal-sensors = <&tsens2 2>;
- cooling-maps {
+ gpu1_cooling_maps: cooling-maps {
map0 {
trip = <&gpu1_alert0>;
cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
- trips {
+ gpu1_trips: trips {
gpu1_alert0: trip-point0 {
temperature = <95000>;
hysteresis = <1000>;
@@ -8070,14 +8070,14 @@ gpuss2-thermal {
thermal-sensors = <&tsens2 3>;
- cooling-maps {
+ gpu2_cooling_maps: cooling-maps {
map0 {
trip = <&gpu2_alert0>;
cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
- trips {
+ gpu2_trips: trips {
gpu2_alert0: trip-point0 {
temperature = <95000>;
hysteresis = <1000>;
@@ -8103,14 +8103,14 @@ gpuss3-thermal {
thermal-sensors = <&tsens2 4>;
- cooling-maps {
+ gpu3_cooling_maps: cooling-maps {
map0 {
trip = <&gpu3_alert0>;
cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
- trips {
+ gpu3_trips: trips {
gpu3_alert0: trip-point0 {
temperature = <95000>;
hysteresis = <1000>;
@@ -8136,14 +8136,14 @@ gpuss4-thermal {
thermal-sensors = <&tsens2 5>;
- cooling-maps {
+ gpu4_cooling_maps: cooling-maps {
map0 {
trip = <&gpu4_alert0>;
cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
- trips {
+ gpu4_trips: trips {
gpu4_alert0: trip-point0 {
temperature = <95000>;
hysteresis = <1000>;
@@ -8169,14 +8169,14 @@ gpuss5-thermal {
thermal-sensors = <&tsens2 6>;
- cooling-maps {
+ gpu5_cooling_maps: cooling-maps {
map0 {
trip = <&gpu5_alert0>;
cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
- trips {
+ gpu5_trips: trips {
gpu5_alert0: trip-point0 {
temperature = <95000>;
hysteresis = <1000>;
@@ -8202,14 +8202,14 @@ gpuss6-thermal {
thermal-sensors = <&tsens2 7>;
- cooling-maps {
+ gpu6_cooling_maps: cooling-maps {
map0 {
trip = <&gpu6_alert0>;
cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
- trips {
+ gpu6_trips: trips {
gpu6_alert0: trip-point0 {
temperature = <95000>;
hysteresis = <1000>;
@@ -8235,14 +8235,14 @@ gpuss7-thermal {
thermal-sensors = <&tsens2 8>;
- cooling-maps {
+ gpu7_cooling_maps: cooling-maps {
map0 {
trip = <&gpu7_alert0>;
cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
- trips {
+ gpu7_trips: trips {
gpu7_alert0: trip-point0 {
temperature = <95000>;
hysteresis = <1000>;
--
2.34.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* Re: [PATCH v3 2/9] pci: pwrctrl: slot: fix dev_err_probe() usage
2026-02-06 14:50 ` [PATCH v3 2/9] pci: pwrctrl: slot: fix dev_err_probe() usage Neil Armstrong
@ 2026-02-06 15:13 ` Bartosz Golaszewski
0 siblings, 0 replies; 29+ messages in thread
From: Bartosz Golaszewski @ 2026-02-06 15:13 UTC (permalink / raw)
To: Neil Armstrong
Cc: linux-usb, devicetree, linux-kernel, linux-renesas-soc, linux-pci,
linux-arm-msm, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Bartosz Golaszewski, Manivannan Sadhasivam,
Bjorn Helgaas, Bjorn Andersson, Konrad Dybcio
On Fri, 6 Feb 2026 15:50:30 +0100, Neil Armstrong
<neil.armstrong@linaro.org> said:
> The code was not returning dev_err_probe() but dev_err_probe()
> returns the error code, so simplify the code.
>
> Suggested-by: Bartosz Golaszewski <brgl@kernel.org>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2
2026-02-06 14:50 [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Neil Armstrong
` (8 preceding siblings ...)
2026-02-06 14:50 ` [PATCH v3 9/9] arm64: dts: qcom: add basic devicetree for Ayaneo Pocket S2 gaming console Neil Armstrong
@ 2026-02-06 21:35 ` Bjorn Helgaas
2026-02-09 9:15 ` Neil Armstrong
9 siblings, 1 reply; 29+ messages in thread
From: Bjorn Helgaas @ 2026-02-06 21:35 UTC (permalink / raw)
To: Neil Armstrong
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio, linux-usb, devicetree,
linux-kernel, linux-renesas-soc, linux-pci, linux-arm-msm,
Krzysztof Kozlowski, Konrad Dybcio, Dmitry Baryshkov, KancyJoe
On Fri, Feb 06, 2026 at 03:50:28PM +0100, Neil Armstrong wrote:
> The Ayaneo Pocket S2 is a gaming console based on the Qualcomm
> Snapdragon 8 Gen 3. It has an internal UFS storage, WiFi,
> Bluetooth, gaming buttons, SDCard, 2K display and USB-C
> connector.
> pci: pwrctrl: slot: fix dev_err_probe() usage
> pci: pwrctrl: rename pci-pwrctrl-slot as generic
These look fine (but please update subject lines to follow past
history).
> pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
I don't see anything here specific to UPD720201/UPD720202. I don't
want a stream of patches to add more devices in the future. Is there
any better design?
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 7/9] dt-bindings: arm: qcom: document the Ayaneo Pocket S2
2026-02-06 14:50 ` [PATCH v3 7/9] dt-bindings: arm: qcom: document the Ayaneo Pocket S2 Neil Armstrong
@ 2026-02-06 23:16 ` Rob Herring (Arm)
0 siblings, 0 replies; 29+ messages in thread
From: Rob Herring (Arm) @ 2026-02-06 23:16 UTC (permalink / raw)
To: Neil Armstrong
Cc: Bjorn Andersson, Manivannan Sadhasivam, Greg Kroah-Hartman,
linux-usb, Krzysztof Kozlowski, Konrad Dybcio, linux-renesas-soc,
linux-kernel, Geert Uytterhoeven, Bjorn Helgaas, Conor Dooley,
Bartosz Golaszewski, linux-pci, devicetree, linux-arm-msm,
Magnus Damm
On Fri, 06 Feb 2026 15:50:35 +0100, Neil Armstrong wrote:
> Document the Qualcomm SM8650 based Ayaneo Pocket S2 gaming console.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2
2026-02-06 21:35 ` [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Bjorn Helgaas
@ 2026-02-09 9:15 ` Neil Armstrong
0 siblings, 0 replies; 29+ messages in thread
From: Neil Armstrong @ 2026-02-09 9:15 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Bjorn Andersson, Konrad Dybcio, linux-usb, devicetree,
linux-kernel, linux-renesas-soc, linux-pci, linux-arm-msm,
Krzysztof Kozlowski, Konrad Dybcio, Dmitry Baryshkov, KancyJoe
On 2/6/26 22:35, Bjorn Helgaas wrote:
> On Fri, Feb 06, 2026 at 03:50:28PM +0100, Neil Armstrong wrote:
>> The Ayaneo Pocket S2 is a gaming console based on the Qualcomm
>> Snapdragon 8 Gen 3. It has an internal UFS storage, WiFi,
>> Bluetooth, gaming buttons, SDCard, 2K display and USB-C
>> connector.
>
>> pci: pwrctrl: slot: fix dev_err_probe() usage
>> pci: pwrctrl: rename pci-pwrctrl-slot as generic
>
> These look fine (but please update subject lines to follow past
> history).
Ack will do
>
>> pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
>
> I don't see anything here specific to UPD720201/UPD720202. I don't
> want a stream of patches to add more devices in the future. Is there
> any better design?
Not really, I don't see how we can avoid changing the driver compatible list
here, I don't think we can use fallbacks here.
Neil
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-06 14:50 ` [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller Neil Armstrong
@ 2026-02-09 11:30 ` Manivannan Sadhasivam
2026-02-09 14:00 ` Neil Armstrong
0 siblings, 1 reply; 29+ messages in thread
From: Manivannan Sadhasivam @ 2026-02-09 11:30 UTC (permalink / raw)
To: Neil Armstrong
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On Fri, Feb 06, 2026 at 03:50:32PM +0100, Neil Armstrong wrote:
> Enable the generic pwrctrl driver to control the power of the
> PCIe UPD720201/UPD720202 USB 3.0 xHCI Host Controller.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> drivers/pci/pwrctrl/generic.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/pci/pwrctrl/generic.c b/drivers/pci/pwrctrl/generic.c
> index 08e53243cdbd..4a57a631362f 100644
> --- a/drivers/pci/pwrctrl/generic.c
> +++ b/drivers/pci/pwrctrl/generic.c
> @@ -73,6 +73,10 @@ static const struct of_device_id pci_pwrctrl_slot_of_match[] = {
> {
> .compatible = "pciclass,0604",
> },
> + /* Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller */
> + {
> + .compatible = "pci1912,0014",
No need to add the compatible to the driver. Just use the existing compatible as
fallback in the binding/dts.
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 3/9] pci: pwrctrl: rename pci-pwrctrl-slot as generic
2026-02-06 14:50 ` [PATCH v3 3/9] pci: pwrctrl: rename pci-pwrctrl-slot as generic Neil Armstrong
@ 2026-02-09 11:31 ` Manivannan Sadhasivam
2026-02-09 11:33 ` Manivannan Sadhasivam
1 sibling, 0 replies; 29+ messages in thread
From: Manivannan Sadhasivam @ 2026-02-09 11:31 UTC (permalink / raw)
To: Neil Armstrong
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On Fri, Feb 06, 2026 at 03:50:31PM +0100, Neil Armstrong wrote:
> The driver is pretty generic and would fit for either
> PCI Slots or PCI devices connected to PCI ports, so rename
> the driver and module as pci-pwrctrl-generic.
>
> Suggested-by: Manivannan Sadhasivam <mani@kernel.org>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> drivers/pci/pwrctrl/Kconfig | 8 ++++----
> drivers/pci/pwrctrl/Makefile | 4 ++--
> drivers/pci/pwrctrl/{slot.c => generic.c} | 0
> 3 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/pci/pwrctrl/Kconfig b/drivers/pci/pwrctrl/Kconfig
> index e0f999f299bb..0a93ac4cd11b 100644
> --- a/drivers/pci/pwrctrl/Kconfig
> +++ b/drivers/pci/pwrctrl/Kconfig
> @@ -11,12 +11,12 @@ config PCI_PWRCTRL_PWRSEQ
> select POWER_SEQUENCING
> select PCI_PWRCTRL
>
> -config PCI_PWRCTRL_SLOT
> - tristate "PCI Power Control driver for PCI slots"
> +config PCI_PWRCTRL_GENERIC
> + tristate "Generic PCI Power Control driver for PCI slots"
s/slots/slots and endpoints
> select PCI_PWRCTRL
> help
> - Say Y here to enable the PCI Power Control driver to control the power
> - state of PCI slots.
> + Say Y here to enable the generic PCI Power Control driver to control
> + the power state of PCI slots.
s/slots/slots and endpoints.
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 5/9] arm64: defconfig: enable pci-pwrctrl-generic as module
2026-02-06 14:50 ` [PATCH v3 5/9] arm64: defconfig: enable pci-pwrctrl-generic as module Neil Armstrong
@ 2026-02-09 11:32 ` Manivannan Sadhasivam
0 siblings, 0 replies; 29+ messages in thread
From: Manivannan Sadhasivam @ 2026-02-09 11:32 UTC (permalink / raw)
To: Neil Armstrong
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On Fri, Feb 06, 2026 at 03:50:33PM +0100, Neil Armstrong wrote:
> Enable the generic power control driver module since it's required
> to power up the PCIe USB3 controller found on the Ayaneo Pocket S2
> gaming console.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Manivannan Sadhasivam <mani@kernel.org>
- Mani
> ---
> arch/arm64/configs/defconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
> index 35e9eb180c9a..5efcd4943a4b 100644
> --- a/arch/arm64/configs/defconfig
> +++ b/arch/arm64/configs/defconfig
> @@ -250,6 +250,7 @@ CONFIG_PCIE_LAYERSCAPE_GEN4=y
> CONFIG_PCI_ENDPOINT=y
> CONFIG_PCI_ENDPOINT_CONFIGFS=y
> CONFIG_PCI_EPF_TEST=m
> +CONFIG_PCI_PWRCTRL_GENERIC=m
> CONFIG_DEVTMPFS=y
> CONFIG_DEVTMPFS_MOUNT=y
> CONFIG_FW_LOADER_USER_HELPER=y
>
> --
> 2.34.1
>
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 3/9] pci: pwrctrl: rename pci-pwrctrl-slot as generic
2026-02-06 14:50 ` [PATCH v3 3/9] pci: pwrctrl: rename pci-pwrctrl-slot as generic Neil Armstrong
2026-02-09 11:31 ` Manivannan Sadhasivam
@ 2026-02-09 11:33 ` Manivannan Sadhasivam
2026-02-09 13:57 ` Neil Armstrong
1 sibling, 1 reply; 29+ messages in thread
From: Manivannan Sadhasivam @ 2026-02-09 11:33 UTC (permalink / raw)
To: Neil Armstrong
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On Fri, Feb 06, 2026 at 03:50:31PM +0100, Neil Armstrong wrote:
> The driver is pretty generic and would fit for either
> PCI Slots or PCI devices connected to PCI ports, so rename
> the driver and module as pci-pwrctrl-generic.
>
> Suggested-by: Manivannan Sadhasivam <mani@kernel.org>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> drivers/pci/pwrctrl/Kconfig | 8 ++++----
> drivers/pci/pwrctrl/Makefile | 4 ++--
> drivers/pci/pwrctrl/{slot.c => generic.c} | 0
I was expecting the rename inside the driver too :)
- Mani
> 3 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/pci/pwrctrl/Kconfig b/drivers/pci/pwrctrl/Kconfig
> index e0f999f299bb..0a93ac4cd11b 100644
> --- a/drivers/pci/pwrctrl/Kconfig
> +++ b/drivers/pci/pwrctrl/Kconfig
> @@ -11,12 +11,12 @@ config PCI_PWRCTRL_PWRSEQ
> select POWER_SEQUENCING
> select PCI_PWRCTRL
>
> -config PCI_PWRCTRL_SLOT
> - tristate "PCI Power Control driver for PCI slots"
> +config PCI_PWRCTRL_GENERIC
> + tristate "Generic PCI Power Control driver for PCI slots"
> select PCI_PWRCTRL
> help
> - Say Y here to enable the PCI Power Control driver to control the power
> - state of PCI slots.
> + Say Y here to enable the generic PCI Power Control driver to control
> + the power state of PCI slots.
>
> This is a generic driver that controls the power state of different
> PCI slots. The voltage regulators powering the rails of the PCI slots
> diff --git a/drivers/pci/pwrctrl/Makefile b/drivers/pci/pwrctrl/Makefile
> index 13b02282106c..f6bb4fb9a410 100644
> --- a/drivers/pci/pwrctrl/Makefile
> +++ b/drivers/pci/pwrctrl/Makefile
> @@ -5,7 +5,7 @@ pci-pwrctrl-core-y := core.o
>
> obj-$(CONFIG_PCI_PWRCTRL_PWRSEQ) += pci-pwrctrl-pwrseq.o
>
> -obj-$(CONFIG_PCI_PWRCTRL_SLOT) += pci-pwrctrl-slot.o
> -pci-pwrctrl-slot-y := slot.o
> +obj-$(CONFIG_PCI_PWRCTRL_GENERIC) += pci-pwrctrl-generic.o
> +pci-pwrctrl-generic-y := generic.o
>
> obj-$(CONFIG_PCI_PWRCTRL_TC9563) += pci-pwrctrl-tc9563.o
> diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/generic.c
> similarity index 100%
> rename from drivers/pci/pwrctrl/slot.c
> rename to drivers/pci/pwrctrl/generic.c
>
> --
> 2.34.1
>
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 3/9] pci: pwrctrl: rename pci-pwrctrl-slot as generic
2026-02-09 11:33 ` Manivannan Sadhasivam
@ 2026-02-09 13:57 ` Neil Armstrong
0 siblings, 0 replies; 29+ messages in thread
From: Neil Armstrong @ 2026-02-09 13:57 UTC (permalink / raw)
To: Manivannan Sadhasivam
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On 2/9/26 12:33, Manivannan Sadhasivam wrote:
> On Fri, Feb 06, 2026 at 03:50:31PM +0100, Neil Armstrong wrote:
>> The driver is pretty generic and would fit for either
>> PCI Slots or PCI devices connected to PCI ports, so rename
>> the driver and module as pci-pwrctrl-generic.
>>
>> Suggested-by: Manivannan Sadhasivam <mani@kernel.org>
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>> drivers/pci/pwrctrl/Kconfig | 8 ++++----
>> drivers/pci/pwrctrl/Makefile | 4 ++--
>> drivers/pci/pwrctrl/{slot.c => generic.c} | 0
>
> I was expecting the rename inside the driver too :)
Oh yeah, will do in v4
Neil
>
> - Mani
>
>> 3 files changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/pci/pwrctrl/Kconfig b/drivers/pci/pwrctrl/Kconfig
>> index e0f999f299bb..0a93ac4cd11b 100644
>> --- a/drivers/pci/pwrctrl/Kconfig
>> +++ b/drivers/pci/pwrctrl/Kconfig
>> @@ -11,12 +11,12 @@ config PCI_PWRCTRL_PWRSEQ
>> select POWER_SEQUENCING
>> select PCI_PWRCTRL
>>
>> -config PCI_PWRCTRL_SLOT
>> - tristate "PCI Power Control driver for PCI slots"
>> +config PCI_PWRCTRL_GENERIC
>> + tristate "Generic PCI Power Control driver for PCI slots"
>> select PCI_PWRCTRL
>> help
>> - Say Y here to enable the PCI Power Control driver to control the power
>> - state of PCI slots.
>> + Say Y here to enable the generic PCI Power Control driver to control
>> + the power state of PCI slots.
>>
>> This is a generic driver that controls the power state of different
>> PCI slots. The voltage regulators powering the rails of the PCI slots
>> diff --git a/drivers/pci/pwrctrl/Makefile b/drivers/pci/pwrctrl/Makefile
>> index 13b02282106c..f6bb4fb9a410 100644
>> --- a/drivers/pci/pwrctrl/Makefile
>> +++ b/drivers/pci/pwrctrl/Makefile
>> @@ -5,7 +5,7 @@ pci-pwrctrl-core-y := core.o
>>
>> obj-$(CONFIG_PCI_PWRCTRL_PWRSEQ) += pci-pwrctrl-pwrseq.o
>>
>> -obj-$(CONFIG_PCI_PWRCTRL_SLOT) += pci-pwrctrl-slot.o
>> -pci-pwrctrl-slot-y := slot.o
>> +obj-$(CONFIG_PCI_PWRCTRL_GENERIC) += pci-pwrctrl-generic.o
>> +pci-pwrctrl-generic-y := generic.o
>>
>> obj-$(CONFIG_PCI_PWRCTRL_TC9563) += pci-pwrctrl-tc9563.o
>> diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/generic.c
>> similarity index 100%
>> rename from drivers/pci/pwrctrl/slot.c
>> rename to drivers/pci/pwrctrl/generic.c
>>
>> --
>> 2.34.1
>>
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-09 11:30 ` Manivannan Sadhasivam
@ 2026-02-09 14:00 ` Neil Armstrong
2026-02-09 14:49 ` Manivannan Sadhasivam
0 siblings, 1 reply; 29+ messages in thread
From: Neil Armstrong @ 2026-02-09 14:00 UTC (permalink / raw)
To: Manivannan Sadhasivam
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On 2/9/26 12:30, Manivannan Sadhasivam wrote:
> On Fri, Feb 06, 2026 at 03:50:32PM +0100, Neil Armstrong wrote:
>> Enable the generic pwrctrl driver to control the power of the
>> PCIe UPD720201/UPD720202 USB 3.0 xHCI Host Controller.
>>
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>> drivers/pci/pwrctrl/generic.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/pci/pwrctrl/generic.c b/drivers/pci/pwrctrl/generic.c
>> index 08e53243cdbd..4a57a631362f 100644
>> --- a/drivers/pci/pwrctrl/generic.c
>> +++ b/drivers/pci/pwrctrl/generic.c
>> @@ -73,6 +73,10 @@ static const struct of_device_id pci_pwrctrl_slot_of_match[] = {
>> {
>> .compatible = "pciclass,0604",
>> },
>> + /* Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller */
>> + {
>> + .compatible = "pci1912,0014",
>
> No need to add the compatible to the driver. Just use the existing compatible as
> fallback in the binding/dts.
???
Sorry but this is insane, in no world a standalone PCIe USB controller could be qualified as
compatible as a pciclass,0604 slot.
Technically it would work just fine, but "compatibility" has a meaning....
Neil
>
> - Mani
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-09 14:00 ` Neil Armstrong
@ 2026-02-09 14:49 ` Manivannan Sadhasivam
2026-02-09 14:59 ` Neil Armstrong
0 siblings, 1 reply; 29+ messages in thread
From: Manivannan Sadhasivam @ 2026-02-09 14:49 UTC (permalink / raw)
To: Neil Armstrong
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On Mon, Feb 09, 2026 at 03:00:02PM +0100, Neil Armstrong wrote:
> On 2/9/26 12:30, Manivannan Sadhasivam wrote:
> > On Fri, Feb 06, 2026 at 03:50:32PM +0100, Neil Armstrong wrote:
> > > Enable the generic pwrctrl driver to control the power of the
> > > PCIe UPD720201/UPD720202 USB 3.0 xHCI Host Controller.
> > >
> > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > > ---
> > > drivers/pci/pwrctrl/generic.c | 4 ++++
> > > 1 file changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/pci/pwrctrl/generic.c b/drivers/pci/pwrctrl/generic.c
> > > index 08e53243cdbd..4a57a631362f 100644
> > > --- a/drivers/pci/pwrctrl/generic.c
> > > +++ b/drivers/pci/pwrctrl/generic.c
> > > @@ -73,6 +73,10 @@ static const struct of_device_id pci_pwrctrl_slot_of_match[] = {
> > > {
> > > .compatible = "pciclass,0604",
> > > },
> > > + /* Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller */
> > > + {
> > > + .compatible = "pci1912,0014",
> >
> > No need to add the compatible to the driver. Just use the existing compatible as
> > fallback in the binding/dts.
>
> ???
>
> Sorry but this is insane, in no world a standalone PCIe USB controller could be qualified as
> compatible as a pciclass,0604 slot.
>
AFAIU, 'compatibility' implies that the driver can safely fallback and would
still work. If we add dedicated compatibles for each endpoint devices, then we
will just keep adding forever. Powering up a PCIe slot and an endpoint device
are conceptually same.
> Technically it would work just fine, but "compatibility" has a meaning....
>
I view compatibility interms of device operation, not device as a whole. But
sure, I could be wrong. If the DT maintainers say so, I won't insist.
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-09 14:49 ` Manivannan Sadhasivam
@ 2026-02-09 14:59 ` Neil Armstrong
2026-02-10 8:00 ` Manivannan Sadhasivam
0 siblings, 1 reply; 29+ messages in thread
From: Neil Armstrong @ 2026-02-09 14:59 UTC (permalink / raw)
To: Manivannan Sadhasivam
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On 2/9/26 15:49, Manivannan Sadhasivam wrote:
> On Mon, Feb 09, 2026 at 03:00:02PM +0100, Neil Armstrong wrote:
>> On 2/9/26 12:30, Manivannan Sadhasivam wrote:
>>> On Fri, Feb 06, 2026 at 03:50:32PM +0100, Neil Armstrong wrote:
>>>> Enable the generic pwrctrl driver to control the power of the
>>>> PCIe UPD720201/UPD720202 USB 3.0 xHCI Host Controller.
>>>>
>>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>>> ---
>>>> drivers/pci/pwrctrl/generic.c | 4 ++++
>>>> 1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/drivers/pci/pwrctrl/generic.c b/drivers/pci/pwrctrl/generic.c
>>>> index 08e53243cdbd..4a57a631362f 100644
>>>> --- a/drivers/pci/pwrctrl/generic.c
>>>> +++ b/drivers/pci/pwrctrl/generic.c
>>>> @@ -73,6 +73,10 @@ static const struct of_device_id pci_pwrctrl_slot_of_match[] = {
>>>> {
>>>> .compatible = "pciclass,0604",
>>>> },
>>>> + /* Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller */
>>>> + {
>>>> + .compatible = "pci1912,0014",
>>>
>>> No need to add the compatible to the driver. Just use the existing compatible as
>>> fallback in the binding/dts.
>>
>> ???
>>
>> Sorry but this is insane, in no world a standalone PCIe USB controller could be qualified as
>> compatible as a pciclass,0604 slot.
>>
>
> AFAIU, 'compatibility' implies that the driver can safely fallback and would
> still work. If we add dedicated compatibles for each endpoint devices, then we
> will just keep adding forever. Powering up a PCIe slot and an endpoint device
> are conceptually same.
We're not speaking about driver here, but about compatible string which describes
a device, a PCI endpoint and a PCIe slot are 2 very different devices that are
nowhere compatible.
>
>> Technically it would work just fine, but "compatibility" has a meaning....
>>
>
> I view compatibility interms of device operation, not device as a whole. But
> sure, I could be wrong. If the DT maintainers say so, I won't insist.
In the actual way it's defined _today_, the "slot" and "endpoint" power up schemes are
compatible, but I hope the slot bindings will get much more features to describe the
real world slots power properties. And no, endpoints will definitely not have the same
features as slots, using it as a fallback today is an error.
On the other side, adding a "simple-pci-endpoint" compatible that enables any supply
and clock would be a good solution, if the DT maintainers agrees of course.
Neil
>
> - Mani
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 1/9] dt-bindings: usb: document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-06 14:50 ` [PATCH v3 1/9] dt-bindings: usb: document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller Neil Armstrong
@ 2026-02-10 2:37 ` Rob Herring (Arm)
2026-02-12 15:17 ` Bjorn Andersson
1 sibling, 0 replies; 29+ messages in thread
From: Rob Herring (Arm) @ 2026-02-10 2:37 UTC (permalink / raw)
To: Neil Armstrong
Cc: linux-pci, Bjorn Andersson, Magnus Damm, linux-kernel,
Bjorn Helgaas, Krzysztof Kozlowski, devicetree, Konrad Dybcio,
linux-renesas-soc, Manivannan Sadhasivam, Geert Uytterhoeven,
linux-arm-msm, linux-usb, Conor Dooley, Bartosz Golaszewski,
Greg Kroah-Hartman
On Fri, 06 Feb 2026 15:50:29 +0100, Neil Armstrong wrote:
> Document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller,
> which connects over PCIe and requires specific power supplies to
> start up.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> .../bindings/usb/renesas,upd720201-pci.yaml | 61 ++++++++++++++++++++++
> 1 file changed, 61 insertions(+)
>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-09 14:59 ` Neil Armstrong
@ 2026-02-10 8:00 ` Manivannan Sadhasivam
2026-02-10 9:01 ` Neil Armstrong
0 siblings, 1 reply; 29+ messages in thread
From: Manivannan Sadhasivam @ 2026-02-10 8:00 UTC (permalink / raw)
To: Neil Armstrong
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On Mon, Feb 09, 2026 at 03:59:20PM +0100, Neil Armstrong wrote:
> On 2/9/26 15:49, Manivannan Sadhasivam wrote:
> > On Mon, Feb 09, 2026 at 03:00:02PM +0100, Neil Armstrong wrote:
> > > On 2/9/26 12:30, Manivannan Sadhasivam wrote:
> > > > On Fri, Feb 06, 2026 at 03:50:32PM +0100, Neil Armstrong wrote:
> > > > > Enable the generic pwrctrl driver to control the power of the
> > > > > PCIe UPD720201/UPD720202 USB 3.0 xHCI Host Controller.
> > > > >
> > > > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > > > > ---
> > > > > drivers/pci/pwrctrl/generic.c | 4 ++++
> > > > > 1 file changed, 4 insertions(+)
> > > > >
> > > > > diff --git a/drivers/pci/pwrctrl/generic.c b/drivers/pci/pwrctrl/generic.c
> > > > > index 08e53243cdbd..4a57a631362f 100644
> > > > > --- a/drivers/pci/pwrctrl/generic.c
> > > > > +++ b/drivers/pci/pwrctrl/generic.c
> > > > > @@ -73,6 +73,10 @@ static const struct of_device_id pci_pwrctrl_slot_of_match[] = {
> > > > > {
> > > > > .compatible = "pciclass,0604",
> > > > > },
> > > > > + /* Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller */
> > > > > + {
> > > > > + .compatible = "pci1912,0014",
> > > >
> > > > No need to add the compatible to the driver. Just use the existing compatible as
> > > > fallback in the binding/dts.
> > >
> > > ???
> > >
> > > Sorry but this is insane, in no world a standalone PCIe USB controller could be qualified as
> > > compatible as a pciclass,0604 slot.
> > >
> >
> > AFAIU, 'compatibility' implies that the driver can safely fallback and would
> > still work. If we add dedicated compatibles for each endpoint devices, then we
> > will just keep adding forever. Powering up a PCIe slot and an endpoint device
> > are conceptually same.
>
> We're not speaking about driver here, but about compatible string which describes
> a device, a PCI endpoint and a PCIe slot are 2 very different devices that are
> nowhere compatible.
>
> >
> > > Technically it would work just fine, but "compatibility" has a meaning....
> > >
> >
> > I view compatibility interms of device operation, not device as a whole. But
> > sure, I could be wrong. If the DT maintainers say so, I won't insist.
>
> In the actual way it's defined _today_, the "slot" and "endpoint" power up schemes are
> compatible, but I hope the slot bindings will get much more features to describe the
> real world slots power properties. And no, endpoints will definitely not have the same
> features as slots, using it as a fallback today is an error.
>
> On the other side, adding a "simple-pci-endpoint" compatible that enables any supply
> and clock would be a good solution, if the DT maintainers agrees of course.
>
We do have a 'pci-host-cam-generic' compatible. So we can also have something
like 'pci-pwrctrl-generic' IMO.
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-10 8:00 ` Manivannan Sadhasivam
@ 2026-02-10 9:01 ` Neil Armstrong
2026-02-10 11:03 ` Manivannan Sadhasivam
0 siblings, 1 reply; 29+ messages in thread
From: Neil Armstrong @ 2026-02-10 9:01 UTC (permalink / raw)
To: Manivannan Sadhasivam
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On 2/10/26 09:00, Manivannan Sadhasivam wrote:
> On Mon, Feb 09, 2026 at 03:59:20PM +0100, Neil Armstrong wrote:
>> On 2/9/26 15:49, Manivannan Sadhasivam wrote:
>>> On Mon, Feb 09, 2026 at 03:00:02PM +0100, Neil Armstrong wrote:
>>>> On 2/9/26 12:30, Manivannan Sadhasivam wrote:
>>>>> On Fri, Feb 06, 2026 at 03:50:32PM +0100, Neil Armstrong wrote:
>>>>>> Enable the generic pwrctrl driver to control the power of the
>>>>>> PCIe UPD720201/UPD720202 USB 3.0 xHCI Host Controller.
>>>>>>
>>>>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>>>>> ---
>>>>>> drivers/pci/pwrctrl/generic.c | 4 ++++
>>>>>> 1 file changed, 4 insertions(+)
>>>>>>
>>>>>> diff --git a/drivers/pci/pwrctrl/generic.c b/drivers/pci/pwrctrl/generic.c
>>>>>> index 08e53243cdbd..4a57a631362f 100644
>>>>>> --- a/drivers/pci/pwrctrl/generic.c
>>>>>> +++ b/drivers/pci/pwrctrl/generic.c
>>>>>> @@ -73,6 +73,10 @@ static const struct of_device_id pci_pwrctrl_slot_of_match[] = {
>>>>>> {
>>>>>> .compatible = "pciclass,0604",
>>>>>> },
>>>>>> + /* Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller */
>>>>>> + {
>>>>>> + .compatible = "pci1912,0014",
>>>>>
>>>>> No need to add the compatible to the driver. Just use the existing compatible as
>>>>> fallback in the binding/dts.
>>>>
>>>> ???
>>>>
>>>> Sorry but this is insane, in no world a standalone PCIe USB controller could be qualified as
>>>> compatible as a pciclass,0604 slot.
>>>>
>>>
>>> AFAIU, 'compatibility' implies that the driver can safely fallback and would
>>> still work. If we add dedicated compatibles for each endpoint devices, then we
>>> will just keep adding forever. Powering up a PCIe slot and an endpoint device
>>> are conceptually same.
>>
>> We're not speaking about driver here, but about compatible string which describes
>> a device, a PCI endpoint and a PCIe slot are 2 very different devices that are
>> nowhere compatible.
>>
>>>
>>>> Technically it would work just fine, but "compatibility" has a meaning....
>>>>
>>>
>>> I view compatibility interms of device operation, not device as a whole. But
>>> sure, I could be wrong. If the DT maintainers say so, I won't insist.
>>
>> In the actual way it's defined _today_, the "slot" and "endpoint" power up schemes are
>> compatible, but I hope the slot bindings will get much more features to describe the
>> real world slots power properties. And no, endpoints will definitely not have the same
>> features as slots, using it as a fallback today is an error.
>>
>> On the other side, adding a "simple-pci-endpoint" compatible that enables any supply
>> and clock would be a good solution, if the DT maintainers agrees of course.
>>
>
> We do have a 'pci-host-cam-generic' compatible. So we can also have something
> like 'pci-pwrctrl-generic' IMO.
I don't want to into this route, I just want to powerup the USB3 controller on
the Pocket S2 gaming device, not spend 6 months into _not_ modifying a driver compatible
list.
All this feels bulky, who a pci device would be compatible with something like
'pci-pwrctrl-generic' we're speaking about a pci device, not a power control device.
It's nowhere similar to the 'pci-host-cam-generic' situation, this describes well defined
host controller interface.
Neil
>
> - Mani
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-10 9:01 ` Neil Armstrong
@ 2026-02-10 11:03 ` Manivannan Sadhasivam
2026-02-10 12:25 ` Dmitry Baryshkov
0 siblings, 1 reply; 29+ messages in thread
From: Manivannan Sadhasivam @ 2026-02-10 11:03 UTC (permalink / raw)
To: Neil Armstrong
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On Tue, Feb 10, 2026 at 10:01:00AM +0100, Neil Armstrong wrote:
> On 2/10/26 09:00, Manivannan Sadhasivam wrote:
> > On Mon, Feb 09, 2026 at 03:59:20PM +0100, Neil Armstrong wrote:
> > > On 2/9/26 15:49, Manivannan Sadhasivam wrote:
> > > > On Mon, Feb 09, 2026 at 03:00:02PM +0100, Neil Armstrong wrote:
> > > > > On 2/9/26 12:30, Manivannan Sadhasivam wrote:
> > > > > > On Fri, Feb 06, 2026 at 03:50:32PM +0100, Neil Armstrong wrote:
> > > > > > > Enable the generic pwrctrl driver to control the power of the
> > > > > > > PCIe UPD720201/UPD720202 USB 3.0 xHCI Host Controller.
> > > > > > >
> > > > > > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > > > > > > ---
> > > > > > > drivers/pci/pwrctrl/generic.c | 4 ++++
> > > > > > > 1 file changed, 4 insertions(+)
> > > > > > >
> > > > > > > diff --git a/drivers/pci/pwrctrl/generic.c b/drivers/pci/pwrctrl/generic.c
> > > > > > > index 08e53243cdbd..4a57a631362f 100644
> > > > > > > --- a/drivers/pci/pwrctrl/generic.c
> > > > > > > +++ b/drivers/pci/pwrctrl/generic.c
> > > > > > > @@ -73,6 +73,10 @@ static const struct of_device_id pci_pwrctrl_slot_of_match[] = {
> > > > > > > {
> > > > > > > .compatible = "pciclass,0604",
> > > > > > > },
> > > > > > > + /* Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller */
> > > > > > > + {
> > > > > > > + .compatible = "pci1912,0014",
> > > > > >
> > > > > > No need to add the compatible to the driver. Just use the existing compatible as
> > > > > > fallback in the binding/dts.
> > > > >
> > > > > ???
> > > > >
> > > > > Sorry but this is insane, in no world a standalone PCIe USB controller could be qualified as
> > > > > compatible as a pciclass,0604 slot.
> > > > >
> > > >
> > > > AFAIU, 'compatibility' implies that the driver can safely fallback and would
> > > > still work. If we add dedicated compatibles for each endpoint devices, then we
> > > > will just keep adding forever. Powering up a PCIe slot and an endpoint device
> > > > are conceptually same.
> > >
> > > We're not speaking about driver here, but about compatible string which describes
> > > a device, a PCI endpoint and a PCIe slot are 2 very different devices that are
> > > nowhere compatible.
> > >
> > > >
> > > > > Technically it would work just fine, but "compatibility" has a meaning....
> > > > >
> > > >
> > > > I view compatibility interms of device operation, not device as a whole. But
> > > > sure, I could be wrong. If the DT maintainers say so, I won't insist.
> > >
> > > In the actual way it's defined _today_, the "slot" and "endpoint" power up schemes are
> > > compatible, but I hope the slot bindings will get much more features to describe the
> > > real world slots power properties. And no, endpoints will definitely not have the same
> > > features as slots, using it as a fallback today is an error.
> > >
> > > On the other side, adding a "simple-pci-endpoint" compatible that enables any supply
> > > and clock would be a good solution, if the DT maintainers agrees of course.
> > >
> >
> > We do have a 'pci-host-cam-generic' compatible. So we can also have something
> > like 'pci-pwrctrl-generic' IMO.
>
> I don't want to into this route, I just want to powerup the USB3 controller on
> the Pocket S2 gaming device, not spend 6 months into _not_ modifying a driver compatible
> list.
>
Sure, I don't want you to spend that much time either. But I was trying to avoid
having a solution that just works only for your platform.
> All this feels bulky, who a pci device would be compatible with something like
> 'pci-pwrctrl-generic' we're speaking about a pci device, not a power control device.
>
> It's nowhere similar to the 'pci-host-cam-generic' situation, this describes well defined
> host controller interface.
>
I honestly don't see much difference. ECAM is just *a way* of accessing the
config space of the PCIe devices. If we can have a compatible based on that,
then I don't see why can't we have one for pwrctrl. Only difference is that
"pwrctrl" terminology is not part of any spec, but for sure every device would
have some kind of power control implementation.
Anyhow, I don't have other solutions on top of my head now. Let's go with
per-device compatible for now. I'll deal with a generic solution later.
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-10 11:03 ` Manivannan Sadhasivam
@ 2026-02-10 12:25 ` Dmitry Baryshkov
0 siblings, 0 replies; 29+ messages in thread
From: Dmitry Baryshkov @ 2026-02-10 12:25 UTC (permalink / raw)
To: Manivannan Sadhasivam
Cc: Neil Armstrong, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Bartosz Golaszewski, Bjorn Helgaas, Bjorn Andersson,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On Tue, Feb 10, 2026 at 04:33:08PM +0530, Manivannan Sadhasivam wrote:
> On Tue, Feb 10, 2026 at 10:01:00AM +0100, Neil Armstrong wrote:
> > On 2/10/26 09:00, Manivannan Sadhasivam wrote:
> > > On Mon, Feb 09, 2026 at 03:59:20PM +0100, Neil Armstrong wrote:
> > > > On 2/9/26 15:49, Manivannan Sadhasivam wrote:
> > > > > On Mon, Feb 09, 2026 at 03:00:02PM +0100, Neil Armstrong wrote:
> > > > > > On 2/9/26 12:30, Manivannan Sadhasivam wrote:
> > > > > > > On Fri, Feb 06, 2026 at 03:50:32PM +0100, Neil Armstrong wrote:
> > > > > > > > Enable the generic pwrctrl driver to control the power of the
> > > > > > > > PCIe UPD720201/UPD720202 USB 3.0 xHCI Host Controller.
> > > > > > > >
> > > > > > > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > > > > > > > ---
> > > > > > > > drivers/pci/pwrctrl/generic.c | 4 ++++
> > > > > > > > 1 file changed, 4 insertions(+)
> > > > > > > >
> > > > > > > > diff --git a/drivers/pci/pwrctrl/generic.c b/drivers/pci/pwrctrl/generic.c
> > > > > > > > index 08e53243cdbd..4a57a631362f 100644
> > > > > > > > --- a/drivers/pci/pwrctrl/generic.c
> > > > > > > > +++ b/drivers/pci/pwrctrl/generic.c
> > > > > > > > @@ -73,6 +73,10 @@ static const struct of_device_id pci_pwrctrl_slot_of_match[] = {
> > > > > > > > {
> > > > > > > > .compatible = "pciclass,0604",
> > > > > > > > },
> > > > > > > > + /* Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller */
> > > > > > > > + {
> > > > > > > > + .compatible = "pci1912,0014",
> > > > > > >
> > > > > > > No need to add the compatible to the driver. Just use the existing compatible as
> > > > > > > fallback in the binding/dts.
> > > > > >
> > > > > > ???
> > > > > >
> > > > > > Sorry but this is insane, in no world a standalone PCIe USB controller could be qualified as
> > > > > > compatible as a pciclass,0604 slot.
> > > > > >
> > > > >
> > > > > AFAIU, 'compatibility' implies that the driver can safely fallback and would
> > > > > still work. If we add dedicated compatibles for each endpoint devices, then we
> > > > > will just keep adding forever. Powering up a PCIe slot and an endpoint device
> > > > > are conceptually same.
> > > >
> > > > We're not speaking about driver here, but about compatible string which describes
> > > > a device, a PCI endpoint and a PCIe slot are 2 very different devices that are
> > > > nowhere compatible.
> > > >
> > > > >
> > > > > > Technically it would work just fine, but "compatibility" has a meaning....
> > > > > >
> > > > >
> > > > > I view compatibility interms of device operation, not device as a whole. But
> > > > > sure, I could be wrong. If the DT maintainers say so, I won't insist.
> > > >
> > > > In the actual way it's defined _today_, the "slot" and "endpoint" power up schemes are
> > > > compatible, but I hope the slot bindings will get much more features to describe the
> > > > real world slots power properties. And no, endpoints will definitely not have the same
> > > > features as slots, using it as a fallback today is an error.
> > > >
> > > > On the other side, adding a "simple-pci-endpoint" compatible that enables any supply
> > > > and clock would be a good solution, if the DT maintainers agrees of course.
> > > >
> > >
> > > We do have a 'pci-host-cam-generic' compatible. So we can also have something
> > > like 'pci-pwrctrl-generic' IMO.
> >
> > I don't want to into this route, I just want to powerup the USB3 controller on
> > the Pocket S2 gaming device, not spend 6 months into _not_ modifying a driver compatible
> > list.
> >
>
> Sure, I don't want you to spend that much time either. But I was trying to avoid
> having a solution that just works only for your platform.
>
> > All this feels bulky, who a pci device would be compatible with something like
> > 'pci-pwrctrl-generic' we're speaking about a pci device, not a power control device.
> >
> > It's nowhere similar to the 'pci-host-cam-generic' situation, this describes well defined
> > host controller interface.
> >
>
> I honestly don't see much difference. ECAM is just *a way* of accessing the
> config space of the PCIe devices. If we can have a compatible based on that,
> then I don't see why can't we have one for pwrctrl. Only difference is that
> "pwrctrl" terminology is not part of any spec, but for sure every device would
> have some kind of power control implementation.
ECAM is a way of accessing config space. But there is nothing like that
for "pwrctrl-generic". It's just a Linux-internal view on powering on
these devices. Other OS would support ECAM, but would have no idea, what
pwrctrl-generic means.
>
> Anyhow, I don't have other solutions on top of my head now. Let's go with
> per-device compatible for now. I'll deal with a generic solution later.
>
> - Mani
>
> --
> மணிவண்ணன் சதாசிவம்
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 1/9] dt-bindings: usb: document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-06 14:50 ` [PATCH v3 1/9] dt-bindings: usb: document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller Neil Armstrong
2026-02-10 2:37 ` Rob Herring (Arm)
@ 2026-02-12 15:17 ` Bjorn Andersson
2026-02-13 8:25 ` Neil Armstrong
1 sibling, 1 reply; 29+ messages in thread
From: Bjorn Andersson @ 2026-02-12 15:17 UTC (permalink / raw)
To: Neil Armstrong
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On Fri, Feb 06, 2026 at 03:50:29PM +0100, Neil Armstrong wrote:
> Document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller,
> which connects over PCIe and requires specific power supplies to
> start up.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> .../bindings/usb/renesas,upd720201-pci.yaml | 61 ++++++++++++++++++++++
> 1 file changed, 61 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/usb/renesas,upd720201-pci.yaml b/Documentation/devicetree/bindings/usb/renesas,upd720201-pci.yaml
> new file mode 100644
> index 000000000000..34acee62cdd2
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/renesas,upd720201-pci.yaml
> @@ -0,0 +1,61 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/renesas,upd720201-pci.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: UPD720201/UPD720202 USB 3.0 xHCI Host Controller (PCIe)
> +
> +maintainers:
> + - Neil Armstrong <neil.armstrong@linaro.org>
> +
> +description:
> + UPD720201 USB 3.0 xHCI Host Controller via PCIe x1 Gen2 interface.
> + The UPD720202 supports up to two downstream ports, while UPD720201
> + supports up to four downstream USB 3.0 rev1.0 ports.
> +
> +properties:
> + compatible:
> + const: pci1912,0014
> +
> + reg:
> + maxItems: 1
> +
> + avdd33-supply:
> + description: +3.3 V power supply for analog circuit
> +
> + vdd10-supply:
> + description: +1.05 V power supply
> +
> + vdd33-supply:
> + description: +3.3 V power supply
> +
> +required:
> + - compatible
> + - reg
> + - avdd33-supply
> + - vdd10-supply
> + - vdd33-supply
> +
> +allOf:
> + - $ref: usb-xhci.yaml
> +
> +additionalProperties: false
I'm trying to hang a onboard_hub off this controller and #address-cells,
#size-cells, and hub@ comes back as invalid children.
I think this should be unevaluatedProperties instead.
Regards,
Bjorn
> +
> +examples:
> + - |
> + pcie@0 {
> + reg = <0x0 0x1000>;
> + ranges = <0x02000000 0x0 0x100000 0x10000000 0x0 0x0>;
> + #address-cells = <3>;
> + #size-cells = <2>;
> + device_type = "pci";
> +
> + usb-controller@0 {
> + compatible = "pci1912,0014";
> + reg = <0x0 0x0 0x0 0x0 0x0>;
> + avdd33-supply = <&avdd33_reg>;
> + vdd10-supply = <&vdd10_reg>;
> + vdd33-supply = <&vdd33_reg>;
> + };
> + };
>
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 1/9] dt-bindings: usb: document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller
2026-02-12 15:17 ` Bjorn Andersson
@ 2026-02-13 8:25 ` Neil Armstrong
0 siblings, 0 replies; 29+ messages in thread
From: Neil Armstrong @ 2026-02-13 8:25 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Geert Uytterhoeven, Magnus Damm,
Bartosz Golaszewski, Manivannan Sadhasivam, Bjorn Helgaas,
Konrad Dybcio, linux-usb, devicetree, linux-kernel,
linux-renesas-soc, linux-pci, linux-arm-msm
On 2/12/26 16:17, Bjorn Andersson wrote:
> On Fri, Feb 06, 2026 at 03:50:29PM +0100, Neil Armstrong wrote:
>> Document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller,
>> which connects over PCIe and requires specific power supplies to
>> start up.
>>
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>> .../bindings/usb/renesas,upd720201-pci.yaml | 61 ++++++++++++++++++++++
>> 1 file changed, 61 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/usb/renesas,upd720201-pci.yaml b/Documentation/devicetree/bindings/usb/renesas,upd720201-pci.yaml
>> new file mode 100644
>> index 000000000000..34acee62cdd2
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/usb/renesas,upd720201-pci.yaml
>> @@ -0,0 +1,61 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/usb/renesas,upd720201-pci.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: UPD720201/UPD720202 USB 3.0 xHCI Host Controller (PCIe)
>> +
>> +maintainers:
>> + - Neil Armstrong <neil.armstrong@linaro.org>
>> +
>> +description:
>> + UPD720201 USB 3.0 xHCI Host Controller via PCIe x1 Gen2 interface.
>> + The UPD720202 supports up to two downstream ports, while UPD720201
>> + supports up to four downstream USB 3.0 rev1.0 ports.
>> +
>> +properties:
>> + compatible:
>> + const: pci1912,0014
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + avdd33-supply:
>> + description: +3.3 V power supply for analog circuit
>> +
>> + vdd10-supply:
>> + description: +1.05 V power supply
>> +
>> + vdd33-supply:
>> + description: +3.3 V power supply
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - avdd33-supply
>> + - vdd10-supply
>> + - vdd33-supply
>> +
>> +allOf:
>> + - $ref: usb-xhci.yaml
>> +
>> +additionalProperties: false
>
> I'm trying to hang a onboard_hub off this controller and #address-cells,
> #size-cells, and hub@ comes back as invalid children.
>
> I think this should be unevaluatedProperties instead.
Ack will update
Thanks,
Neil
>
> Regards,
> Bjorn
>
>> +
>> +examples:
>> + - |
>> + pcie@0 {
>> + reg = <0x0 0x1000>;
>> + ranges = <0x02000000 0x0 0x100000 0x10000000 0x0 0x0>;
>> + #address-cells = <3>;
>> + #size-cells = <2>;
>> + device_type = "pci";
>> +
>> + usb-controller@0 {
>> + compatible = "pci1912,0014";
>> + reg = <0x0 0x0 0x0 0x0 0x0>;
>> + avdd33-supply = <&avdd33_reg>;
>> + vdd10-supply = <&vdd10_reg>;
>> + vdd33-supply = <&vdd33_reg>;
>> + };
>> + };
>>
>> --
>> 2.34.1
>>
^ permalink raw reply [flat|nested] 29+ messages in thread
end of thread, other threads:[~2026-02-13 8:25 UTC | newest]
Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-06 14:50 [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Neil Armstrong
2026-02-06 14:50 ` [PATCH v3 1/9] dt-bindings: usb: document the Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller Neil Armstrong
2026-02-10 2:37 ` Rob Herring (Arm)
2026-02-12 15:17 ` Bjorn Andersson
2026-02-13 8:25 ` Neil Armstrong
2026-02-06 14:50 ` [PATCH v3 2/9] pci: pwrctrl: slot: fix dev_err_probe() usage Neil Armstrong
2026-02-06 15:13 ` Bartosz Golaszewski
2026-02-06 14:50 ` [PATCH v3 3/9] pci: pwrctrl: rename pci-pwrctrl-slot as generic Neil Armstrong
2026-02-09 11:31 ` Manivannan Sadhasivam
2026-02-09 11:33 ` Manivannan Sadhasivam
2026-02-09 13:57 ` Neil Armstrong
2026-02-06 14:50 ` [PATCH v3 4/9] pci: pwrctrl: generic: support for the UPD720201/UPD720202 USB 3.0 xHCI Host Controller Neil Armstrong
2026-02-09 11:30 ` Manivannan Sadhasivam
2026-02-09 14:00 ` Neil Armstrong
2026-02-09 14:49 ` Manivannan Sadhasivam
2026-02-09 14:59 ` Neil Armstrong
2026-02-10 8:00 ` Manivannan Sadhasivam
2026-02-10 9:01 ` Neil Armstrong
2026-02-10 11:03 ` Manivannan Sadhasivam
2026-02-10 12:25 ` Dmitry Baryshkov
2026-02-06 14:50 ` [PATCH v3 5/9] arm64: defconfig: enable pci-pwrctrl-generic as module Neil Armstrong
2026-02-09 11:32 ` Manivannan Sadhasivam
2026-02-06 14:50 ` [PATCH v3 6/9] dt-binding: vendor-prefixes: document the Ayaneo brand Neil Armstrong
2026-02-06 14:50 ` [PATCH v3 7/9] dt-bindings: arm: qcom: document the Ayaneo Pocket S2 Neil Armstrong
2026-02-06 23:16 ` Rob Herring (Arm)
2026-02-06 14:50 ` [PATCH v3 8/9] arm64: dts: qcom: sm8650: Add sound DAI prefix for DP Neil Armstrong
2026-02-06 14:50 ` [PATCH v3 9/9] arm64: dts: qcom: add basic devicetree for Ayaneo Pocket S2 gaming console Neil Armstrong
2026-02-06 21:35 ` [PATCH v3 0/9] arm64: dts: qcom: Add support for the Ayaneo Pocket S2 Bjorn Helgaas
2026-02-09 9:15 ` Neil Armstrong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox