* [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes
@ 2026-04-07 15:19 Xilin Wu
2026-04-07 15:19 ` [PATCH 01/12] firmware: qcom: scm: Allow QSEECOM for Radxa Dragon Q6A Xilin Wu
` (11 more replies)
0 siblings, 12 replies; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu, Stephen Chen
This series brings the Radxa Dragon Q6A (QCS6490) board support up to
date with the latest official firmware and enables additional hardware.
Fixes and alignment with latest firmware:
- Allow QSEECOM for UEFI/efivars support
- Align reserved-memory with the latest firmware memory map
- Drop QSPI node now restricted by TrustZone
- Switch to board-specific CDSP firmware matching new WP boot firmware
- Correct GPIO_27 label
Hardware enablement:
- Enable UFS controller (Gear-4 Rate-A)
- Enable USB 3.0 and HDMI (via DP-to-HDMI bridge)
- Mark secondary USB controller as wakeup source
- Add I2C aliases for CCI buses
Variant for LPASS CPU audio:
- Factor out common board dtsi for sharing between variants
- Add dt-bindings for Dragon Q6A sound card
- Add LPASS CPU audio variant for EL2 direct hardware access
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
Stephen Chen (3):
arm64: dts: qcom: kodiak: Add I2C aliases for CCI
arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Correct GPIO_27 label
arm64: dts: qcom: kodiak: Mark secondary USB controller as wakeup source
Xilin Wu (9):
firmware: qcom: scm: Allow QSEECOM for Radxa Dragon Q6A
arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable UFS controller
arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable USB 3.0 and HDMI ports
arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Use board-specific CDSP firmware
arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Drop QSPI node and reserve its pins
arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Align reserved-memory with latest firmware map
arm64: dts: qcom: qcs6490-radxa-dragon-q6a: factor out common board dtsi
ASoC: dt-bindings: google,sc7280-herobrine: Add Radxa Dragon Q6A sound card
arm64: dts: qcom: qcs6490-radxa-dragon-q6a: add LPASS CPU audio variant
.../bindings/sound/google,sc7280-herobrine.yaml | 9 +-
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/kodiak.dtsi | 5 +
.../qcom/qcs6490-radxa-dragon-q6a-lpass-cpu.dts | 131 +++
.../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 1047 +-----------------
.../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dtsi | 1137 ++++++++++++++++++++
drivers/firmware/qcom/qcom_scm.c | 1 +
7 files changed, 1300 insertions(+), 1031 deletions(-)
---
base-commit: 816f193dd0d95246f208590924dd962b192def78
change-id: 20260407-dragon-q6a-feat-fixes-6a30f6ba8b18
Best regards,
--
Xilin Wu <sophon@radxa.com>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH 01/12] firmware: qcom: scm: Allow QSEECOM for Radxa Dragon Q6A
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
@ 2026-04-07 15:19 ` Xilin Wu
2026-04-09 1:54 ` Dmitry Baryshkov
2026-04-07 15:19 ` [PATCH 02/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable UFS controller Xilin Wu
` (10 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu
add "radxa,dragon-q6a" as compatible device for QSEECOM
This is required to get access to efivars and uefi boot loader support.
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
drivers/firmware/qcom/qcom_scm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
index 9b06a69d3a6d..55b18463560a 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -2319,6 +2319,7 @@ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = {
{ .compatible = "qcom,x1e80100-crd" },
{ .compatible = "qcom,x1e80100-qcp" },
{ .compatible = "qcom,x1p42100-crd" },
+ { .compatible = "radxa,dragon-q6a" },
{ }
};
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 02/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable UFS controller
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
2026-04-07 15:19 ` [PATCH 01/12] firmware: qcom: scm: Allow QSEECOM for Radxa Dragon Q6A Xilin Wu
@ 2026-04-07 15:19 ` Xilin Wu
2026-04-08 8:59 ` Konrad Dybcio
2026-04-07 15:19 ` [PATCH 03/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable USB 3.0 and HDMI ports Xilin Wu
` (9 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu
Add and enable UFS related nodes for this board.
Note that UFS Gear-4 Rate-B is unstable due to board and UFS module design
limitations. UFS on this board is stable when working at Gear-4 Rate-A.
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
.../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 23 ++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
index bb5a42b038f1..c961d3ec625f 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
@@ -959,6 +959,29 @@ &uart5 {
status = "okay";
};
+&ufs_mem_hc {
+ reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+ vcc-supply = <&vreg_l7b_2p96>;
+ vcc-max-microamp = <800000>;
+ vccq-supply = <&vreg_l9b_1p2>;
+ vccq-max-microamp = <900000>;
+ vccq2-supply = <&vreg_l9b_1p2>;
+ vccq2-max-microamp = <1300000>;
+
+ /* Gear-4 Rate-B is unstable due to board */
+ /* and UFS module design limitations */
+ limit-gear-rate = "rate-a";
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&vreg_l10c_0p88>;
+ vdda-pll-supply = <&vreg_l6b_1p2>;
+
+ status = "okay";
+};
+
&usb_2 {
dr_mode = "host";
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 03/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable USB 3.0 and HDMI ports
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
2026-04-07 15:19 ` [PATCH 01/12] firmware: qcom: scm: Allow QSEECOM for Radxa Dragon Q6A Xilin Wu
2026-04-07 15:19 ` [PATCH 02/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable UFS controller Xilin Wu
@ 2026-04-07 15:19 ` Xilin Wu
2026-04-08 9:03 ` Konrad Dybcio
2026-04-07 15:19 ` [PATCH 04/12] arm64: dts: qcom: kodiak: Add I2C aliases for CCI Xilin Wu
` (8 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu
This board doesn't feature a regular Type-C port. The usb_1_qmpphy's
RX1/TX1 pair is statically connected to the USB-A port, while its RX0/TX0
pair is connected to the RA620 DP-to-HDMI bridge.
Add and enable the nodes for the features to work.
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
.../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 152 +++++++++++++++++++++
1 file changed, 152 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
index c961d3ec625f..8d649b3a1cfa 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
@@ -111,6 +111,71 @@ usb2_3_connector: endpoint {
};
};
+ usb3_con: connector {
+ compatible = "usb-a-connector";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ usb3_con_hs_in: endpoint {
+ remote-endpoint = <&usb_1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ usb3_con_ss_in: endpoint {
+ remote-endpoint = <&usb_1_qmpphy_out_usb>;
+ };
+ };
+ };
+ };
+
+ hdmi-bridge {
+ compatible = "radxa,ra620";
+
+ pinctrl-0 = <&dp_hot_plug_det>;
+ pinctrl-names = "default";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ hdmi_bridge_in: endpoint {
+ remote-endpoint = <&usb_1_qmpphy_out_dp>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ hdmi_bridge_out: endpoint {
+ remote-endpoint = <&hdmi_connector_in>;
+ };
+ };
+ };
+ };
+
+ hdmi-connector {
+ compatible = "hdmi-connector";
+ label = "hdmi";
+ type = "a";
+
+ port {
+ hdmi_connector_in: endpoint {
+ remote-endpoint = <&hdmi_bridge_out>;
+ };
+ };
+ };
+
leds {
compatible = "gpio-leds";
@@ -521,6 +586,21 @@ &lpass_va_macro {
status = "okay";
};
+&mdss {
+ status = "okay";
+};
+
+&mdss_dp {
+ sound-name-prefix = "Display Port0";
+
+ status = "okay";
+};
+
+&mdss_dp_out {
+ data-lanes = <0 1>;
+ remote-endpoint = <&usb_dp_qmpphy_dp_in>;
+};
+
&pcie0 {
perst-gpios = <&tlmm 87 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>;
@@ -738,6 +818,22 @@ &sound {
"AMIC2", "MIC BIAS2",
"TX SWR_ADC1", "ADC2_OUTPUT";
+ dp0-dai-link {
+ link-name = "DP0 Playback";
+
+ codec {
+ sound-dai = <&mdss_dp>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai DISPLAY_PORT_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
wcd-playback-dai-link {
link-name = "WCD Playback";
@@ -982,6 +1078,58 @@ &ufs_mem_phy {
status = "okay";
};
+&usb_1 {
+ dr_mode = "host";
+
+ status = "okay";
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&usb3_con_hs_in>;
+};
+
+&usb_1_hsphy {
+ vdda-pll-supply = <&vreg_l10c_0p88>;
+ vdda33-supply = <&vreg_l2b_3p072>;
+ vdda18-supply = <&vreg_l1c_1p8>;
+
+ status = "okay";
+};
+
+&usb_1_qmpphy {
+ vdda-phy-supply = <&vreg_l6b_1p2>;
+ vdda-pll-supply = <&vreg_l1b_0p912>;
+
+ /delete-property/ orientation-switch;
+
+ status = "okay";
+
+ ports {
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /delete-node/ endpoint;
+
+ /* RX0/TX0 is statically connected to RA620 bridge */
+ usb_1_qmpphy_out_dp: endpoint@0 {
+ reg = <0>;
+
+ data-lanes = <0 1>;
+ remote-endpoint = <&hdmi_bridge_in>;
+ };
+
+ /* RX1/TX1 is statically connected to USB-A port */
+ usb_1_qmpphy_out_usb: endpoint@1 {
+ reg = <1>;
+
+ data-lanes = <2 3>;
+ remote-endpoint = <&usb3_con_ss_in>;
+ };
+ };
+ };
+};
+
&usb_2 {
dr_mode = "host";
@@ -1048,6 +1196,10 @@ &venus {
};
/* PINCTRL - additions to nodes defined in sc7280.dtsi */
+&dp_hot_plug_det {
+ bias-disable;
+};
+
&pcie0_clkreq_n {
bias-pull-up;
drive-strength = <2>;
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 04/12] arm64: dts: qcom: kodiak: Add I2C aliases for CCI
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
` (2 preceding siblings ...)
2026-04-07 15:19 ` [PATCH 03/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable USB 3.0 and HDMI ports Xilin Wu
@ 2026-04-07 15:19 ` Xilin Wu
2026-04-07 15:19 ` [PATCH 05/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Use board-specific CDSP firmware Xilin Wu
` (7 subsequent siblings)
11 siblings, 0 replies; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu, Stephen Chen
From: Stephen Chen <stephen@radxa.com>
Add I2C bus aliases (i2c16-i2c19) for the CCI (Camera Control Interface)
I2C buses, allowing a stable numbering of these buses independent of
probe order.
Signed-off-by: Stephen Chen <stephen@radxa.com>
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
arch/arm64/boot/dts/qcom/kodiak.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qcom/kodiak.dtsi
index 988ca5f7c8a0..3a30126af3d4 100644
--- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
+++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
@@ -57,6 +57,10 @@ aliases {
i2c13 = &i2c13;
i2c14 = &i2c14;
i2c15 = &i2c15;
+ i2c16 = &cci0_i2c0;
+ i2c17 = &cci0_i2c1;
+ i2c18 = &cci1_i2c0;
+ i2c19 = &cci1_i2c1;
mmc1 = &sdhc_1;
mmc2 = &sdhc_2;
spi0 = &spi0;
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 05/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Use board-specific CDSP firmware
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
` (3 preceding siblings ...)
2026-04-07 15:19 ` [PATCH 04/12] arm64: dts: qcom: kodiak: Add I2C aliases for CCI Xilin Wu
@ 2026-04-07 15:19 ` Xilin Wu
2026-04-08 9:04 ` Konrad Dybcio
2026-04-07 15:19 ` [PATCH 06/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Drop QSPI node and reserve its pins Xilin Wu
` (6 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu
The official boot firmware for Dragon Q6A has been switched to the
Qualcomm WP (Windows) boot firmware. Use the matching board-specific
CDSP firmware instead of the generic one so that the DSP firmware stack
remains compatible with the new boot firmware.
The corresponding custom DSP firmware has already been added to
linux-firmware:
https://gitlab.com/kernel-firmware/linux-firmware/-/merge_requests/882
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
index 8d649b3a1cfa..91f1b4f57915 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
@@ -783,7 +783,7 @@ &remoteproc_adsp {
};
&remoteproc_cdsp {
- firmware-name = "qcom/qcs6490/cdsp.mbn";
+ firmware-name = "qcom/qcs6490/radxa/dragon-q6a/cdsp.mbn";
status = "okay";
};
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 06/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Drop QSPI node and reserve its pins
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
` (4 preceding siblings ...)
2026-04-07 15:19 ` [PATCH 05/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Use board-specific CDSP firmware Xilin Wu
@ 2026-04-07 15:19 ` Xilin Wu
2026-04-07 15:19 ` [PATCH 07/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Correct GPIO_27 label Xilin Wu
` (5 subsequent siblings)
11 siblings, 0 replies; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu
The latest official boot firmware configures TrustZone to restrict
direct access to the QSPI controller. Any attempt to access it from
the non-secure world causes an immediate board reset.
Remove the QSPI flash node and its associated pinctrl states, mark
GPIOs 12-17 as reserved, and protect the QSPI clocks in the GCC
node to prevent the kernel from touching this hardware.
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
.../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 60 +++-------------------
1 file changed, 7 insertions(+), 53 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
index 91f1b4f57915..8d6bb4b0724b 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
@@ -513,6 +513,9 @@ &gcc {
<GCC_MSS_Q6SS_BOOT_CLK_SRC>,
<GCC_MSS_Q6_MEMNOC_AXI_CLK>,
<GCC_MSS_SNOC_AXI_CLK>,
+ <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+ <GCC_QSPI_CORE_CLK>,
+ <GCC_QSPI_CORE_CLK_SRC>,
<GCC_SEC_CTRL_CLK_SRC>,
<GCC_WPSS_AHB_BDG_MST_CLK>,
<GCC_WPSS_AHB_CLK>,
@@ -745,28 +748,6 @@ &pon_pwrkey {
status = "okay";
};
-&qspi {
- /* It's not possible to use QSPI with iommu */
- /* due to an error in qcom_smmu_write_s2cr */
- /delete-property/ iommus;
-
- pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data0>,
- <&qspi_data1>, <&qspi_data23>;
- pinctrl-1 = <&qspi_sleep>;
- pinctrl-names = "default", "sleep";
-
- status = "okay";
-
- spi_flash: flash@0 {
- compatible = "winbond,w25q256", "jedec,spi-nor";
- reg = <0>;
-
- spi-max-frequency = <104000000>;
- spi-tx-bus-width = <4>;
- spi-rx-bus-width = <4>;
- };
-};
-
&qupv3_id_0 {
firmware-name = "qcom/qcm6490/qupv3fw.elf";
status = "okay";
@@ -906,6 +887,10 @@ wcd_tx: codec@0,3 {
};
&tlmm {
+ /*
+ * 12-17: reserved for QSPI flash
+ */
+ gpio-reserved-ranges = <12 6>;
gpio-line-names =
/* GPIO_0 ~ GPIO_3 */
"PIN_13", "PIN_15", "", "",
@@ -1024,12 +1009,6 @@ pcie1_wake_n: pcie1-wake-n-state {
bias-pull-up;
};
- qspi_sleep: qspi-sleep-state {
- pins = "gpio12", "gpio13", "gpio14", "gpio15", "gpio16", "gpio17";
- function = "gpio";
- output-disable;
- };
-
sd_cd: sd-cd-state {
pins = "gpio91";
function = "gpio";
@@ -1210,31 +1189,6 @@ &pcie1_clkreq_n {
drive-strength = <2>;
};
-&qspi_clk {
- bias-disable;
- drive-strength = <16>;
-};
-
-&qspi_cs0 {
- bias-disable;
- drive-strength = <8>;
-};
-
-&qspi_data0 {
- bias-disable;
- drive-strength = <8>;
-};
-
-&qspi_data1 {
- bias-disable;
- drive-strength = <8>;
-};
-
-&qspi_data23 {
- bias-disable;
- drive-strength = <8>;
-};
-
&sdc1_clk {
bias-disable;
drive-strength = <16>;
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 07/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Correct GPIO_27 label
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
` (5 preceding siblings ...)
2026-04-07 15:19 ` [PATCH 06/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Drop QSPI node and reserve its pins Xilin Wu
@ 2026-04-07 15:19 ` Xilin Wu
2026-04-08 9:04 ` Konrad Dybcio
2026-04-07 15:20 ` [PATCH 08/12] arm64: dts: qcom: kodiak: Mark secondary USB controller as wakeup source Xilin Wu
` (4 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:19 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu, Stephen Chen
From: Stephen Chen <stephen@radxa.com>
The label of GPIO_27 is wrong. Fix it.
Fixes: ef254b12ec60 ("arm64: dts: qcom: qcs6490: Introduce Radxa Dragon Q6A")
Signed-off-by: Stephen Chen <stephen@radxa.com>
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
index 8d6bb4b0724b..fe3f60f8ed5a 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
@@ -905,7 +905,7 @@ &tlmm {
/* GPIO_20 ~ GPIO_23 */
"", "", "PIN_8", "PIN_10",
/* GPIO_24 ~ GPIO_27 */
- "PIN_3", "PIN_5", "PIN_16", "PIN_27",
+ "PIN_3", "PIN_5", "PIN_16", "PIN_18",
/* GPIO_28 ~ GPIO_31 */
"PIN_31", "PIN_11", "PIN_32", "PIN_29",
/* GPIO_32 ~ GPIO_35 */
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 08/12] arm64: dts: qcom: kodiak: Mark secondary USB controller as wakeup source
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
` (6 preceding siblings ...)
2026-04-07 15:19 ` [PATCH 07/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Correct GPIO_27 label Xilin Wu
@ 2026-04-07 15:20 ` Xilin Wu
2026-04-08 9:04 ` Konrad Dybcio
2026-04-07 15:20 ` [PATCH 09/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Align reserved-memory with latest firmware map Xilin Wu
` (3 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:20 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu, Stephen Chen
From: Stephen Chen <stephen@radxa.com>
Mark the secondary USB controller (usb_2) as a wakeup source so that it
can be used to wake the system from suspend.
Signed-off-by: Stephen Chen <stephen@radxa.com>
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
arch/arm64/boot/dts/qcom/kodiak.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qcom/kodiak.dtsi
index 3a30126af3d4..940ec799e905 100644
--- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
+++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
@@ -4404,6 +4404,7 @@ usb_2: usb@8c00000 {
phy-names = "usb2-phy";
maximum-speed = "high-speed";
usb-role-switch;
+ wakeup-source;
port {
usb2_role_switch: endpoint {
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 09/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Align reserved-memory with latest firmware map
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
` (7 preceding siblings ...)
2026-04-07 15:20 ` [PATCH 08/12] arm64: dts: qcom: kodiak: Mark secondary USB controller as wakeup source Xilin Wu
@ 2026-04-07 15:20 ` Xilin Wu
2026-04-07 15:20 ` [PATCH 10/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: factor out common board dtsi Xilin Wu
` (2 subsequent siblings)
11 siblings, 0 replies; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:20 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu
The current board DTS no longer matches the reserved-memory carveouts
used by the latest official Dragon Q6A firmware. Update the memory map
to keep the DTS in sync with firmware expectations.
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
.../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 43 +++++++++-------------
1 file changed, 17 insertions(+), 26 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
index fe3f60f8ed5a..5679f38de5b3 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
@@ -22,7 +22,9 @@
#include "qcs6490-audioreach.dtsi"
/delete-node/ &adsp_mem;
+/delete-node/ &adsp_rpc_remote_heap_mem;
/delete-node/ &cdsp_mem;
+/delete-node/ &gpu_zap_mem;
/delete-node/ &ipa_fw_mem;
/delete-node/ &mpss_mem;
/delete-node/ &remoteproc_mpss;
@@ -33,7 +35,6 @@
/delete-node/ &wlan_ce_mem;
/delete-node/ &wlan_fw_mem;
/delete-node/ &wpss_mem;
-/delete-node/ &xbl_mem;
/ {
model = "Radxa Dragon Q6A";
@@ -193,43 +194,33 @@ user-led {
};
reserved-memory {
- xbl_mem: xbl@80700000 {
- reg = <0x0 0x80700000 0x0 0x100000>;
+ lpass_ml_mem: lpass-ml@81800000 {
+ reg = <0x0 0x81800000 0x0 0xf00000>;
no-map;
};
- cdsp_secure_heap_mem: cdsp-secure-heap@81800000 {
- reg = <0x0 0x81800000 0x0 0x1e00000>;
+ cdsp_secure_heap_mem: cdsp-secure-heap@82700000 {
+ reg = <0x0 0x82700000 0x0 0x10000>;
no-map;
};
- camera_mem: camera@84300000 {
- reg = <0x0 0x84300000 0x0 0x500000>;
+ adsp_mem: adsp@8b800000 {
+ reg = <0x0 0x8b800000 0x0 0x2800000>;
no-map;
};
- adsp_mem: adsp@84800000 {
- reg = <0x0 0x84800000 0x0 0x2800000>;
+ cdsp_mem: cdsp@8e000000 {
+ reg = <0x0 0x8e000000 0x0 0x1e00000>;
no-map;
};
- cdsp_mem: cdsp@87000000 {
- reg = <0x0 0x87000000 0x0 0x1e00000>;
+ video_mem: video@8fe00000 {
+ reg = <0x0 0x8fe00000 0x0 0x500000>;
no-map;
};
- video_mem: video@88e00000 {
- reg = <0x0 0x88e00000 0x0 0x700000>;
- no-map;
- };
-
- cvp_mem: cvp@89500000 {
- reg = <0x0 0x89500000 0x0 0x500000>;
- no-map;
- };
-
- gpu_microcode_mem: gpu-microcode@89a00000 {
- reg = <0x0 0x89a00000 0x0 0x2000>;
+ gpu_zap_mem: zap@90300000 {
+ reg = <0x0 0x90300000 0x0 0x5000>;
no-map;
};
@@ -249,12 +240,12 @@ qtee_mem: qtee@c1300000 {
};
trusted_apps_mem: trusted-apps@c1800000 {
- reg = <0x0 0xc1800000 0x0 0x1c00000>;
+ reg = <0x0 0xc1800000 0x0 0x2200000>;
no-map;
};
- debug_vm_mem: debug-vm@d0600000 {
- reg = <0x0 0xd0600000 0x0 0x100000>;
+ adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap@c6500000 {
+ reg = <0x0 0xc6500000 0x0 0x800000>;
no-map;
};
};
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 10/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: factor out common board dtsi
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
` (8 preceding siblings ...)
2026-04-07 15:20 ` [PATCH 09/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Align reserved-memory with latest firmware map Xilin Wu
@ 2026-04-07 15:20 ` Xilin Wu
2026-04-07 15:20 ` [PATCH 11/12] ASoC: dt-bindings: google,sc7280-herobrine: Add Radxa Dragon Q6A sound card Xilin Wu
2026-04-07 15:20 ` [PATCH 12/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: add LPASS CPU audio variant Xilin Wu
11 siblings, 0 replies; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:20 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu
Move the common Radxa Dragon Q6A board description from
qcs6490-radxa-dragon-q6a.dts to a new qcs6490-radxa-dragon-q6a.dtsi so
it can be shared by multiple board variants.
Keep the existing Audioreach-based qcs6490-radxa-dragon-q6a.dts as the
default configuration by including the new common .dtsi and
qcs6490-audioreach.dtsi.
No functional change intended.
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
.../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 1135 +------------------
.../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dtsi | 1137 ++++++++++++++++++++
2 files changed, 1139 insertions(+), 1133 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
index 5679f38de5b3..f52328fbaef9 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
@@ -1,568 +1,13 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
- * Copyright (c) 2025 Radxa Computer (Shenzhen) Co., Ltd.
+ * Copyright (c) 2025-2026 Radxa Computer (Shenzhen) Co., Ltd.
*/
/dts-v1/;
-/* PM7250B is configured to use SID8/9 */
-#define PM7250B_SID 8
-#define PM7250B_SID1 9
-
-#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
-#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
-#include <dt-bindings/leds/common.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
-#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
-#include "kodiak.dtsi"
-#include "pm7250b.dtsi"
-#include "pm7325.dtsi"
-#include "pm8350c.dtsi" /* PM7350C */
-#include "pmk8350.dtsi" /* PMK7325 */
+#include "qcs6490-radxa-dragon-q6a.dtsi"
#include "qcs6490-audioreach.dtsi"
-/delete-node/ &adsp_mem;
-/delete-node/ &adsp_rpc_remote_heap_mem;
-/delete-node/ &cdsp_mem;
-/delete-node/ &gpu_zap_mem;
-/delete-node/ &ipa_fw_mem;
-/delete-node/ &mpss_mem;
-/delete-node/ &remoteproc_mpss;
-/delete-node/ &remoteproc_wpss;
-/delete-node/ &rmtfs_mem;
-/delete-node/ &video_mem;
-/delete-node/ &wifi;
-/delete-node/ &wlan_ce_mem;
-/delete-node/ &wlan_fw_mem;
-/delete-node/ &wpss_mem;
-
-/ {
- model = "Radxa Dragon Q6A";
- compatible = "radxa,dragon-q6a", "qcom,qcm6490";
- chassis-type = "embedded";
-
- aliases {
- mmc0 = &sdhc_1;
- mmc1 = &sdhc_2;
- serial0 = &uart5;
- };
-
- wcd938x: audio-codec {
- compatible = "qcom,wcd9380-codec";
-
- pinctrl-0 = <&wcd_default>;
- pinctrl-names = "default";
-
- reset-gpios = <&tlmm 83 GPIO_ACTIVE_LOW>;
-
- vdd-rxtx-supply = <&vreg_l18b_1p8>;
- vdd-io-supply = <&vreg_l18b_1p8>;
- vdd-buck-supply = <&vreg_l17b_1p8>;
- vdd-mic-bias-supply = <&vreg_bob_3p296>;
-
- 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>;
-
- qcom,hphl-jack-type-normally-closed;
-
- #sound-dai-cells = <1>;
- };
-
- chosen {
- stdout-path = "serial0:115200n8";
- };
-
- usb2_1_con: connector-0 {
- compatible = "usb-a-connector";
- vbus-supply = <&vcc_5v_peri>;
-
- port {
- usb2_1_connector: endpoint {
- remote-endpoint = <&usb_hub_2_1>;
- };
- };
- };
-
- usb2_2_con: connector-1 {
- compatible = "usb-a-connector";
- vbus-supply = <&vcc_5v_peri>;
-
- port {
- usb2_2_connector: endpoint {
- remote-endpoint = <&usb_hub_2_2>;
- };
- };
- };
-
- usb2_3_con: connector-2 {
- compatible = "usb-a-connector";
- vbus-supply = <&vcc_5v_peri>;
-
- port {
- usb2_3_connector: endpoint {
- remote-endpoint = <&usb_hub_2_3>;
- };
- };
- };
-
- usb3_con: connector {
- compatible = "usb-a-connector";
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
-
- usb3_con_hs_in: endpoint {
- remote-endpoint = <&usb_1_dwc3_hs>;
- };
- };
-
- port@1 {
- reg = <1>;
-
- usb3_con_ss_in: endpoint {
- remote-endpoint = <&usb_1_qmpphy_out_usb>;
- };
- };
- };
- };
-
- hdmi-bridge {
- compatible = "radxa,ra620";
-
- pinctrl-0 = <&dp_hot_plug_det>;
- pinctrl-names = "default";
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
-
- hdmi_bridge_in: endpoint {
- remote-endpoint = <&usb_1_qmpphy_out_dp>;
- };
- };
-
- port@1 {
- reg = <1>;
-
- hdmi_bridge_out: endpoint {
- remote-endpoint = <&hdmi_connector_in>;
- };
- };
- };
- };
-
- hdmi-connector {
- compatible = "hdmi-connector";
- label = "hdmi";
- type = "a";
-
- port {
- hdmi_connector_in: endpoint {
- remote-endpoint = <&hdmi_bridge_out>;
- };
- };
- };
-
- leds {
- compatible = "gpio-leds";
-
- pinctrl-0 = <&user_led>;
- pinctrl-names = "default";
-
- user-led {
- color = <LED_COLOR_ID_BLUE>;
- function = LED_FUNCTION_INDICATOR;
- gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "none";
- default-state = "off";
- panic-indicator;
- };
- };
-
- reserved-memory {
- lpass_ml_mem: lpass-ml@81800000 {
- reg = <0x0 0x81800000 0x0 0xf00000>;
- no-map;
- };
-
- cdsp_secure_heap_mem: cdsp-secure-heap@82700000 {
- reg = <0x0 0x82700000 0x0 0x10000>;
- no-map;
- };
-
- adsp_mem: adsp@8b800000 {
- reg = <0x0 0x8b800000 0x0 0x2800000>;
- no-map;
- };
-
- cdsp_mem: cdsp@8e000000 {
- reg = <0x0 0x8e000000 0x0 0x1e00000>;
- no-map;
- };
-
- video_mem: video@8fe00000 {
- reg = <0x0 0x8fe00000 0x0 0x500000>;
- no-map;
- };
-
- gpu_zap_mem: zap@90300000 {
- reg = <0x0 0x90300000 0x0 0x5000>;
- no-map;
- };
-
- tz_stat_mem: tz-stat@c0000000 {
- reg = <0x0 0xc0000000 0x0 0x100000>;
- no-map;
- };
-
- tags_mem: tags@c0100000 {
- reg = <0x0 0xc0100000 0x0 0x1200000>;
- no-map;
- };
-
- qtee_mem: qtee@c1300000 {
- reg = <0x0 0xc1300000 0x0 0x500000>;
- no-map;
- };
-
- trusted_apps_mem: trusted-apps@c1800000 {
- reg = <0x0 0xc1800000 0x0 0x2200000>;
- no-map;
- };
-
- adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap@c6500000 {
- reg = <0x0 0xc6500000 0x0 0x800000>;
- no-map;
- };
- };
-
- thermal-zones {
- msm-skin-thermal {
- polling-delay-passive = <0>;
- thermal-sensors = <&pmk8350_adc_tm 2>;
- };
-
- quiet-thermal {
- polling-delay-passive = <0>;
- thermal-sensors = <&pmk8350_adc_tm 1>;
- };
-
- ufs-thermal {
- polling-delay-passive = <0>;
- thermal-sensors = <&pmk8350_adc_tm 3>;
- };
-
- xo-thermal {
- polling-delay-passive = <0>;
- thermal-sensors = <&pmk8350_adc_tm 0>;
- };
- };
-
- vcc_1v8: regulator-vcc-1v8 {
- compatible = "regulator-fixed";
- regulator-name = "vcc_1v8";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- vin-supply = <&vcc_5v_peri>;
-
- regulator-boot-on;
- regulator-always-on;
- };
-
- vcc_3v3: regulator-vcc-3v3 {
- compatible = "regulator-fixed";
- regulator-name = "vcc_3v3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- vin-supply = <&vcc_5v_peri>;
-
- regulator-boot-on;
- regulator-always-on;
- };
-
- vcc_5v_peri: regulator-vcc-5v-peri {
- compatible = "regulator-fixed";
- regulator-name = "vcc_5v_peri";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- vin-supply = <&vph_pwr>;
-
- regulator-boot-on;
- regulator-always-on;
- };
-
- vph_pwr: regulator-vph-pwr {
- compatible = "regulator-fixed";
- regulator-name = "vph_pwr";
- regulator-min-microvolt = <3700000>;
- regulator-max-microvolt = <3700000>;
-
- regulator-boot-on;
- regulator-always-on;
- };
-};
-
-&apps_rsc {
- regulators-0 {
- compatible = "qcom,pm7325-rpmh-regulators";
- qcom,pmic-id = "b";
-
- 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>;
- vdd-s7-supply = <&vph_pwr>;
- vdd-s8-supply = <&vph_pwr>;
- vdd-l1-l4-l12-l15-supply = <&vreg_s7b_0p536>;
- vdd-l2-l7-supply = <&vreg_bob_3p296>;
- vdd-l6-l9-l10-supply = <&vreg_s8b_1p2>;
- vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p84>;
-
- vreg_s1b_1p84: smps1 {
- regulator-name = "vreg_s1b_1p84";
- regulator-min-microvolt = <1840000>;
- regulator-max-microvolt = <2040000>;
- };
-
- vreg_s7b_0p536: smps7 {
- regulator-name = "vreg_s7b_0p536";
- regulator-min-microvolt = <536000>;
- regulator-max-microvolt = <1120000>;
- };
-
- vreg_s8b_1p2: smps8 {
- regulator-name = "vreg_s8b_1p2";
- regulator-min-microvolt = <1200000>;
- regulator-max-microvolt = <1496000>;
- regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
- };
-
- vreg_l1b_0p912: ldo1 {
- regulator-name = "vreg_l1b_0p912";
- regulator-min-microvolt = <832000>;
- 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_l2b_3p072: ldo2 {
- regulator-name = "vreg_l2b_3p072";
- regulator-min-microvolt = <2704000>;
- regulator-max-microvolt = <3544000>;
- regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
- regulator-allow-set-load;
- regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
- RPMH_REGULATOR_MODE_HPM>;
- };
-
- vreg_l6b_1p2: ldo6 {
- regulator-name = "vreg_l6b_1p2";
- regulator-min-microvolt = <1200000>;
- regulator-max-microvolt = <1256000>;
- regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
- regulator-allow-set-load;
- regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
- RPMH_REGULATOR_MODE_HPM>;
- };
-
- vreg_l7b_2p96: ldo7 {
- regulator-name = "vreg_l7b_2p96";
- regulator-min-microvolt = <2960000>;
- regulator-max-microvolt = <2960000>;
- regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
- regulator-allow-set-load;
- regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
- RPMH_REGULATOR_MODE_HPM>;
- };
-
- vreg_l9b_1p2: ldo9 {
- regulator-name = "vreg_l9b_1p2";
- regulator-min-microvolt = <1200000>;
- regulator-max-microvolt = <1304000>;
- regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
- regulator-allow-set-load;
- regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
- RPMH_REGULATOR_MODE_HPM>;
- };
-
- vreg_l17b_1p8: ldo17 {
- regulator-name = "vreg_l17b_1p8";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1896000>;
- regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
- };
-
- vreg_l18b_1p8: ldo18 {
- regulator-name = "vreg_l18b_1p8";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <2000000>;
- regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
- regulator-always-on;
- };
-
- vreg_l19b_1p8: ldo19 {
- regulator-name = "vreg_l19b_1p8";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <2000000>;
- 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,pm8350c-rpmh-regulators";
- qcom,pmic-id = "c";
-
- 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>;
- vdd-s7-supply = <&vph_pwr>;
- vdd-s8-supply = <&vph_pwr>;
- vdd-s9-supply = <&vph_pwr>;
- vdd-s10-supply = <&vph_pwr>;
- vdd-l1-l12-supply = <&vreg_s1b_1p84>;
- vdd-l6-l9-l11-supply = <&vreg_bob_3p296>;
- vdd-l10-supply = <&vreg_s7b_0p536>;
- vdd-bob-supply = <&vph_pwr>;
-
- vreg_l1c_1p8: ldo1 {
- regulator-name = "vreg_l1c_1p8";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1976000>;
- regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
- regulator-allow-set-load;
- regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
- RPMH_REGULATOR_MODE_HPM>;
- };
-
- vreg_l6c_2p96: ldo6 {
- regulator-name = "vreg_l6c_2p96";
- regulator-min-microvolt = <1650000>;
- regulator-max-microvolt = <3544000>;
- regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
- regulator-allow-set-load;
- regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
- RPMH_REGULATOR_MODE_HPM>;
- };
-
- vreg_l9c_2p96: ldo9 {
- regulator-name = "vreg_l9c_2p96";
- regulator-min-microvolt = <2704000>;
- regulator-max-microvolt = <3544000>;
- regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
- regulator-allow-set-load;
- regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
- RPMH_REGULATOR_MODE_HPM>;
- };
-
- vreg_l10c_0p88: ldo10 {
- regulator-name = "vreg_l10c_0p88";
- regulator-min-microvolt = <720000>;
- regulator-max-microvolt = <1048000>;
- regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
- regulator-allow-set-load;
- regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
- RPMH_REGULATOR_MODE_HPM>;
- };
-
- vreg_bob_3p296: bob {
- regulator-name = "vreg_bob_3p296";
- regulator-min-microvolt = <3032000>;
- regulator-max-microvolt = <3960000>;
- };
- };
-};
-
-&gcc {
- protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
- <GCC_MSS_CFG_AHB_CLK>,
- <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
- <GCC_MSS_OFFLINE_AXI_CLK>,
- <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
- <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
- <GCC_MSS_SNOC_AXI_CLK>,
- <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
- <GCC_QSPI_CORE_CLK>,
- <GCC_QSPI_CORE_CLK_SRC>,
- <GCC_SEC_CTRL_CLK_SRC>,
- <GCC_WPSS_AHB_BDG_MST_CLK>,
- <GCC_WPSS_AHB_CLK>,
- <GCC_WPSS_RSCP_CLK>;
-};
-
-&gpi_dma0 {
- status = "okay";
-};
-
-&gpi_dma1 {
- status = "okay";
-};
-
-&gpu {
- status = "okay";
-};
-
-&gpu_zap_shader {
- firmware-name = "qcom/qcs6490/a660_zap.mbn";
-};
-
-/* Pin 13, 15 in GPIO header */
-&i2c0 {
- qcom,enable-gsi-dma;
- status = "okay";
-};
-
-/* Pin 27, 28 in GPIO header */
-&i2c2 {
- qcom,enable-gsi-dma;
- status = "okay";
-};
-
-/* Pin 3, 5 in GPIO header */
-&i2c6 {
- qcom,enable-gsi-dma;
- status = "okay";
-};
-
-&i2c10 {
- qcom,enable-gsi-dma;
- status = "okay";
-
- rtc: rtc@68 {
- compatible = "st,m41t11";
- reg = <0x68>;
- };
-};
-
-/* External touchscreen */
-&i2c13 {
- qcom,enable-gsi-dma;
- status = "okay";
-};
-
&lpass_audiocc {
compatible = "qcom,qcm6490-lpassaudiocc";
/delete-property/ power-domains;
@@ -580,207 +25,6 @@ &lpass_va_macro {
status = "okay";
};
-&mdss {
- status = "okay";
-};
-
-&mdss_dp {
- sound-name-prefix = "Display Port0";
-
- status = "okay";
-};
-
-&mdss_dp_out {
- data-lanes = <0 1>;
- remote-endpoint = <&usb_dp_qmpphy_dp_in>;
-};
-
-&pcie0 {
- perst-gpios = <&tlmm 87 GPIO_ACTIVE_LOW>;
- wake-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>;
-
- pinctrl-0 = <&pcie0_clkreq_n>, <&pcie0_reset_n>, <&pcie0_wake_n>;
- pinctrl-names = "default";
-
- status = "okay";
-};
-
-&pcie0_phy {
- vdda-phy-supply = <&vreg_l10c_0p88>;
- vdda-pll-supply = <&vreg_l6b_1p2>;
-
- status = "okay";
-};
-
-&pcie1 {
- perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
- wake-gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>;
-
- pinctrl-0 = <&pcie1_clkreq_n>, <&pcie1_reset_n>, <&pcie1_wake_n>;
- pinctrl-names = "default";
-
- /* Support for QPS615 PCIe switch */
- iommu-map = <0x0 &apps_smmu 0x1c80 0x1>,
- <0x100 &apps_smmu 0x1c81 0x1>,
- <0x208 &apps_smmu 0x1c84 0x1>,
- <0x210 &apps_smmu 0x1c85 0x1>,
- <0x218 &apps_smmu 0x1c86 0x1>,
- <0x300 &apps_smmu 0x1c87 0x1>,
- <0x400 &apps_smmu 0x1c88 0x1>,
- <0x500 &apps_smmu 0x1c89 0x1>,
- <0x501 &apps_smmu 0x1c90 0x1>;
-
- status = "okay";
-};
-
-&pcie1_phy {
- vdda-phy-supply = <&vreg_l10c_0p88>;
- vdda-pll-supply = <&vreg_l6b_1p2>;
-
- status = "okay";
-};
-
-&pm7325_gpios {
- pm7325_adc_default: adc-default-state {
- pins = "gpio2";
- function = PMIC_GPIO_FUNC_NORMAL;
- bias-high-impedance;
- };
-};
-
-&pm7325_temp_alarm {
- io-channels = <&pmk8350_vadc PM7325_ADC7_DIE_TEMP>;
- io-channel-names = "thermal";
-};
-
-&pmk8350_adc_tm {
- status = "okay";
-
- xo-therm@0 {
- reg = <0>;
- io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
- qcom,ratiometric;
- qcom,hw-settle-time-us = <200>;
- };
-
- quiet-therm@1 {
- reg = <1>;
- io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
- qcom,ratiometric;
- qcom,hw-settle-time-us = <200>;
- };
-
- msm-skin-therm@2 {
- reg = <2>;
- io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
- qcom,ratiometric;
- qcom,hw-settle-time-us = <200>;
- };
-
- ufs-therm@3 {
- reg = <3>;
- io-channels = <&pmk8350_vadc PM7325_ADC7_GPIO1_100K_PU>;
- qcom,ratiometric;
- qcom,hw-settle-time-us = <200>;
- };
-};
-
-&pmk8350_vadc {
- pinctrl-0 = <&pm7325_adc_default>;
- pinctrl-names = "default";
-
- channel@3 {
- reg = <PMK8350_ADC7_DIE_TEMP>;
- label = "pmk7325_die_temp";
- qcom,pre-scaling = <1 1>;
- };
-
- channel@44 {
- reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
- label = "xo_therm";
- qcom,hw-settle-time = <200>;
- qcom,pre-scaling = <1 1>;
- qcom,ratiometric;
- };
-
- channel@103 {
- reg = <PM7325_ADC7_DIE_TEMP>;
- label = "pm7325_die_temp";
- qcom,pre-scaling = <1 1>;
- };
-
- channel@144 {
- reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
- qcom,ratiometric;
- qcom,hw-settle-time = <200>;
- qcom,pre-scaling = <1 1>;
- label = "quiet_therm";
- };
-
- channel@146 {
- reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
- qcom,ratiometric;
- qcom,hw-settle-time = <200>;
- qcom,pre-scaling = <1 1>;
- label = "msm_skin_therm";
- };
-
- channel@14a {
- /* According to datasheet, 0x4a = AMUX1_GPIO = GPIO_02 */
- reg = <PM7325_ADC7_GPIO1_100K_PU>;
- qcom,ratiometric;
- qcom,hw-settle-time = <200>;
- qcom,pre-scaling = <1 1>;
- label = "ufs_therm";
- };
-};
-
-&pon_pwrkey {
- status = "okay";
-};
-
-&qupv3_id_0 {
- firmware-name = "qcom/qcm6490/qupv3fw.elf";
- status = "okay";
-};
-
-&qupv3_id_1 {
- firmware-name = "qcom/qcm6490/qupv3fw.elf";
- status = "okay";
-};
-
-&remoteproc_adsp {
- firmware-name = "qcom/qcs6490/radxa/dragon-q6a/adsp.mbn";
- status = "okay";
-};
-
-&remoteproc_cdsp {
- firmware-name = "qcom/qcs6490/radxa/dragon-q6a/cdsp.mbn";
- status = "okay";
-};
-
-&sdhc_1 {
- non-removable;
- no-sd;
- no-sdio;
-
- vmmc-supply = <&vreg_l7b_2p96>;
- vqmmc-supply = <&vreg_l19b_1p8>;
-
- status = "okay";
-};
-
-&sdhc_2 {
- pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>, <&sd_cd>;
- pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>, <&sd_cd>;
-
- vmmc-supply = <&vreg_l9c_2p96>;
- vqmmc-supply = <&vreg_l6c_2p96>;
-
- cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>;
- status = "okay";
-};
-
&sound {
compatible = "qcom,qcs6490-rb3gen2-sndcard";
model = "QCS6490-Radxa-Dragon-Q6A";
@@ -838,378 +82,3 @@ platform {
};
};
};
-
-/* Pin 11, 29, 31, 32 in GPIO header */
-&spi7 {
- qcom,enable-gsi-dma;
- status = "okay";
-};
-
-/* Pin 19, 21, 23, 24, 26 in GPIO header */
-&spi12 {
- qcom,enable-gsi-dma;
- status = "okay";
-};
-
-/* Pin 22, 33, 36, 37 in GPIO header */
-&spi14 {
- qcom,enable-gsi-dma;
- status = "okay";
-};
-
-&swr0 {
- status = "okay";
-
- wcd_rx: codec@0,4 {
- compatible = "sdw20217010d00";
- reg = <0 4>;
- qcom,rx-port-mapping = <1 2 3 4 5>;
- };
-};
-
-&swr1 {
- status = "okay";
-
- wcd_tx: codec@0,3 {
- compatible = "sdw20217010d00";
- reg = <0 3>;
- qcom,tx-port-mapping = <1 1 2 3>;
- };
-};
-
-&tlmm {
- /*
- * 12-17: reserved for QSPI flash
- */
- gpio-reserved-ranges = <12 6>;
- gpio-line-names =
- /* GPIO_0 ~ GPIO_3 */
- "PIN_13", "PIN_15", "", "",
- /* GPIO_4 ~ GPIO_7 */
- "", "", "", "",
- /* GPIO_8 ~ GPIO_11 */
- "PIN_27", "PIN_28", "", "",
- /* GPIO_12 ~ GPIO_15 */
- "", "", "", "",
- /* GPIO_16 ~ GPIO_19 */
- "", "", "", "",
- /* GPIO_20 ~ GPIO_23 */
- "", "", "PIN_8", "PIN_10",
- /* GPIO_24 ~ GPIO_27 */
- "PIN_3", "PIN_5", "PIN_16", "PIN_18",
- /* GPIO_28 ~ GPIO_31 */
- "PIN_31", "PIN_11", "PIN_32", "PIN_29",
- /* GPIO_32 ~ GPIO_35 */
- "", "", "", "",
- /* GPIO_36 ~ GPIO_39 */
- "", "", "", "",
- /* GPIO_40 ~ GPIO_43 */
- "", "", "", "",
- /* GPIO_44 ~ GPIO_47 */
- "", "", "", "",
- /* GPIO_48 ~ GPIO_51 */
- "PIN_21", "PIN_19", "PIN_23", "PIN_24",
- /* GPIO_52 ~ GPIO_55 */
- "", "", "", "PIN_26",
- /* GPIO_56 ~ GPIO_59 */
- "PIN_33", "PIN_22", "PIN_37", "PIN_36",
- /* GPIO_60 ~ GPIO_63 */
- "", "", "", "",
- /* GPIO_64 ~ GPIO_67 */
- "", "", "", "",
- /* GPIO_68 ~ GPIO_71 */
- "", "", "", "",
- /* GPIO_72 ~ GPIO_75 */
- "", "", "", "",
- /* GPIO_76 ~ GPIO_79 */
- "", "", "", "",
- /* GPIO_80 ~ GPIO_83 */
- "", "", "", "",
- /* GPIO_84 ~ GPIO_87 */
- "", "", "", "",
- /* GPIO_88 ~ GPIO_91 */
- "", "", "", "",
- /* GPIO_92 ~ GPIO_95 */
- "", "", "", "",
- /* GPIO_96 ~ GPIO_99 */
- "PIN_7", "PIN_12", "PIN_38", "PIN_40",
- /* GPIO_100 ~ GPIO_103 */
- "PIN_35", "", "", "",
- /* GPIO_104 ~ GPIO_107 */
- "", "", "", "",
- /* GPIO_108 ~ GPIO_111 */
- "", "", "", "",
- /* GPIO_112 ~ GPIO_115 */
- "", "", "", "",
- /* GPIO_116 ~ GPIO_119 */
- "", "", "", "",
- /* GPIO_120 ~ GPIO_123 */
- "", "", "", "",
- /* GPIO_124 ~ GPIO_127 */
- "", "", "", "",
- /* GPIO_128 ~ GPIO_131 */
- "", "", "", "",
- /* GPIO_132 ~ GPIO_135 */
- "", "", "", "",
- /* GPIO_136 ~ GPIO_139 */
- "", "", "", "",
- /* GPIO_140 ~ GPIO_143 */
- "", "", "", "",
- /* GPIO_144 ~ GPIO_147 */
- "", "", "", "",
- /* GPIO_148 ~ GPIO_151 */
- "", "", "", "",
- /* GPIO_152 ~ GPIO_155 */
- "", "", "", "",
- /* GPIO_156 ~ GPIO_159 */
- "", "", "", "",
- /* GPIO_160 ~ GPIO_163 */
- "", "", "", "",
- /* GPIO_164 ~ GPIO_167 */
- "", "", "", "",
- /* GPIO_168 ~ GPIO_171 */
- "", "", "", "",
- /* GPIO_172 ~ GPIO_174 */
- "", "", "";
-
- pcie0_reset_n: pcie0-reset-n-state {
- pins = "gpio87";
- function = "gpio";
- drive-strength = <2>;
- bias-disable;
- };
-
- pcie0_wake_n: pcie0-wake-n-state {
- pins = "gpio89";
- function = "gpio";
- drive-strength = <2>;
- bias-pull-up;
- };
-
- pcie1_reset_n: pcie1-reset-n-state {
- pins = "gpio2";
- function = "gpio";
- drive-strength = <2>;
- bias-disable;
- };
-
- pcie1_wake_n: pcie1-wake-n-state {
- pins = "gpio3";
- function = "gpio";
- drive-strength = <2>;
- bias-pull-up;
- };
-
- sd_cd: sd-cd-state {
- pins = "gpio91";
- function = "gpio";
- bias-pull-up;
- };
-
- user_led: user-led-state {
- pins = "gpio42";
- function = "gpio";
- bias-pull-up;
- };
-
- wcd_default: wcd-reset-n-active-state {
- pins = "gpio83";
- function = "gpio";
- drive-strength = <16>;
- bias-disable;
- output-low;
- };
-};
-
-&uart5 {
- status = "okay";
-};
-
-&ufs_mem_hc {
- reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
- vcc-supply = <&vreg_l7b_2p96>;
- vcc-max-microamp = <800000>;
- vccq-supply = <&vreg_l9b_1p2>;
- vccq-max-microamp = <900000>;
- vccq2-supply = <&vreg_l9b_1p2>;
- vccq2-max-microamp = <1300000>;
-
- /* Gear-4 Rate-B is unstable due to board */
- /* and UFS module design limitations */
- limit-gear-rate = "rate-a";
-
- status = "okay";
-};
-
-&ufs_mem_phy {
- vdda-phy-supply = <&vreg_l10c_0p88>;
- vdda-pll-supply = <&vreg_l6b_1p2>;
-
- status = "okay";
-};
-
-&usb_1 {
- dr_mode = "host";
-
- status = "okay";
-};
-
-&usb_1_dwc3_hs {
- remote-endpoint = <&usb3_con_hs_in>;
-};
-
-&usb_1_hsphy {
- vdda-pll-supply = <&vreg_l10c_0p88>;
- vdda33-supply = <&vreg_l2b_3p072>;
- vdda18-supply = <&vreg_l1c_1p8>;
-
- status = "okay";
-};
-
-&usb_1_qmpphy {
- vdda-phy-supply = <&vreg_l6b_1p2>;
- vdda-pll-supply = <&vreg_l1b_0p912>;
-
- /delete-property/ orientation-switch;
-
- status = "okay";
-
- ports {
- port@0 {
- #address-cells = <1>;
- #size-cells = <0>;
-
- /delete-node/ endpoint;
-
- /* RX0/TX0 is statically connected to RA620 bridge */
- usb_1_qmpphy_out_dp: endpoint@0 {
- reg = <0>;
-
- data-lanes = <0 1>;
- remote-endpoint = <&hdmi_bridge_in>;
- };
-
- /* RX1/TX1 is statically connected to USB-A port */
- usb_1_qmpphy_out_usb: endpoint@1 {
- reg = <1>;
-
- data-lanes = <2 3>;
- remote-endpoint = <&usb3_con_ss_in>;
- };
- };
- };
-};
-
-&usb_2 {
- dr_mode = "host";
-
- #address-cells = <1>;
- #size-cells = <0>;
-
- status = "okay";
-
- /* Onboard USB 2.0 hub */
- usb_hub_2_x: hub@1 {
- compatible = "usb1a40,0101";
- reg = <1>;
- vdd-supply = <&vcc_5v_peri>;
- #address-cells = <1>;
- #size-cells = <0>;
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@1 {
- reg = <1>;
-
- usb_hub_2_1: endpoint {
- remote-endpoint = <&usb2_1_connector>;
- };
- };
-
- port@2 {
- reg = <2>;
-
- usb_hub_2_2: endpoint {
- remote-endpoint = <&usb2_2_connector>;
- };
- };
-
- port@3 {
- reg = <3>;
-
- usb_hub_2_3: endpoint {
- remote-endpoint = <&usb2_3_connector>;
- };
- };
- };
-
- /* FCU760K Wi-Fi & Bluetooth module */
- wifi@4 {
- compatible = "usba69c,8d80";
- reg = <4>;
- };
- };
-};
-
-&usb_2_hsphy {
- vdda-pll-supply = <&vreg_l10c_0p88>;
- vdda33-supply = <&vreg_l2b_3p072>;
- vdda18-supply = <&vreg_l1c_1p8>;
-
- status = "okay";
-};
-
-&venus {
- status = "okay";
-};
-
-/* PINCTRL - additions to nodes defined in sc7280.dtsi */
-&dp_hot_plug_det {
- bias-disable;
-};
-
-&pcie0_clkreq_n {
- bias-pull-up;
- drive-strength = <2>;
-};
-
-&pcie1_clkreq_n {
- bias-pull-up;
- drive-strength = <2>;
-};
-
-&sdc1_clk {
- bias-disable;
- drive-strength = <16>;
-};
-
-&sdc1_cmd {
- bias-pull-up;
- drive-strength = <10>;
-};
-
-&sdc1_data {
- bias-pull-up;
- drive-strength = <10>;
-};
-
-&sdc1_rclk {
- bias-pull-down;
-};
-
-&sdc2_clk {
- bias-disable;
- drive-strength = <16>;
-};
-
-&sdc2_cmd {
- bias-pull-up;
- drive-strength = <10>;
-};
-
-&sdc2_data {
- bias-pull-up;
- drive-strength = <10>;
-};
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dtsi
new file mode 100644
index 000000000000..52c2f053c820
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dtsi
@@ -0,0 +1,1137 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025-2026 Radxa Computer (Shenzhen) Co., Ltd.
+ */
+
+/* PM7250B is configured to use SID8/9 */
+#define PM7250B_SID 8
+#define PM7250B_SID1 9
+
+#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "kodiak.dtsi"
+#include "pm7250b.dtsi"
+#include "pm7325.dtsi"
+#include "pm8350c.dtsi" /* PM7350C */
+#include "pmk8350.dtsi" /* PMK7325 */
+
+/delete-node/ &adsp_mem;
+/delete-node/ &adsp_rpc_remote_heap_mem;
+/delete-node/ &cdsp_mem;
+/delete-node/ &gpu_zap_mem;
+/delete-node/ &ipa_fw_mem;
+/delete-node/ &mpss_mem;
+/delete-node/ &remoteproc_mpss;
+/delete-node/ &remoteproc_wpss;
+/delete-node/ &rmtfs_mem;
+/delete-node/ &video_mem;
+/delete-node/ &wifi;
+/delete-node/ &wlan_ce_mem;
+/delete-node/ &wlan_fw_mem;
+/delete-node/ &wpss_mem;
+
+/ {
+ model = "Radxa Dragon Q6A";
+ compatible = "radxa,dragon-q6a", "qcom,qcm6490";
+ chassis-type = "embedded";
+
+ aliases {
+ mmc0 = &sdhc_1;
+ mmc1 = &sdhc_2;
+ serial0 = &uart5;
+ };
+
+ wcd938x: audio-codec {
+ compatible = "qcom,wcd9380-codec";
+
+ pinctrl-0 = <&wcd_default>;
+ pinctrl-names = "default";
+
+ reset-gpios = <&tlmm 83 GPIO_ACTIVE_LOW>;
+
+ vdd-rxtx-supply = <&vreg_l18b_1p8>;
+ vdd-io-supply = <&vreg_l18b_1p8>;
+ vdd-buck-supply = <&vreg_l17b_1p8>;
+ vdd-mic-bias-supply = <&vreg_bob_3p296>;
+
+ 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>;
+
+ qcom,hphl-jack-type-normally-closed;
+
+ #sound-dai-cells = <1>;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ usb2_1_con: connector-0 {
+ compatible = "usb-a-connector";
+ vbus-supply = <&vcc_5v_peri>;
+
+ port {
+ usb2_1_connector: endpoint {
+ remote-endpoint = <&usb_hub_2_1>;
+ };
+ };
+ };
+
+ usb2_2_con: connector-1 {
+ compatible = "usb-a-connector";
+ vbus-supply = <&vcc_5v_peri>;
+
+ port {
+ usb2_2_connector: endpoint {
+ remote-endpoint = <&usb_hub_2_2>;
+ };
+ };
+ };
+
+ usb2_3_con: connector-2 {
+ compatible = "usb-a-connector";
+ vbus-supply = <&vcc_5v_peri>;
+
+ port {
+ usb2_3_connector: endpoint {
+ remote-endpoint = <&usb_hub_2_3>;
+ };
+ };
+ };
+
+ usb3_con: connector {
+ compatible = "usb-a-connector";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ usb3_con_hs_in: endpoint {
+ remote-endpoint = <&usb_1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ usb3_con_ss_in: endpoint {
+ remote-endpoint = <&usb_1_qmpphy_out_usb>;
+ };
+ };
+ };
+ };
+
+ hdmi-bridge {
+ compatible = "radxa,ra620";
+
+ pinctrl-0 = <&dp_hot_plug_det>;
+ pinctrl-names = "default";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ hdmi_bridge_in: endpoint {
+ remote-endpoint = <&usb_1_qmpphy_out_dp>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ hdmi_bridge_out: endpoint {
+ remote-endpoint = <&hdmi_connector_in>;
+ };
+ };
+ };
+ };
+
+ hdmi-connector {
+ compatible = "hdmi-connector";
+ label = "hdmi";
+ type = "a";
+
+ port {
+ hdmi_connector_in: endpoint {
+ remote-endpoint = <&hdmi_bridge_out>;
+ };
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ pinctrl-0 = <&user_led>;
+ pinctrl-names = "default";
+
+ user-led {
+ color = <LED_COLOR_ID_BLUE>;
+ function = LED_FUNCTION_INDICATOR;
+ gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ panic-indicator;
+ };
+ };
+
+ reserved-memory {
+ lpass_ml_mem: lpass-ml@81800000 {
+ reg = <0x0 0x81800000 0x0 0xf00000>;
+ no-map;
+ };
+
+ cdsp_secure_heap_mem: cdsp-secure-heap@82700000 {
+ reg = <0x0 0x82700000 0x0 0x10000>;
+ no-map;
+ };
+
+ adsp_mem: adsp@8b800000 {
+ reg = <0x0 0x8b800000 0x0 0x2800000>;
+ no-map;
+ };
+
+ cdsp_mem: cdsp@8e000000 {
+ reg = <0x0 0x8e000000 0x0 0x1e00000>;
+ no-map;
+ };
+
+ video_mem: video@8fe00000 {
+ reg = <0x0 0x8fe00000 0x0 0x500000>;
+ no-map;
+ };
+
+ gpu_zap_mem: zap@90300000 {
+ reg = <0x0 0x90300000 0x0 0x5000>;
+ no-map;
+ };
+
+ tz_stat_mem: tz-stat@c0000000 {
+ reg = <0x0 0xc0000000 0x0 0x100000>;
+ no-map;
+ };
+
+ tags_mem: tags@c0100000 {
+ reg = <0x0 0xc0100000 0x0 0x1200000>;
+ no-map;
+ };
+
+ qtee_mem: qtee@c1300000 {
+ reg = <0x0 0xc1300000 0x0 0x500000>;
+ no-map;
+ };
+
+ trusted_apps_mem: trusted-apps@c1800000 {
+ reg = <0x0 0xc1800000 0x0 0x2200000>;
+ no-map;
+ };
+
+ adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap@c6500000 {
+ reg = <0x0 0xc6500000 0x0 0x800000>;
+ no-map;
+ };
+ };
+
+ thermal-zones {
+ msm-skin-thermal {
+ polling-delay-passive = <0>;
+ thermal-sensors = <&pmk8350_adc_tm 2>;
+ };
+
+ quiet-thermal {
+ polling-delay-passive = <0>;
+ thermal-sensors = <&pmk8350_adc_tm 1>;
+ };
+
+ ufs-thermal {
+ polling-delay-passive = <0>;
+ thermal-sensors = <&pmk8350_adc_tm 3>;
+ };
+
+ xo-thermal {
+ polling-delay-passive = <0>;
+ thermal-sensors = <&pmk8350_adc_tm 0>;
+ };
+ };
+
+ vcc_1v8: regulator-vcc-1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc_1v8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ vin-supply = <&vcc_5v_peri>;
+
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vcc_3v3: regulator-vcc-3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc_3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ vin-supply = <&vcc_5v_peri>;
+
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vcc_5v_peri: regulator-vcc-5v-peri {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc_5v_peri";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&vph_pwr>;
+
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vph_pwr: regulator-vph-pwr {
+ compatible = "regulator-fixed";
+ regulator-name = "vph_pwr";
+ regulator-min-microvolt = <3700000>;
+ regulator-max-microvolt = <3700000>;
+
+ regulator-boot-on;
+ regulator-always-on;
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm7325-rpmh-regulators";
+ qcom,pmic-id = "b";
+
+ 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>;
+ vdd-s7-supply = <&vph_pwr>;
+ vdd-s8-supply = <&vph_pwr>;
+ vdd-l1-l4-l12-l15-supply = <&vreg_s7b_0p536>;
+ vdd-l2-l7-supply = <&vreg_bob_3p296>;
+ vdd-l6-l9-l10-supply = <&vreg_s8b_1p2>;
+ vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p84>;
+
+ vreg_s1b_1p84: smps1 {
+ regulator-name = "vreg_s1b_1p84";
+ regulator-min-microvolt = <1840000>;
+ regulator-max-microvolt = <2040000>;
+ };
+
+ vreg_s7b_0p536: smps7 {
+ regulator-name = "vreg_s7b_0p536";
+ regulator-min-microvolt = <536000>;
+ regulator-max-microvolt = <1120000>;
+ };
+
+ vreg_s8b_1p2: smps8 {
+ regulator-name = "vreg_s8b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1496000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
+ };
+
+ vreg_l1b_0p912: ldo1 {
+ regulator-name = "vreg_l1b_0p912";
+ regulator-min-microvolt = <832000>;
+ 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_l2b_3p072: ldo2 {
+ regulator-name = "vreg_l2b_3p072";
+ regulator-min-microvolt = <2704000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6b_1p2: ldo6 {
+ regulator-name = "vreg_l6b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1256000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7b_2p96: ldo7 {
+ regulator-name = "vreg_l7b_2p96";
+ regulator-min-microvolt = <2960000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9b_1p2: ldo9 {
+ regulator-name = "vreg_l9b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17b_1p8: ldo17 {
+ regulator-name = "vreg_l17b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1896000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l18b_1p8: ldo18 {
+ regulator-name = "vreg_l18b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-always-on;
+ };
+
+ vreg_l19b_1p8: ldo19 {
+ regulator-name = "vreg_l19b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2000000>;
+ 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,pm8350c-rpmh-regulators";
+ qcom,pmic-id = "c";
+
+ 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>;
+ vdd-s7-supply = <&vph_pwr>;
+ vdd-s8-supply = <&vph_pwr>;
+ vdd-s9-supply = <&vph_pwr>;
+ vdd-s10-supply = <&vph_pwr>;
+ vdd-l1-l12-supply = <&vreg_s1b_1p84>;
+ vdd-l6-l9-l11-supply = <&vreg_bob_3p296>;
+ vdd-l10-supply = <&vreg_s7b_0p536>;
+ vdd-bob-supply = <&vph_pwr>;
+
+ vreg_l1c_1p8: ldo1 {
+ regulator-name = "vreg_l1c_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1976000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6c_2p96: ldo6 {
+ regulator-name = "vreg_l6c_2p96";
+ regulator-min-microvolt = <1650000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9c_2p96: ldo9 {
+ regulator-name = "vreg_l9c_2p96";
+ regulator-min-microvolt = <2704000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10c_0p88: ldo10 {
+ regulator-name = "vreg_l10c_0p88";
+ regulator-min-microvolt = <720000>;
+ regulator-max-microvolt = <1048000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob_3p296: bob {
+ regulator-name = "vreg_bob_3p296";
+ regulator-min-microvolt = <3032000>;
+ regulator-max-microvolt = <3960000>;
+ };
+ };
+};
+
+&gcc {
+ protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
+ <GCC_MSS_CFG_AHB_CLK>,
+ <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
+ <GCC_MSS_OFFLINE_AXI_CLK>,
+ <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
+ <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+ <GCC_MSS_SNOC_AXI_CLK>,
+ <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+ <GCC_QSPI_CORE_CLK>,
+ <GCC_QSPI_CORE_CLK_SRC>,
+ <GCC_SEC_CTRL_CLK_SRC>,
+ <GCC_WPSS_AHB_BDG_MST_CLK>,
+ <GCC_WPSS_AHB_CLK>,
+ <GCC_WPSS_RSCP_CLK>;
+};
+
+&gpi_dma0 {
+ status = "okay";
+};
+
+&gpi_dma1 {
+ status = "okay";
+};
+
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/qcs6490/a660_zap.mbn";
+};
+
+/* Pin 13, 15 in GPIO header */
+&i2c0 {
+ qcom,enable-gsi-dma;
+ status = "okay";
+};
+
+/* Pin 27, 28 in GPIO header */
+&i2c2 {
+ qcom,enable-gsi-dma;
+ status = "okay";
+};
+
+/* Pin 3, 5 in GPIO header */
+&i2c6 {
+ qcom,enable-gsi-dma;
+ status = "okay";
+};
+
+&i2c10 {
+ qcom,enable-gsi-dma;
+ status = "okay";
+
+ rtc: rtc@68 {
+ compatible = "st,m41t11";
+ reg = <0x68>;
+ };
+};
+
+/* External touchscreen */
+&i2c13 {
+ qcom,enable-gsi-dma;
+ status = "okay";
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dp {
+ sound-name-prefix = "Display Port0";
+
+ status = "okay";
+};
+
+&mdss_dp_out {
+ data-lanes = <0 1>;
+ remote-endpoint = <&usb_dp_qmpphy_dp_in>;
+};
+
+&pcie0 {
+ perst-gpios = <&tlmm 87 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&pcie0_clkreq_n>, <&pcie0_reset_n>, <&pcie0_wake_n>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie0_phy {
+ vdda-phy-supply = <&vreg_l10c_0p88>;
+ vdda-pll-supply = <&vreg_l6b_1p2>;
+
+ status = "okay";
+};
+
+&pcie1 {
+ perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&pcie1_clkreq_n>, <&pcie1_reset_n>, <&pcie1_wake_n>;
+ pinctrl-names = "default";
+
+ /* Support for QPS615 PCIe switch */
+ iommu-map = <0x0 &apps_smmu 0x1c80 0x1>,
+ <0x100 &apps_smmu 0x1c81 0x1>,
+ <0x208 &apps_smmu 0x1c84 0x1>,
+ <0x210 &apps_smmu 0x1c85 0x1>,
+ <0x218 &apps_smmu 0x1c86 0x1>,
+ <0x300 &apps_smmu 0x1c87 0x1>,
+ <0x400 &apps_smmu 0x1c88 0x1>,
+ <0x500 &apps_smmu 0x1c89 0x1>,
+ <0x501 &apps_smmu 0x1c90 0x1>;
+
+ status = "okay";
+};
+
+&pcie1_phy {
+ vdda-phy-supply = <&vreg_l10c_0p88>;
+ vdda-pll-supply = <&vreg_l6b_1p2>;
+
+ status = "okay";
+};
+
+&pm7325_gpios {
+ pm7325_adc_default: adc-default-state {
+ pins = "gpio2";
+ function = PMIC_GPIO_FUNC_NORMAL;
+ bias-high-impedance;
+ };
+};
+
+&pm7325_temp_alarm {
+ io-channels = <&pmk8350_vadc PM7325_ADC7_DIE_TEMP>;
+ io-channel-names = "thermal";
+};
+
+&pmk8350_adc_tm {
+ status = "okay";
+
+ xo-therm@0 {
+ reg = <0>;
+ io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
+ qcom,ratiometric;
+ qcom,hw-settle-time-us = <200>;
+ };
+
+ quiet-therm@1 {
+ reg = <1>;
+ io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
+ qcom,ratiometric;
+ qcom,hw-settle-time-us = <200>;
+ };
+
+ msm-skin-therm@2 {
+ reg = <2>;
+ io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
+ qcom,ratiometric;
+ qcom,hw-settle-time-us = <200>;
+ };
+
+ ufs-therm@3 {
+ reg = <3>;
+ io-channels = <&pmk8350_vadc PM7325_ADC7_GPIO1_100K_PU>;
+ qcom,ratiometric;
+ qcom,hw-settle-time-us = <200>;
+ };
+};
+
+&pmk8350_vadc {
+ pinctrl-0 = <&pm7325_adc_default>;
+ pinctrl-names = "default";
+
+ channel@3 {
+ reg = <PMK8350_ADC7_DIE_TEMP>;
+ label = "pmk7325_die_temp";
+ qcom,pre-scaling = <1 1>;
+ };
+
+ channel@44 {
+ reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
+ label = "xo_therm";
+ qcom,hw-settle-time = <200>;
+ qcom,pre-scaling = <1 1>;
+ qcom,ratiometric;
+ };
+
+ channel@103 {
+ reg = <PM7325_ADC7_DIE_TEMP>;
+ label = "pm7325_die_temp";
+ qcom,pre-scaling = <1 1>;
+ };
+
+ channel@144 {
+ reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
+ qcom,ratiometric;
+ qcom,hw-settle-time = <200>;
+ qcom,pre-scaling = <1 1>;
+ label = "quiet_therm";
+ };
+
+ channel@146 {
+ reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
+ qcom,ratiometric;
+ qcom,hw-settle-time = <200>;
+ qcom,pre-scaling = <1 1>;
+ label = "msm_skin_therm";
+ };
+
+ channel@14a {
+ /* According to datasheet, 0x4a = AMUX1_GPIO = GPIO_02 */
+ reg = <PM7325_ADC7_GPIO1_100K_PU>;
+ qcom,ratiometric;
+ qcom,hw-settle-time = <200>;
+ qcom,pre-scaling = <1 1>;
+ label = "ufs_therm";
+ };
+};
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&qupv3_id_0 {
+ firmware-name = "qcom/qcm6490/qupv3fw.elf";
+ status = "okay";
+};
+
+&qupv3_id_1 {
+ firmware-name = "qcom/qcm6490/qupv3fw.elf";
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/qcs6490/radxa/dragon-q6a/adsp.mbn";
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/qcs6490/radxa/dragon-q6a/cdsp.mbn";
+ status = "okay";
+};
+
+&sdhc_1 {
+ non-removable;
+ no-sd;
+ no-sdio;
+
+ vmmc-supply = <&vreg_l7b_2p96>;
+ vqmmc-supply = <&vreg_l19b_1p8>;
+
+ status = "okay";
+};
+
+&sdhc_2 {
+ pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>, <&sd_cd>;
+ pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>, <&sd_cd>;
+
+ vmmc-supply = <&vreg_l9c_2p96>;
+ vqmmc-supply = <&vreg_l6c_2p96>;
+
+ cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>;
+ status = "okay";
+};
+
+/* Pin 11, 29, 31, 32 in GPIO header */
+&spi7 {
+ qcom,enable-gsi-dma;
+ status = "okay";
+};
+
+/* Pin 19, 21, 23, 24, 26 in GPIO header */
+&spi12 {
+ qcom,enable-gsi-dma;
+ status = "okay";
+};
+
+/* Pin 22, 33, 36, 37 in GPIO header */
+&spi14 {
+ qcom,enable-gsi-dma;
+ status = "okay";
+};
+
+&swr0 {
+ status = "okay";
+
+ wcd_rx: codec@0,4 {
+ compatible = "sdw20217010d00";
+ reg = <0 4>;
+ qcom,rx-port-mapping = <1 2 3 4 5>;
+ };
+};
+
+&swr1 {
+ status = "okay";
+
+ wcd_tx: codec@0,3 {
+ compatible = "sdw20217010d00";
+ reg = <0 3>;
+ qcom,tx-port-mapping = <1 1 2 3>;
+ };
+};
+
+&tlmm {
+ /*
+ * 12-17: reserved for QSPI flash
+ */
+ gpio-reserved-ranges = <12 6>;
+ gpio-line-names =
+ /* GPIO_0 ~ GPIO_3 */
+ "PIN_13", "PIN_15", "", "",
+ /* GPIO_4 ~ GPIO_7 */
+ "", "", "", "",
+ /* GPIO_8 ~ GPIO_11 */
+ "PIN_27", "PIN_28", "", "",
+ /* GPIO_12 ~ GPIO_15 */
+ "", "", "", "",
+ /* GPIO_16 ~ GPIO_19 */
+ "", "", "", "",
+ /* GPIO_20 ~ GPIO_23 */
+ "", "", "PIN_8", "PIN_10",
+ /* GPIO_24 ~ GPIO_27 */
+ "PIN_3", "PIN_5", "PIN_16", "PIN_18",
+ /* GPIO_28 ~ GPIO_31 */
+ "PIN_31", "PIN_11", "PIN_32", "PIN_29",
+ /* GPIO_32 ~ GPIO_35 */
+ "", "", "", "",
+ /* GPIO_36 ~ GPIO_39 */
+ "", "", "", "",
+ /* GPIO_40 ~ GPIO_43 */
+ "", "", "", "",
+ /* GPIO_44 ~ GPIO_47 */
+ "", "", "", "",
+ /* GPIO_48 ~ GPIO_51 */
+ "PIN_21", "PIN_19", "PIN_23", "PIN_24",
+ /* GPIO_52 ~ GPIO_55 */
+ "", "", "", "PIN_26",
+ /* GPIO_56 ~ GPIO_59 */
+ "PIN_33", "PIN_22", "PIN_37", "PIN_36",
+ /* GPIO_60 ~ GPIO_63 */
+ "", "", "", "",
+ /* GPIO_64 ~ GPIO_67 */
+ "", "", "", "",
+ /* GPIO_68 ~ GPIO_71 */
+ "", "", "", "",
+ /* GPIO_72 ~ GPIO_75 */
+ "", "", "", "",
+ /* GPIO_76 ~ GPIO_79 */
+ "", "", "", "",
+ /* GPIO_80 ~ GPIO_83 */
+ "", "", "", "",
+ /* GPIO_84 ~ GPIO_87 */
+ "", "", "", "",
+ /* GPIO_88 ~ GPIO_91 */
+ "", "", "", "",
+ /* GPIO_92 ~ GPIO_95 */
+ "", "", "", "",
+ /* GPIO_96 ~ GPIO_99 */
+ "PIN_7", "PIN_12", "PIN_38", "PIN_40",
+ /* GPIO_100 ~ GPIO_103 */
+ "PIN_35", "", "", "",
+ /* GPIO_104 ~ GPIO_107 */
+ "", "", "", "",
+ /* GPIO_108 ~ GPIO_111 */
+ "", "", "", "",
+ /* GPIO_112 ~ GPIO_115 */
+ "", "", "", "",
+ /* GPIO_116 ~ GPIO_119 */
+ "", "", "", "",
+ /* GPIO_120 ~ GPIO_123 */
+ "", "", "", "",
+ /* GPIO_124 ~ GPIO_127 */
+ "", "", "", "",
+ /* GPIO_128 ~ GPIO_131 */
+ "", "", "", "",
+ /* GPIO_132 ~ GPIO_135 */
+ "", "", "", "",
+ /* GPIO_136 ~ GPIO_139 */
+ "", "", "", "",
+ /* GPIO_140 ~ GPIO_143 */
+ "", "", "", "",
+ /* GPIO_144 ~ GPIO_147 */
+ "", "", "", "",
+ /* GPIO_148 ~ GPIO_151 */
+ "", "", "", "",
+ /* GPIO_152 ~ GPIO_155 */
+ "", "", "", "",
+ /* GPIO_156 ~ GPIO_159 */
+ "", "", "", "",
+ /* GPIO_160 ~ GPIO_163 */
+ "", "", "", "",
+ /* GPIO_164 ~ GPIO_167 */
+ "", "", "", "",
+ /* GPIO_168 ~ GPIO_171 */
+ "", "", "", "",
+ /* GPIO_172 ~ GPIO_174 */
+ "", "", "";
+
+ pcie0_reset_n: pcie0-reset-n-state {
+ pins = "gpio87";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ pcie0_wake_n: pcie0-wake-n-state {
+ pins = "gpio89";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ pcie1_reset_n: pcie1-reset-n-state {
+ pins = "gpio2";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ pcie1_wake_n: pcie1-wake-n-state {
+ pins = "gpio3";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ sd_cd: sd-cd-state {
+ pins = "gpio91";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ user_led: user-led-state {
+ pins = "gpio42";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ wcd_default: wcd-reset-n-active-state {
+ pins = "gpio83";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ output-low;
+ };
+};
+
+&uart5 {
+ status = "okay";
+};
+
+&ufs_mem_hc {
+ reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+ vcc-supply = <&vreg_l7b_2p96>;
+ vcc-max-microamp = <800000>;
+ vccq-supply = <&vreg_l9b_1p2>;
+ vccq-max-microamp = <900000>;
+ vccq2-supply = <&vreg_l9b_1p2>;
+ vccq2-max-microamp = <1300000>;
+
+ /* Gear-4 Rate-B is unstable due to board */
+ /* and UFS module design limitations */
+ limit-gear-rate = "rate-a";
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&vreg_l10c_0p88>;
+ vdda-pll-supply = <&vreg_l6b_1p2>;
+
+ status = "okay";
+};
+
+&usb_1 {
+ dr_mode = "host";
+
+ status = "okay";
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&usb3_con_hs_in>;
+};
+
+&usb_1_hsphy {
+ vdda-pll-supply = <&vreg_l10c_0p88>;
+ vdda33-supply = <&vreg_l2b_3p072>;
+ vdda18-supply = <&vreg_l1c_1p8>;
+
+ status = "okay";
+};
+
+&usb_1_qmpphy {
+ vdda-phy-supply = <&vreg_l6b_1p2>;
+ vdda-pll-supply = <&vreg_l1b_0p912>;
+
+ /delete-property/ orientation-switch;
+
+ status = "okay";
+
+ ports {
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /delete-node/ endpoint;
+
+ /* RX0/TX0 is statically connected to RA620 bridge */
+ usb_1_qmpphy_out_dp: endpoint@0 {
+ reg = <0>;
+
+ data-lanes = <0 1>;
+ remote-endpoint = <&hdmi_bridge_in>;
+ };
+
+ /* RX1/TX1 is statically connected to USB-A port */
+ usb_1_qmpphy_out_usb: endpoint@1 {
+ reg = <1>;
+
+ data-lanes = <2 3>;
+ remote-endpoint = <&usb3_con_ss_in>;
+ };
+ };
+ };
+};
+
+&usb_2 {
+ dr_mode = "host";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "okay";
+
+ /* Onboard USB 2.0 hub */
+ usb_hub_2_x: hub@1 {
+ compatible = "usb1a40,0101";
+ reg = <1>;
+ vdd-supply = <&vcc_5v_peri>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ usb_hub_2_1: endpoint {
+ remote-endpoint = <&usb2_1_connector>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ usb_hub_2_2: endpoint {
+ remote-endpoint = <&usb2_2_connector>;
+ };
+ };
+
+ port@3 {
+ reg = <3>;
+
+ usb_hub_2_3: endpoint {
+ remote-endpoint = <&usb2_3_connector>;
+ };
+ };
+ };
+
+ /* FCU760K Wi-Fi & Bluetooth module */
+ wifi@4 {
+ compatible = "usba69c,8d80";
+ reg = <4>;
+ };
+ };
+};
+
+&usb_2_hsphy {
+ vdda-pll-supply = <&vreg_l10c_0p88>;
+ vdda33-supply = <&vreg_l2b_3p072>;
+ vdda18-supply = <&vreg_l1c_1p8>;
+
+ status = "okay";
+};
+
+&venus {
+ status = "okay";
+};
+
+/* PINCTRL - additions to nodes defined in sc7280.dtsi */
+&dp_hot_plug_det {
+ bias-disable;
+};
+
+&pcie0_clkreq_n {
+ bias-pull-up;
+ drive-strength = <2>;
+};
+
+&pcie1_clkreq_n {
+ bias-pull-up;
+ drive-strength = <2>;
+};
+
+&sdc1_clk {
+ bias-disable;
+ drive-strength = <16>;
+};
+
+&sdc1_cmd {
+ bias-pull-up;
+ drive-strength = <10>;
+};
+
+&sdc1_data {
+ bias-pull-up;
+ drive-strength = <10>;
+};
+
+&sdc1_rclk {
+ bias-pull-down;
+};
+
+&sdc2_clk {
+ bias-disable;
+ drive-strength = <16>;
+};
+
+&sdc2_cmd {
+ bias-pull-up;
+ drive-strength = <10>;
+};
+
+&sdc2_data {
+ bias-pull-up;
+ drive-strength = <10>;
+};
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 11/12] ASoC: dt-bindings: google,sc7280-herobrine: Add Radxa Dragon Q6A sound card
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
` (9 preceding siblings ...)
2026-04-07 15:20 ` [PATCH 10/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: factor out common board dtsi Xilin Wu
@ 2026-04-07 15:20 ` Xilin Wu
2026-04-08 8:48 ` Krzysztof Kozlowski
2026-04-07 15:20 ` [PATCH 12/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: add LPASS CPU audio variant Xilin Wu
11 siblings, 1 reply; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:20 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu
The Radxa Dragon Q6A can boot in EL2, allowing the kernel to access the
LPASS hardware directly. Add the compatible for it to the bindings.
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
.../devicetree/bindings/sound/google,sc7280-herobrine.yaml | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
index cdcd7c6f21eb..cd87dfe20618 100644
--- a/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
+++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
@@ -17,8 +17,13 @@ allOf:
properties:
compatible:
- enum:
- - google,sc7280-herobrine
+ oneOf:
+ - enum:
+ - google,sc7280-herobrine
+ - items:
+ - enum:
+ - radxa,dragon-q6a-sndcard
+ - const: google,sc7280-herobrine
"#address-cells":
const: 1
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 12/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: add LPASS CPU audio variant
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
` (10 preceding siblings ...)
2026-04-07 15:20 ` [PATCH 11/12] ASoC: dt-bindings: google,sc7280-herobrine: Add Radxa Dragon Q6A sound card Xilin Wu
@ 2026-04-07 15:20 ` Xilin Wu
2026-04-08 9:06 ` Konrad Dybcio
11 siblings, 1 reply; 26+ messages in thread
From: Xilin Wu @ 2026-04-07 15:20 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound, Xilin Wu
Add a qcs6490-radxa-dragon-q6a-lpass-cpu.dts variant for debugging and
bring-up of the host-controlled LPASS audio path on the Radxa Dragon
Q6A.
This variant enables the LPASS blocks and codec macros needed by the
lpass-cpu driver, wires WCD9380 playback/capture and DisplayPort audio
to the LPASS CDC DMA and DP interfaces, and disables remoteproc_adsp so
that the audio hardware is owned directly by Linux.
This DTB is an optional configuration for systems booted with the kernel
running at EL2, where direct CPU access to the LPASS hardware is
available. It is useful for users who need low-latency and fully
controllable audio.
Signed-off-by: Xilin Wu <sophon@radxa.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../qcom/qcs6490-radxa-dragon-q6a-lpass-cpu.dts | 131 +++++++++++++++++++++
2 files changed, 132 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 4ba8e7306419..2f84ef7109b5 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -169,6 +169,7 @@ qcs615-ride-el2-dtbs := qcs615-ride.dtb talos-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += qcs615-ride-el2.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-radxa-dragon-q6a.dtb
+dtb-$(CONFIG_ARCH_QCOM) += qcs6490-radxa-dragon-q6a-lpass-cpu.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2.dtb
qcs6490-rb3gen2-vision-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-vision-mezzanine.dtbo
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a-lpass-cpu.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a-lpass-cpu.dts
new file mode 100644
index 000000000000..e7ee57372d7e
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a-lpass-cpu.dts
@@ -0,0 +1,131 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025-2026 Radxa Computer (Shenzhen) Co., Ltd.
+ *
+ * Direct CPU access to the LPASS hardware block on this platform is
+ * restricted by default. Booting the Linux kernel in EL2 will allow the
+ * kernel to access the LPASS hardware directly.
+ *
+ * You can achieve this by setting the Hypervisor Override BIOS setting to
+ * "Enabled" if you are using the official UEFI firmware.
+ */
+
+/dts-v1/;
+
+#include "qcs6490-radxa-dragon-q6a.dtsi"
+
+&gcc {
+ protected-clocks = <GCC_MSS_CFG_AHB_CLK>,
+ <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
+ <GCC_MSS_OFFLINE_AXI_CLK>,
+ <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
+ <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+ <GCC_MSS_SNOC_AXI_CLK>,
+ <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+ <GCC_QSPI_CORE_CLK>,
+ <GCC_QSPI_CORE_CLK_SRC>,
+ <GCC_SEC_CTRL_CLK_SRC>,
+ <GCC_WPSS_AHB_BDG_MST_CLK>,
+ <GCC_WPSS_AHB_CLK>,
+ <GCC_WPSS_RSCP_CLK>;
+};
+
+&lpass_aon {
+ status = "okay";
+};
+
+&lpass_core {
+ status = "okay";
+};
+
+&lpass_cpu {
+ status = "okay";
+
+ dai-link@5 {
+ reg = <LPASS_DP_RX>;
+ };
+
+ dai-link@6 {
+ reg = <LPASS_CDC_DMA_RX0>;
+ };
+
+ dai-link@19 {
+ reg = <LPASS_CDC_DMA_TX3>;
+ };
+};
+
+&lpass_hm {
+ status = "okay";
+};
+
+&lpass_rx_macro {
+ status = "okay";
+};
+
+&lpass_tx_macro {
+ status = "okay";
+};
+
+&lpass_va_macro {
+ status = "okay";
+};
+
+&lpasscc {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ status = "disabled";
+};
+
+&sound {
+ compatible = "radxa,dragon-q6a-sndcard", "google,sc7280-herobrine";
+ model = "qcs6490-wcd938x-dp";
+
+ audio-routing = "IN1_HPHL", "HPHL_OUT",
+ "IN2_HPHR", "HPHR_OUT",
+ "AMIC2", "MIC BIAS2",
+ "TX SWR_ADC1", "ADC2_OUTPUT";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dai-link@0 {
+ link-name = "WCD9380 Playback";
+ reg = <0>;
+
+ cpu {
+ sound-dai = <&lpass_cpu LPASS_CDC_DMA_RX0>;
+ };
+
+ codec {
+ sound-dai = <&wcd938x 0>, <&swr0 0>, <&lpass_rx_macro 0>;
+ };
+ };
+
+ dai-link@1 {
+ link-name = "DisplayPort";
+ reg = <1>;
+
+ cpu {
+ sound-dai = <&lpass_cpu LPASS_DP_RX>;
+ };
+
+ codec {
+ sound-dai = <&mdss_dp>;
+ };
+ };
+
+ dai-link@2 {
+ link-name = "WCD9380 Capture";
+ reg = <2>;
+
+ cpu {
+ sound-dai = <&lpass_cpu LPASS_CDC_DMA_TX3>;
+ };
+
+ codec {
+ sound-dai = <&wcd938x 1>, <&swr1 0>, <&lpass_tx_macro 0>;
+ };
+ };
+};
--
2.53.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 11/12] ASoC: dt-bindings: google,sc7280-herobrine: Add Radxa Dragon Q6A sound card
2026-04-07 15:20 ` [PATCH 11/12] ASoC: dt-bindings: google,sc7280-herobrine: Add Radxa Dragon Q6A sound card Xilin Wu
@ 2026-04-08 8:48 ` Krzysztof Kozlowski
2026-04-12 3:47 ` Xilin Wu
0 siblings, 1 reply; 26+ messages in thread
From: Krzysztof Kozlowski @ 2026-04-08 8:48 UTC (permalink / raw)
To: Xilin Wu
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao, linux-arm-msm, linux-kernel, devicetree,
Konrad Dybcio, linux-sound
On Tue, Apr 07, 2026 at 11:20:03PM +0800, Xilin Wu wrote:
> The Radxa Dragon Q6A can boot in EL2, allowing the kernel to access the
> LPASS hardware directly. Add the compatible for it to the bindings.
You are not adding compatible for LPASS, but for the sound card. And
since you mentioned it, what happens when you boot in EL1?
You need to post bindings for both cases.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 02/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable UFS controller
2026-04-07 15:19 ` [PATCH 02/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable UFS controller Xilin Wu
@ 2026-04-08 8:59 ` Konrad Dybcio
2026-04-09 3:38 ` Xilin Wu
0 siblings, 1 reply; 26+ messages in thread
From: Konrad Dybcio @ 2026-04-08 8:59 UTC (permalink / raw)
To: Xilin Wu, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
Liam Girdwood, Mark Brown, Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, linux-sound
On 4/7/26 5:19 PM, Xilin Wu wrote:
> Add and enable UFS related nodes for this board.
>
> Note that UFS Gear-4 Rate-B is unstable due to board and UFS module design
> limitations. UFS on this board is stable when working at Gear-4 Rate-A.
>
> Signed-off-by: Xilin Wu <sophon@radxa.com>
> ---
> .../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 23 ++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
> index bb5a42b038f1..c961d3ec625f 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
> @@ -959,6 +959,29 @@ &uart5 {
> status = "okay";
> };
>
> +&ufs_mem_hc {
> + reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
> + vcc-supply = <&vreg_l7b_2p96>;
> + vcc-max-microamp = <800000>;
> + vccq-supply = <&vreg_l9b_1p2>;
> + vccq-max-microamp = <900000>;
> + vccq2-supply = <&vreg_l9b_1p2>;
> + vccq2-max-microamp = <1300000>;
> +
> + /* Gear-4 Rate-B is unstable due to board */
> + /* and UFS module design limitations */
/* it's a bit weird to add two single-line */
/* comments near one another for a single paragraph */
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 03/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable USB 3.0 and HDMI ports
2026-04-07 15:19 ` [PATCH 03/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable USB 3.0 and HDMI ports Xilin Wu
@ 2026-04-08 9:03 ` Konrad Dybcio
2026-04-12 3:14 ` Xilin Wu
0 siblings, 1 reply; 26+ messages in thread
From: Konrad Dybcio @ 2026-04-08 9:03 UTC (permalink / raw)
To: Xilin Wu, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
Liam Girdwood, Mark Brown, Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, linux-sound
On 4/7/26 5:19 PM, Xilin Wu wrote:
> This board doesn't feature a regular Type-C port. The usb_1_qmpphy's
I guess the receptacle on board is power-only?
> RX1/TX1 pair is statically connected to the USB-A port, while its RX0/TX0
> pair is connected to the RA620 DP-to-HDMI bridge.
>
> Add and enable the nodes for the features to work.
>
> Signed-off-by: Xilin Wu <sophon@radxa.com>
> ---
> .../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 152 +++++++++++++++++++++
> 1 file changed, 152 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
> index c961d3ec625f..8d649b3a1cfa 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
> @@ -111,6 +111,71 @@ usb2_3_connector: endpoint {
> };
> };
>
> + usb3_con: connector {
This label is unused
> + compatible = "usb-a-connector";
No vbus-supply?
[...]
> +&mdss_dp {
> + sound-name-prefix = "Display Port0";
Hmmmmm.. other platforms call it "DisplayPort0" (without a space)..
But I suppose this name needs to match UCM..
We'd also normally push this property to the SoC DTSI
Konrad
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 05/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Use board-specific CDSP firmware
2026-04-07 15:19 ` [PATCH 05/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Use board-specific CDSP firmware Xilin Wu
@ 2026-04-08 9:04 ` Konrad Dybcio
0 siblings, 0 replies; 26+ messages in thread
From: Konrad Dybcio @ 2026-04-08 9:04 UTC (permalink / raw)
To: Xilin Wu, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
Liam Girdwood, Mark Brown, Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, linux-sound
On 4/7/26 5:19 PM, Xilin Wu wrote:
> The official boot firmware for Dragon Q6A has been switched to the
> Qualcomm WP (Windows) boot firmware. Use the matching board-specific
> CDSP firmware instead of the generic one so that the DSP firmware stack
> remains compatible with the new boot firmware.
>
> The corresponding custom DSP firmware has already been added to
> linux-firmware:
>
> https://gitlab.com/kernel-firmware/linux-firmware/-/merge_requests/882
>
> Signed-off-by: Xilin Wu <sophon@radxa.com>
> ---
It's a little shaky given you say it must be changed to remain compatible..
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 07/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Correct GPIO_27 label
2026-04-07 15:19 ` [PATCH 07/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Correct GPIO_27 label Xilin Wu
@ 2026-04-08 9:04 ` Konrad Dybcio
0 siblings, 0 replies; 26+ messages in thread
From: Konrad Dybcio @ 2026-04-08 9:04 UTC (permalink / raw)
To: Xilin Wu, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
Liam Girdwood, Mark Brown, Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, linux-sound,
Stephen Chen
On 4/7/26 5:19 PM, Xilin Wu wrote:
> From: Stephen Chen <stephen@radxa.com>
>
> The label of GPIO_27 is wrong. Fix it.
>
> Fixes: ef254b12ec60 ("arm64: dts: qcom: qcs6490: Introduce Radxa Dragon Q6A")
> Signed-off-by: Stephen Chen <stephen@radxa.com>
> Signed-off-by: Xilin Wu <sophon@radxa.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 08/12] arm64: dts: qcom: kodiak: Mark secondary USB controller as wakeup source
2026-04-07 15:20 ` [PATCH 08/12] arm64: dts: qcom: kodiak: Mark secondary USB controller as wakeup source Xilin Wu
@ 2026-04-08 9:04 ` Konrad Dybcio
0 siblings, 0 replies; 26+ messages in thread
From: Konrad Dybcio @ 2026-04-08 9:04 UTC (permalink / raw)
To: Xilin Wu, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
Liam Girdwood, Mark Brown, Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, linux-sound,
Stephen Chen
On 4/7/26 5:20 PM, Xilin Wu wrote:
> From: Stephen Chen <stephen@radxa.com>
>
> Mark the secondary USB controller (usb_2) as a wakeup source so that it
> can be used to wake the system from suspend.
>
> Signed-off-by: Stephen Chen <stephen@radxa.com>
> Signed-off-by: Xilin Wu <sophon@radxa.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 12/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: add LPASS CPU audio variant
2026-04-07 15:20 ` [PATCH 12/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: add LPASS CPU audio variant Xilin Wu
@ 2026-04-08 9:06 ` Konrad Dybcio
2026-04-08 9:47 ` Xilin Wu
0 siblings, 1 reply; 26+ messages in thread
From: Konrad Dybcio @ 2026-04-08 9:06 UTC (permalink / raw)
To: Xilin Wu, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
Liam Girdwood, Mark Brown, Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, linux-sound
On 4/7/26 5:20 PM, Xilin Wu wrote:
> Add a qcs6490-radxa-dragon-q6a-lpass-cpu.dts variant for debugging and
> bring-up of the host-controlled LPASS audio path on the Radxa Dragon
> Q6A.
>
> This variant enables the LPASS blocks and codec macros needed by the
> lpass-cpu driver, wires WCD9380 playback/capture and DisplayPort audio
> to the LPASS CDC DMA and DP interfaces, and disables remoteproc_adsp so
> that the audio hardware is owned directly by Linux.
>
> This DTB is an optional configuration for systems booted with the kernel
> running at EL2, where direct CPU access to the LPASS hardware is
> available. It is useful for users who need low-latency and fully
> controllable audio.
I believe on Chrome platforms it was done this way because at some point
it was determined that they would specifically like not to use the DSP.
I think this is more of a hack than anything else.. but at the end of the
commit message you mention low latency - is the impact actually measurable?
Konrad
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 12/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: add LPASS CPU audio variant
2026-04-08 9:06 ` Konrad Dybcio
@ 2026-04-08 9:47 ` Xilin Wu
0 siblings, 0 replies; 26+ messages in thread
From: Xilin Wu @ 2026-04-08 9:47 UTC (permalink / raw)
To: Konrad Dybcio, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
Liam Girdwood, Mark Brown, Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, linux-sound
On 4/8/2026 5:06 PM, Konrad Dybcio wrote:
> On 4/7/26 5:20 PM, Xilin Wu wrote:
>> Add a qcs6490-radxa-dragon-q6a-lpass-cpu.dts variant for debugging and
>> bring-up of the host-controlled LPASS audio path on the Radxa Dragon
>> Q6A.
>>
>> This variant enables the LPASS blocks and codec macros needed by the
>> lpass-cpu driver, wires WCD9380 playback/capture and DisplayPort audio
>> to the LPASS CDC DMA and DP interfaces, and disables remoteproc_adsp so
>> that the audio hardware is owned directly by Linux.
>>
>> This DTB is an optional configuration for systems booted with the kernel
>> running at EL2, where direct CPU access to the LPASS hardware is
>> available. It is useful for users who need low-latency and fully
>> controllable audio.
>
> I believe on Chrome platforms it was done this way because at some point
> it was determined that they would specifically like not to use the DSP.
>
> I think this is more of a hack than anything else.. but at the end of the
> commit message you mention low latency - is the impact actually measurable?
>
Some of our users also specifically prefer not to use the DSP [1] :)
Based on their testing, the AudioReach/ADSP path imposes a minimum
scheduling interval of 10 ms, which is much higher than the 0.67 ms they
can get on a Raspberry Pi 5 with direct I2S/DMA.
Since the lpass-cpu setup works properly, I would not consider this a hack.
[1]
https://forum.radxa.com/t/dragon-q6a-lpaif-mi2s-registers-locked-by-qualcomm-trustzone-no-direct-low-latency-audio-access-possible/30592
> Konrad
>
--
Best regards,
Xilin Wu <sophon@radxa.com>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 01/12] firmware: qcom: scm: Allow QSEECOM for Radxa Dragon Q6A
2026-04-07 15:19 ` [PATCH 01/12] firmware: qcom: scm: Allow QSEECOM for Radxa Dragon Q6A Xilin Wu
@ 2026-04-09 1:54 ` Dmitry Baryshkov
0 siblings, 0 replies; 26+ messages in thread
From: Dmitry Baryshkov @ 2026-04-09 1:54 UTC (permalink / raw)
To: Xilin Wu
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Liam Girdwood, Mark Brown, Judy Hsiao,
linux-arm-msm, linux-kernel, devicetree, Konrad Dybcio,
linux-sound
On Tue, Apr 07, 2026 at 11:19:53PM +0800, Xilin Wu wrote:
> add "radxa,dragon-q6a" as compatible device for QSEECOM
>
> This is required to get access to efivars and uefi boot loader support.
>
> Signed-off-by: Xilin Wu <sophon@radxa.com>
> ---
> drivers/firmware/qcom/qcom_scm.c | 1 +
> 1 file changed, 1 insertion(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 02/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable UFS controller
2026-04-08 8:59 ` Konrad Dybcio
@ 2026-04-09 3:38 ` Xilin Wu
0 siblings, 0 replies; 26+ messages in thread
From: Xilin Wu @ 2026-04-09 3:38 UTC (permalink / raw)
To: Konrad Dybcio, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
Liam Girdwood, Mark Brown, Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, linux-sound
On 4/8/2026 4:59 PM, Konrad Dybcio wrote:
> On 4/7/26 5:19 PM, Xilin Wu wrote:
>> Add and enable UFS related nodes for this board.
>>
>> Note that UFS Gear-4 Rate-B is unstable due to board and UFS module design
>> limitations. UFS on this board is stable when working at Gear-4 Rate-A.
>>
>> Signed-off-by: Xilin Wu <sophon@radxa.com>
>> ---
>> .../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 23 ++++++++++++++++++++++
>> 1 file changed, 23 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
>> index bb5a42b038f1..c961d3ec625f 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
>> +++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
>> @@ -959,6 +959,29 @@ &uart5 {
>> status = "okay";
>> };
>>
>> +&ufs_mem_hc {
>> + reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
>> + vcc-supply = <&vreg_l7b_2p96>;
>> + vcc-max-microamp = <800000>;
>> + vccq-supply = <&vreg_l9b_1p2>;
>> + vccq-max-microamp = <900000>;
>> + vccq2-supply = <&vreg_l9b_1p2>;
>> + vccq2-max-microamp = <1300000>;
>> +
>> + /* Gear-4 Rate-B is unstable due to board */
>> + /* and UFS module design limitations */
>
> /* it's a bit weird to add two single-line */
> /* comments near one another for a single paragraph */
Ack. I'll change the comment to single-line in v2.
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>
> Konrad
>
--
Best regards,
Xilin Wu <sophon@radxa.com>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 03/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable USB 3.0 and HDMI ports
2026-04-08 9:03 ` Konrad Dybcio
@ 2026-04-12 3:14 ` Xilin Wu
2026-04-13 10:28 ` Konrad Dybcio
0 siblings, 1 reply; 26+ messages in thread
From: Xilin Wu @ 2026-04-12 3:14 UTC (permalink / raw)
To: Konrad Dybcio, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
Liam Girdwood, Mark Brown, Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, linux-sound
On 4/8/2026 5:03 PM, Konrad Dybcio wrote:
> On 4/7/26 5:19 PM, Xilin Wu wrote:
>> This board doesn't feature a regular Type-C port. The usb_1_qmpphy's
>
> I guess the receptacle on board is power-only?
Yes. The Type-C port is power only.
>
>> RX1/TX1 pair is statically connected to the USB-A port, while its RX0/TX0
>> pair is connected to the RA620 DP-to-HDMI bridge.
>>
>> Add and enable the nodes for the features to work.
>>
>> Signed-off-by: Xilin Wu <sophon@radxa.com>
>> ---
>> .../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 152 +++++++++++++++++++++
>> 1 file changed, 152 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
>> index c961d3ec625f..8d649b3a1cfa 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
>> +++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
>> @@ -111,6 +111,71 @@ usb2_3_connector: endpoint {
>> };
>> };
>>
>> + usb3_con: connector {
>
> This label is unused
Ack. I will remove the label.
>
>> + compatible = "usb-a-connector";
>
> No vbus-supply?
It's supplied by vcc_5v_peri. I'll add it in v2.
>
> [...]
>
>> +&mdss_dp {
>> + sound-name-prefix = "Display Port0";
>
> Hmmmmm.. other platforms call it "DisplayPort0" (without a space)..
> But I suppose this name needs to match UCM..
>
> We'd also normally push this property to the SoC DTSI
Actually I don't think the name is used in UCM. I can rename it and push
the property to SoC DTSI if necessary.
>
> Konrad
>
--
Best regards,
Xilin Wu <sophon@radxa.com>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 11/12] ASoC: dt-bindings: google,sc7280-herobrine: Add Radxa Dragon Q6A sound card
2026-04-08 8:48 ` Krzysztof Kozlowski
@ 2026-04-12 3:47 ` Xilin Wu
0 siblings, 0 replies; 26+ messages in thread
From: Xilin Wu @ 2026-04-12 3:47 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Liam Girdwood, Mark Brown,
Judy Hsiao, linux-arm-msm, linux-kernel, devicetree,
Konrad Dybcio, linux-sound
On 4/8/2026 4:48 PM, Krzysztof Kozlowski wrote:
> On Tue, Apr 07, 2026 at 11:20:03PM +0800, Xilin Wu wrote:
>> The Radxa Dragon Q6A can boot in EL2, allowing the kernel to access the
>> LPASS hardware directly. Add the compatible for it to the bindings.
>
> You are not adding compatible for LPASS, but for the sound card. And
> since you mentioned it, what happens when you boot in EL1?
>
> You need to post bindings for both cases.
>
> Best regards,
> Krzysztof
>
>
Hi Krzysztof,
Thank you for the review. You are right that this patch adds a
board-specific compatible for the sound card, not for the LPASS block
itself.
For EL1, the default Dragon Q6A DTS already uses the generic
"qcom,qcs6490-rb3gen2-sndcard" compatible, and for the EL2 LPASS-CPU
variant I can also just keep using the generic
"google,sc7280-herobrine" compatible.
Would it be better if I simply drop this binding patch and keep both
cases on their existing generic compatibles instead of introducing
"radxa,dragon-q6a-sndcard"?
--
Best regards,
Xilin Wu <sophon@radxa.com>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 03/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable USB 3.0 and HDMI ports
2026-04-12 3:14 ` Xilin Wu
@ 2026-04-13 10:28 ` Konrad Dybcio
0 siblings, 0 replies; 26+ messages in thread
From: Konrad Dybcio @ 2026-04-13 10:28 UTC (permalink / raw)
To: Xilin Wu, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
Liam Girdwood, Mark Brown, Judy Hsiao
Cc: linux-arm-msm, linux-kernel, devicetree, linux-sound
On 4/12/26 5:14 AM, Xilin Wu wrote:
> On 4/8/2026 5:03 PM, Konrad Dybcio wrote:
>> On 4/7/26 5:19 PM, Xilin Wu wrote:
>>> This board doesn't feature a regular Type-C port. The usb_1_qmpphy's
>>
>> I guess the receptacle on board is power-only?
>
> Yes. The Type-C port is power only.
[...]
>>> +&mdss_dp {
>>> + sound-name-prefix = "Display Port0";
>>
>> Hmmmmm.. other platforms call it "DisplayPort0" (without a space)..
>> But I suppose this name needs to match UCM..
>>
>> We'd also normally push this property to the SoC DTSI
>
> Actually I don't think the name is used in UCM. I can rename it and push the property to SoC DTSI if necessary.
Let's do that
Konrad
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2026-04-13 10:28 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-07 15:19 [PATCH 00/12] arm64: dts: qcom: qcs6490: Radxa Dragon Q6A feature enablement and fixes Xilin Wu
2026-04-07 15:19 ` [PATCH 01/12] firmware: qcom: scm: Allow QSEECOM for Radxa Dragon Q6A Xilin Wu
2026-04-09 1:54 ` Dmitry Baryshkov
2026-04-07 15:19 ` [PATCH 02/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable UFS controller Xilin Wu
2026-04-08 8:59 ` Konrad Dybcio
2026-04-09 3:38 ` Xilin Wu
2026-04-07 15:19 ` [PATCH 03/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable USB 3.0 and HDMI ports Xilin Wu
2026-04-08 9:03 ` Konrad Dybcio
2026-04-12 3:14 ` Xilin Wu
2026-04-13 10:28 ` Konrad Dybcio
2026-04-07 15:19 ` [PATCH 04/12] arm64: dts: qcom: kodiak: Add I2C aliases for CCI Xilin Wu
2026-04-07 15:19 ` [PATCH 05/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Use board-specific CDSP firmware Xilin Wu
2026-04-08 9:04 ` Konrad Dybcio
2026-04-07 15:19 ` [PATCH 06/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Drop QSPI node and reserve its pins Xilin Wu
2026-04-07 15:19 ` [PATCH 07/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Correct GPIO_27 label Xilin Wu
2026-04-08 9:04 ` Konrad Dybcio
2026-04-07 15:20 ` [PATCH 08/12] arm64: dts: qcom: kodiak: Mark secondary USB controller as wakeup source Xilin Wu
2026-04-08 9:04 ` Konrad Dybcio
2026-04-07 15:20 ` [PATCH 09/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Align reserved-memory with latest firmware map Xilin Wu
2026-04-07 15:20 ` [PATCH 10/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: factor out common board dtsi Xilin Wu
2026-04-07 15:20 ` [PATCH 11/12] ASoC: dt-bindings: google,sc7280-herobrine: Add Radxa Dragon Q6A sound card Xilin Wu
2026-04-08 8:48 ` Krzysztof Kozlowski
2026-04-12 3:47 ` Xilin Wu
2026-04-07 15:20 ` [PATCH 12/12] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: add LPASS CPU audio variant Xilin Wu
2026-04-08 9:06 ` Konrad Dybcio
2026-04-08 9:47 ` Xilin Wu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox