Devicetree
 help / color / mirror / Atom feed
* [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi)
@ 2026-06-01  8:51 Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  8:51 ` [PATCH v3 01/10] dt-bindings: clock: qcom,rpmcc: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
                   ` (9 more replies)
  0 siblings, 10 replies; 18+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-06-01  8:51 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio
  Cc: Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta,
	Antony Kurniawan Soemardi, Krzysztof Kozlowski, Dmitry Baryshkov,
	Konrad Dybcio

Enable the WCNSS (Riva) subsystem on MSM8960-based devices to support
Bluetooth and Wi-Fi.

Add the required device tree nodes and resources, including memory
regions, clocks, interconnects, and communication interfaces used by
the WCNSS firmware and drivers.

Changes:
- Add Riva (WCNSS) nodes: firmware memory, WCN3660 iris radio,
  Bluetooth and Wi-Fi subdevices, and pinctrl states
- Add SMSM and SPS nodes for coordination with the WCNSS subsystem
- Add shared memory and hardware lock for inter-processor communication
- Add SCM node for secure channel manager interaction
- Add RPM clock controller and required QDSS clock resource
- Add bindings for SPS interrupt controller and RPM clocks

This series supersedes the earlier dt-bindings-only submission [1] and
includes the corresponding driver and DT integration changes.

This patch series depends on:
  [2] "dt-bindings: usb: ci-hdrc-usb2: allow up to 3 clocks for
  qcom,ci-hdrc"
for fixing the USB controller clock configuration on MSM8960.

Tested on:
- Sony Xperia SP
- Samsung Galaxy Express (SGH-I437) - requires additional work for
  firmware loading (separate series pending)

Known limitations (not addressed in this series):
The wcn36xx driver appears to misclassify 2.4 GHz networks as 5 GHz
during hardware scanning, preventing association with 2.4 GHz networks.
This issue has also been observed on MSM8916 and MSM8953 platforms
using WCN3620 [3][4].

[1] https://lore.kernel.org/all/20260218-msm8960-sps-rpm-bindings-v1-0-bbc11c0d4f24@smankusors.com/
[2] https://lore.kernel.org/all/20260516-qcom-ci-hdrc-clock-fix-v2-1-aaec8d33d0aa@smankusors.com/
[3] https://github.com/msm8916-mainline/linux/commit/cc4abc694fcf2c942410136bc58a61e79bf21e83
[4] https://github.com/msm8953-mainline/linux/commit/779c9627ec0b971bf466588e64fe530cf78a414d

Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
---
Changes in v3:
- Dropped unnecessary pxo and cxo clock validations for
  qcom,rpmcc-msm8960
- Dropped unnecessary example for rpmcc bindings
- Reorder USB clock entries to match the updated ci-hdrc binding, using
  iface, core, fs order.
- Link to v2: https://patch.msgid.link/20260514-msm8960-wifi-v2-0-7cbae45dab5e@smankusors.com

Changes in v2:
- Updated cover letter about the previous dt-bindings only submission
  and the dependency on the USB controller clock fix series
- Drop the apq8064 reference from the commit message for adding msm8960
  QDSS clock resource
- Add fallback compatible "qcom,rpmcc-apq8064" in the rpmcc node
- Updated qcom,rpmcc dt-bindings to allow for fallback compatible
- Put clocks, clock-names, reg, reg-names, interrupt-names, &
  smem-states entries one per line in the rpmcc, riva, and wifi nodes
- Move riva pinctrl assignments to SoC DTSI
- Renamed hwmutex to hwlock for consistency with the dt-bindings
- Link to v1: https://patch.msgid.link/20260414-msm8960-wifi-v1-0-007fda9d6134@smankusors.com
- Note: an incomplete v1 also exists at https://lore.kernel.org/all/20260414-msm8960-wifi-v1-0-01c081e54610@smankusors.com/
  due to SMTP rate limit. Please ignore that thread.

---
Antony Kurniawan Soemardi (10):
      dt-bindings: clock: qcom,rpmcc: add msm8960 compatible
      dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic
      mfd: qcom_rpm: add msm8960 QDSS clock resource
      clk: qcom: clk-rpm: add msm8960 compatible
      ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks
      ARM: dts: qcom: msm8960: add SCM
      ARM: dts: qcom: msm8960: add SMEM & hwlock
      ARM: dts: qcom: msm8960: add SMSM & SPS
      ARM: dts: qcom: msm8960: add Riva
      ARM: dts: qcom: msm8960: huashan: enable Wi-Fi and Bluetooth

 .../devicetree/bindings/clock/qcom,rpmcc.yaml      |  63 ++++----
 Documentation/devicetree/bindings/mfd/syscon.yaml  |   2 +
 .../boot/dts/qcom/qcom-msm8960-sony-huashan.dts    |  15 ++
 arch/arm/boot/dts/qcom/qcom-msm8960.dtsi           | 170 ++++++++++++++++++++-
 drivers/clk/qcom/clk-rpm.c                         |   1 +
 drivers/mfd/qcom_rpm.c                             |   1 +
 6 files changed, 221 insertions(+), 31 deletions(-)
---
base-commit: 70390501d1944d4e5b8f7352be180fceb3a44132
change-id: 20251226-msm8960-wifi-beecd96c6646
prerequisite-message-id: <20260516-qcom-ci-hdrc-clock-fix-v2-1-aaec8d33d0aa@smankusors.com>
prerequisite-patch-id: 37c7328450164a1a8997da541eba1e8ec144724a

Best regards,
--  
Antony Kurniawan Soemardi <linux@smankusors.com>



^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH v3 01/10] dt-bindings: clock: qcom,rpmcc: add msm8960 compatible
  2026-06-01  8:51 [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  8:51 ` Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  8:51 ` [PATCH v3 02/10] dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic Antony Kurniawan Soemardi via B4 Relay
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 18+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-06-01  8:51 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio
  Cc: Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta,
	Antony Kurniawan Soemardi

From: Antony Kurniawan Soemardi <linux@smankusors.com>

Document the qcom,rpmcc-msm8960 compatible.

The MSM8960 platform shares the same RPM clock definitions as
APQ8064, so extend the existing conditional schema to treat
qcom,rpmcc-msm8960 the same as qcom,rpmcc-apq8064.

Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
---
 .../devicetree/bindings/clock/qcom,rpmcc.yaml      | 63 ++++++++++++----------
 1 file changed, 34 insertions(+), 29 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/qcom,rpmcc.yaml b/Documentation/devicetree/bindings/clock/qcom,rpmcc.yaml
index ab97d4b7dba8..de8c2a96d8d4 100644
--- a/Documentation/devicetree/bindings/clock/qcom,rpmcc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,rpmcc.yaml
@@ -21,35 +21,40 @@ description: |
 
 properties:
   compatible:
-    items:
-      - enum:
-          - qcom,rpmcc-apq8060
-          - qcom,rpmcc-apq8064
-          - qcom,rpmcc-ipq806x
-          - qcom,rpmcc-mdm9607
-          - qcom,rpmcc-msm8226
-          - qcom,rpmcc-msm8660
-          - qcom,rpmcc-msm8909
-          - qcom,rpmcc-msm8916
-          - qcom,rpmcc-msm8917
-          - qcom,rpmcc-msm8936
-          - qcom,rpmcc-msm8937
-          - qcom,rpmcc-msm8940
-          - qcom,rpmcc-msm8953
-          - qcom,rpmcc-msm8974
-          - qcom,rpmcc-msm8976
-          - qcom,rpmcc-msm8992
-          - qcom,rpmcc-msm8994
-          - qcom,rpmcc-msm8996
-          - qcom,rpmcc-msm8998
-          - qcom,rpmcc-qcm2290
-          - qcom,rpmcc-qcs404
-          - qcom,rpmcc-sdm429
-          - qcom,rpmcc-sdm660
-          - qcom,rpmcc-sm6115
-          - qcom,rpmcc-sm6125
-          - qcom,rpmcc-sm6375
-      - const: qcom,rpmcc
+    oneOf:
+      - items:
+          - enum:
+              - qcom,rpmcc-apq8060
+              - qcom,rpmcc-apq8064
+              - qcom,rpmcc-ipq806x
+              - qcom,rpmcc-mdm9607
+              - qcom,rpmcc-msm8226
+              - qcom,rpmcc-msm8660
+              - qcom,rpmcc-msm8909
+              - qcom,rpmcc-msm8916
+              - qcom,rpmcc-msm8917
+              - qcom,rpmcc-msm8936
+              - qcom,rpmcc-msm8937
+              - qcom,rpmcc-msm8940
+              - qcom,rpmcc-msm8953
+              - qcom,rpmcc-msm8974
+              - qcom,rpmcc-msm8976
+              - qcom,rpmcc-msm8992
+              - qcom,rpmcc-msm8994
+              - qcom,rpmcc-msm8996
+              - qcom,rpmcc-msm8998
+              - qcom,rpmcc-qcm2290
+              - qcom,rpmcc-qcs404
+              - qcom,rpmcc-sdm429
+              - qcom,rpmcc-sdm660
+              - qcom,rpmcc-sm6115
+              - qcom,rpmcc-sm6125
+              - qcom,rpmcc-sm6375
+          - const: qcom,rpmcc
+      - items:
+          - const: qcom,rpmcc-msm8960
+          - const: qcom,rpmcc-apq8064
+          - const: qcom,rpmcc
 
   '#clock-cells':
     const: 1

-- 
2.34.1



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 02/10] dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic
  2026-06-01  8:51 [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  8:51 ` [PATCH v3 01/10] dt-bindings: clock: qcom,rpmcc: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  8:51 ` Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  8:51 ` [PATCH v3 03/10] mfd: qcom_rpm: add msm8960 QDSS clock resource Antony Kurniawan Soemardi via B4 Relay
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 18+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-06-01  8:51 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio
  Cc: Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta,
	Antony Kurniawan Soemardi, Krzysztof Kozlowski

From: Antony Kurniawan Soemardi <linux@smankusors.com>

Add compat for Smart Peripheral System (SPS) Interrupt Controller (SIC)
present on Qualcomm MSM8960 SoC.

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
---
 Documentation/devicetree/bindings/mfd/syscon.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/mfd/syscon.yaml b/Documentation/devicetree/bindings/mfd/syscon.yaml
index e57add2bacd3..39a24c3ff9cf 100644
--- a/Documentation/devicetree/bindings/mfd/syscon.yaml
+++ b/Documentation/devicetree/bindings/mfd/syscon.yaml
@@ -106,6 +106,7 @@ select:
           - nxp,s32g3-gpr
           - qcom,apq8064-mmss-sfpb
           - qcom,apq8064-sps-sic
+          - qcom,msm8960-sps-sic
           - rockchip,px30-qos
           - rockchip,rk3036-qos
           - rockchip,rk3066-qos
@@ -219,6 +220,7 @@ properties:
               - nxp,s32g3-gpr
               - qcom,apq8064-mmss-sfpb
               - qcom,apq8064-sps-sic
+              - qcom,msm8960-sps-sic
               - rockchip,px30-qos
               - rockchip,rk3036-qos
               - rockchip,rk3066-qos

-- 
2.34.1



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 03/10] mfd: qcom_rpm: add msm8960 QDSS clock resource
  2026-06-01  8:51 [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  8:51 ` [PATCH v3 01/10] dt-bindings: clock: qcom,rpmcc: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  8:51 ` [PATCH v3 02/10] dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  8:51 ` Antony Kurniawan Soemardi via B4 Relay
  2026-06-01 11:34   ` Dmitry Baryshkov
  2026-06-01  8:51 ` [PATCH v3 04/10] clk: qcom: clk-rpm: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 18+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-06-01  8:51 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio
  Cc: Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta,
	Antony Kurniawan Soemardi

From: Antony Kurniawan Soemardi <linux@smankusors.com>

The msm8960 RPM resource table is missing the QDSS clock entry (resource
ID 209) that is present in the android-msm-mako-3.4 downstream kernel.
Add it so that RPM clock initialization succeeds.

Tested-by: Rudraksha Gupta <guptarud@gmail.com>
Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
---
 drivers/mfd/qcom_rpm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/mfd/qcom_rpm.c b/drivers/mfd/qcom_rpm.c
index 27446f43e3f3..0defb3279af1 100644
--- a/drivers/mfd/qcom_rpm.c
+++ b/drivers/mfd/qcom_rpm.c
@@ -324,6 +324,7 @@ static const struct qcom_rpm_resource msm8960_rpm_resource_table[] = {
 	[QCOM_RPM_USB_OTG_SWITCH] =		{ 205, 119, 82, 1 },
 	[QCOM_RPM_HDMI_SWITCH] =		{ 206, 120, 83, 1 },
 	[QCOM_RPM_DDR_DMM] =			{ 207, 121, 84, 2 },
+	[QCOM_RPM_QDSS_CLK] =			{ 209, ~0, 7, 1 },
 };
 
 static const struct qcom_rpm_data msm8960_template = {

-- 
2.34.1



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 04/10] clk: qcom: clk-rpm: add msm8960 compatible
  2026-06-01  8:51 [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
                   ` (2 preceding siblings ...)
  2026-06-01  8:51 ` [PATCH v3 03/10] mfd: qcom_rpm: add msm8960 QDSS clock resource Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  8:51 ` Antony Kurniawan Soemardi via B4 Relay
  2026-06-01 11:37   ` Dmitry Baryshkov
  2026-06-01 11:38   ` Dmitry Baryshkov
  2026-06-01  8:51 ` [PATCH v3 05/10] ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks Antony Kurniawan Soemardi via B4 Relay
                   ` (5 subsequent siblings)
  9 siblings, 2 replies; 18+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-06-01  8:51 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio
  Cc: Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta,
	Antony Kurniawan Soemardi

From: Antony Kurniawan Soemardi <linux@smankusors.com>

Add support for the "qcom,rpmcc-msm8960" compatible string to the
RPM clock driver.

msm8960 uses the same RPM clock descriptions as apq8064, so reuse
rpm_clk_apq8064 for this compatible.

Tested-by: Rudraksha Gupta <guptarud@gmail.com>
Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
---
 drivers/clk/qcom/clk-rpm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/clk/qcom/clk-rpm.c b/drivers/clk/qcom/clk-rpm.c
index be0145631197..601f60274113 100644
--- a/drivers/clk/qcom/clk-rpm.c
+++ b/drivers/clk/qcom/clk-rpm.c
@@ -502,6 +502,7 @@ static const struct rpm_clk_desc rpm_clk_ipq806x = {
 static const struct of_device_id rpm_clk_match_table[] = {
 	{ .compatible = "qcom,rpmcc-msm8660", .data = &rpm_clk_msm8660 },
 	{ .compatible = "qcom,rpmcc-apq8060", .data = &rpm_clk_msm8660 },
+	{ .compatible = "qcom,rpmcc-msm8960", .data = &rpm_clk_apq8064 },
 	{ .compatible = "qcom,rpmcc-apq8064", .data = &rpm_clk_apq8064 },
 	{ .compatible = "qcom,rpmcc-ipq806x", .data = &rpm_clk_ipq806x },
 	{ }

-- 
2.34.1



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 05/10] ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks
  2026-06-01  8:51 [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
                   ` (3 preceding siblings ...)
  2026-06-01  8:51 ` [PATCH v3 04/10] clk: qcom: clk-rpm: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  8:51 ` Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  9:09   ` sashiko-bot
  2026-06-01 12:06   ` Dmitry Baryshkov
  2026-06-01  8:51 ` [PATCH v3 06/10] ARM: dts: qcom: msm8960: add SCM Antony Kurniawan Soemardi via B4 Relay
                   ` (4 subsequent siblings)
  9 siblings, 2 replies; 18+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-06-01  8:51 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio
  Cc: Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta,
	Antony Kurniawan Soemardi

From: Antony Kurniawan Soemardi <linux@smankusors.com>

The RPM clock controller manages clocks shared between the application
processor and the RPM firmware, including fabric and bus clocks required
by several peripherals.

With the RPM clock controller now available in the device tree, the USB
controller must explicitly declare its dependency on
RPM_DAYTONA_FABRIC_CLK. Without this declaration, the clock framework
would consider it unused and disable it, breaking USB functionality.

This also corrects the previous misuse of USB_HS1_XCVR_CLK as the core
clock. The XCVR clock is in fact used for PHY/reset handling rather than
as the main core clock.

A similar issue has been observed on APQ8064, where missing the RPM
fabric clock dependency leads to broken USB.

Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
---
 arch/arm/boot/dts/qcom/qcom-msm8960.dtsi | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
index fd28401cebb5..1ae399c5a81f 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
+++ b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
@@ -5,6 +5,7 @@
 #include <dt-bindings/clock/qcom,gcc-msm8960.h>
 #include <dt-bindings/reset/qcom,gcc-msm8960.h>
 #include <dt-bindings/clock/qcom,lcc-msm8960.h>
+#include <dt-bindings/clock/qcom,rpmcc.h>
 #include <dt-bindings/mfd/qcom-rpm.h>
 #include <dt-bindings/soc/qcom,gsbi.h>
 
@@ -98,6 +99,17 @@ rpm: rpm@108000 {
 			interrupt-names = "ack",
 					  "err",
 					  "wakeup";
+
+			rpmcc: clock-controller {
+				compatible = "qcom,rpmcc-msm8960",
+					     "qcom,rpmcc-apq8064",
+					     "qcom,rpmcc";
+				#clock-cells = <1>;
+				clocks = <&pxo_board>,
+					 <&cxo_board>;
+				clock-names = "pxo",
+					      "cxo";
+			};
 		};
 
 		ssbi: ssbi@500000 {
@@ -507,8 +519,12 @@ usb1: usb@12500000 {
 			reg = <0x12500000 0x200>,
 			      <0x12500200 0x200>;
 			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&gcc USB_HS1_XCVR_CLK>, <&gcc USB_HS1_H_CLK>;
-			clock-names = "core", "iface";
+			clocks = <&gcc USB_HS1_H_CLK>,
+				 <&rpmcc RPM_DAYTONA_FABRIC_CLK>,
+				 <&gcc USB_HS1_XCVR_CLK>;
+			clock-names = "iface",
+				      "core",
+				      "fs";
 			assigned-clocks = <&gcc USB_HS1_XCVR_CLK>;
 			assigned-clock-rates = <60000000>;
 			resets = <&gcc USB_HS1_RESET>;

-- 
2.34.1



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 06/10] ARM: dts: qcom: msm8960: add SCM
  2026-06-01  8:51 [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
                   ` (4 preceding siblings ...)
  2026-06-01  8:51 ` [PATCH v3 05/10] ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  8:51 ` Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  8:51 ` [PATCH v3 07/10] ARM: dts: qcom: msm8960: add SMEM & hwlock Antony Kurniawan Soemardi via B4 Relay
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 18+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-06-01  8:51 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio
  Cc: Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta,
	Antony Kurniawan Soemardi, Dmitry Baryshkov

From: Antony Kurniawan Soemardi <linux@smankusors.com>

Add the Secure Channel Manager firmware device node to the MSM8960
device tree. The SCM is required for secure communication between the
application processor and other subsystems.

Tested-by: Rudraksha Gupta <guptarud@gmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
---
 arch/arm/boot/dts/qcom/qcom-msm8960.dtsi | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
index 1ae399c5a81f..3c1640188982 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
+++ b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
@@ -77,6 +77,15 @@ l2: l2-cache {
 		};
 	};
 
+	firmware {
+		scm {
+			compatible = "qcom,scm-msm8960", "qcom,scm";
+
+			clocks = <&rpmcc RPM_DAYTONA_FABRIC_CLK>;
+			clock-names = "core";
+		};
+	};
+
 	memory@80000000 {
 		device_type = "memory";
 		reg = <0x80000000 0>;

-- 
2.34.1



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 07/10] ARM: dts: qcom: msm8960: add SMEM & hwlock
  2026-06-01  8:51 [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
                   ` (5 preceding siblings ...)
  2026-06-01  8:51 ` [PATCH v3 06/10] ARM: dts: qcom: msm8960: add SCM Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  8:51 ` Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  8:51 ` [PATCH v3 08/10] ARM: dts: qcom: msm8960: add SMSM & SPS Antony Kurniawan Soemardi via B4 Relay
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 18+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-06-01  8:51 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio
  Cc: Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta,
	Antony Kurniawan Soemardi, Dmitry Baryshkov, Konrad Dybcio

From: Antony Kurniawan Soemardi <linux@smankusors.com>

Enable shared memory communication and add the SFPB lock for MSM8960.
These provide the foundation for inter-processor communication with the
Riva (BT + Wi-Fi) subsystem.

Tested-by: Rudraksha Gupta <guptarud@gmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
---
 arch/arm/boot/dts/qcom/qcom-msm8960.dtsi | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
index 3c1640188982..cb7199d0366e 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
+++ b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
@@ -91,6 +91,24 @@ memory@80000000 {
 		reg = <0x80000000 0>;
 	};
 
+	reserved-memory {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		smem_region: smem@80000000 {
+			reg = <0x80000000 0x200000>;
+			no-map;
+		};
+	};
+
+	smem {
+		compatible = "qcom,smem";
+		memory-region = <&smem_region>;
+
+		hwlocks = <&sfpb_mutex 3>;
+	};
+
 	soc: soc {
 		compatible = "simple-bus";
 		ranges;
@@ -344,6 +362,12 @@ tsens: thermal-sensor {
 			};
 		};
 
+		sfpb_mutex: hwlock@1200600 {
+			compatible = "qcom,sfpb-mutex";
+			reg = <0x01200600 0x100>;
+			#hwlock-cells = <1>;
+		};
+
 		intc: interrupt-controller@2000000 {
 			compatible = "qcom,msm-qgic2";
 			reg = <0x02000000 0x1000>,

-- 
2.34.1



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 08/10] ARM: dts: qcom: msm8960: add SMSM & SPS
  2026-06-01  8:51 [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
                   ` (6 preceding siblings ...)
  2026-06-01  8:51 ` [PATCH v3 07/10] ARM: dts: qcom: msm8960: add SMEM & hwlock Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  8:51 ` Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  9:02   ` sashiko-bot
  2026-06-01  8:51 ` [PATCH v3 09/10] ARM: dts: qcom: msm8960: add Riva Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  8:51 ` [PATCH v3 10/10] ARM: dts: qcom: msm8960: huashan: enable Wi-Fi and Bluetooth Antony Kurniawan Soemardi via B4 Relay
  9 siblings, 1 reply; 18+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-06-01  8:51 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio
  Cc: Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta,
	Antony Kurniawan Soemardi, Konrad Dybcio, Dmitry Baryshkov

From: Antony Kurniawan Soemardi <linux@smankusors.com>

Add the Shared Memory State Machine node to coordinate state transitions
between the Applications processor and the Riva subsystem.

Tested-by: Rudraksha Gupta <guptarud@gmail.com>
Acked-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
---
 arch/arm/boot/dts/qcom/qcom-msm8960.dtsi | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
index cb7199d0366e..662e2e45bbb8 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
+++ b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
@@ -109,6 +109,31 @@ smem {
 		hwlocks = <&sfpb_mutex 3>;
 	};
 
+	smsm {
+		compatible = "qcom,smsm";
+
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		qcom,ipc-1 = <&l2cc 8 4>;
+		qcom,ipc-2 = <&l2cc 8 14>;
+		qcom,ipc-3 = <&l2cc 8 23>;
+		qcom,ipc-4 = <&sps_sic_non_secure 0x4094 0>;
+
+		apps_smsm: apps@0 {
+			reg = <0>;
+			#qcom,smem-state-cells = <1>;
+		};
+
+		wcnss_smsm: wcnss@3 {
+			reg = <3>;
+			interrupts = <GIC_SPI 204 IRQ_TYPE_EDGE_RISING>;
+
+			interrupt-controller;
+			#interrupt-cells = <2>;
+		};
+	};
+
 	soc: soc {
 		compatible = "simple-bus";
 		ranges;
@@ -459,6 +484,11 @@ clock-controller@4000000 {
 				      "hdmipll";
 		};
 
+		sps_sic_non_secure: interrupt-controller@12100000 {
+			compatible = "qcom,msm8960-sps-sic", "syscon";
+			reg = <0x12100000 0x10000>;
+		};
+
 		sdcc3: mmc@12180000 {
 			compatible = "arm,pl18x", "arm,primecell";
 			reg = <0x12180000 0x2000>;

-- 
2.34.1



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 09/10] ARM: dts: qcom: msm8960: add Riva
  2026-06-01  8:51 [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
                   ` (7 preceding siblings ...)
  2026-06-01  8:51 ` [PATCH v3 08/10] ARM: dts: qcom: msm8960: add SMSM & SPS Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  8:51 ` Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  8:51 ` [PATCH v3 10/10] ARM: dts: qcom: msm8960: huashan: enable Wi-Fi and Bluetooth Antony Kurniawan Soemardi via B4 Relay
  9 siblings, 0 replies; 18+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-06-01  8:51 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio
  Cc: Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta,
	Antony Kurniawan Soemardi, Dmitry Baryshkov

From: Antony Kurniawan Soemardi <linux@smankusors.com>

Add the Riva Peripheral Image Loader node to support the Wireless
Connectivity and Networking Subsystem on MSM8960. This includes:

- Reserved memory region for WCNSS firmware
- WCN3660 iris radio controller
- Bluetooth and Wi-Fi sub-devices exposed via the SMD edge
- Pinctrl states for Bluetooth and Wi-Fi power management

Tested-by: Rudraksha Gupta <guptarud@gmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
---
 arch/arm/boot/dts/qcom/qcom-msm8960.dtsi | 87 ++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)

diff --git a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
index 662e2e45bbb8..2ecf33078f8b 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
+++ b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
@@ -100,6 +100,11 @@ smem_region: smem@80000000 {
 			reg = <0x80000000 0x200000>;
 			no-map;
 		};
+
+		wcnss_mem: wcnss@8f000000 {
+			reg = <0x8f000000 0x700000>;
+			no-map;
+		};
 	};
 
 	smem {
@@ -321,6 +326,34 @@ i2c12-pins {
 				};
 			};
 
+			riva_bt_default_state: riva-bt-active-state {
+				pins = "gpio28", "gpio29";
+				function = "bt";
+				drive-strength = <2>;
+				bias-disable;
+			};
+
+			riva_bt_sleep_state: riva-bt-sleep-state {
+				pins = "gpio28", "gpio29";
+				function = "bt";
+				drive-strength = <2>;
+				bias-pull-down;
+			};
+
+			riva_wlan_default_state: riva-wlan-active-state {
+				pins = "gpio84", "gpio85", "gpio86", "gpio87", "gpio88";
+				function = "wlan";
+				drive-strength = <6>;
+				bias-pull-down;
+			};
+
+			riva_wlan_sleep_state: riva-wlan-sleep-state {
+				pins = "gpio84", "gpio85", "gpio86", "gpio87", "gpio88";
+				function = "wlan";
+				drive-strength = <2>;
+				bias-pull-up;
+			};
+
 			sdcc3_default_state: sdcc3-default-state {
 				clk-pins {
 					pins = "sdc3_clk";
@@ -460,6 +493,60 @@ saw1_vreg: regulator {
 			};
 		};
 
+		riva: riva-pil@3200800 {
+			compatible = "qcom,riva-pil";
+			reg = <0x03200800 0x1000>,
+			      <0x03202000 0x2000>,
+			      <0x03204000 0x100>;
+			reg-names = "ccu",
+				    "dxe",
+				    "pmu";
+			pinctrl-0 = <&riva_wlan_default_state>, <&riva_bt_default_state>;
+			pinctrl-1 = <&riva_wlan_sleep_state>, <&riva_bt_sleep_state>;
+			pinctrl-names = "default", "sleep";
+			interrupts-extended = <&intc GIC_SPI 199 IRQ_TYPE_EDGE_RISING>,
+					      <&wcnss_smsm 6 IRQ_TYPE_EDGE_RISING>;
+			interrupt-names = "wdog", "fatal";
+			memory-region = <&wcnss_mem>;
+
+			status = "disabled";
+
+			iris {
+				compatible = "qcom,wcn3660";
+				clocks = <&cxo_board>;
+				clock-names = "xo";
+			};
+
+			smd-edge {
+				interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
+				label = "riva";
+				qcom,ipc = <&l2cc 8 25>;
+				qcom,smd-edge = <6>;
+
+				wcnss {
+					compatible = "qcom,wcnss";
+					qcom,smd-channels = "WCNSS_CTRL";
+					qcom,mmio = <&riva>;
+
+					bluetooth {
+						compatible = "qcom,wcnss-bt";
+					};
+
+					wifi {
+						compatible = "qcom,wcnss-wlan";
+						interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>,
+							     <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
+						interrupt-names = "tx",
+								  "rx";
+						qcom,smem-states = <&apps_smsm 10>,
+								   <&apps_smsm 9>;
+						qcom,smem-state-names = "tx-enable",
+									"tx-rings-empty";
+					};
+				};
+			};
+		};
+
 		clock-controller@4000000 {
 			compatible = "qcom,mmcc-msm8960";
 			reg = <0x4000000 0x1000>;

-- 
2.34.1



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 10/10] ARM: dts: qcom: msm8960: huashan: enable Wi-Fi and Bluetooth
  2026-06-01  8:51 [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
                   ` (8 preceding siblings ...)
  2026-06-01  8:51 ` [PATCH v3 09/10] ARM: dts: qcom: msm8960: add Riva Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  8:51 ` Antony Kurniawan Soemardi via B4 Relay
  2026-06-01 12:07   ` Dmitry Baryshkov
  9 siblings, 1 reply; 18+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-06-01  8:51 UTC (permalink / raw)
  To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio
  Cc: Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta,
	Antony Kurniawan Soemardi, Konrad Dybcio

From: Antony Kurniawan Soemardi <linux@smankusors.com>

Add Wi-Fi and Bluetooth support for Sony Xperia SP.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
---
 arch/arm/boot/dts/qcom/qcom-msm8960-sony-huashan.dts | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/arch/arm/boot/dts/qcom/qcom-msm8960-sony-huashan.dts b/arch/arm/boot/dts/qcom/qcom-msm8960-sony-huashan.dts
index 591dc837e600..7d54ced3641f 100644
--- a/arch/arm/boot/dts/qcom/qcom-msm8960-sony-huashan.dts
+++ b/arch/arm/boot/dts/qcom/qcom-msm8960-sony-huashan.dts
@@ -95,6 +95,21 @@ MATRIX_KEY(1, 1, KEY_CAMERA)
 	status = "okay";
 };
 
+&riva {
+	vddcx-supply = <&pm8921_s3>;
+	vddmx-supply = <&pm8921_l24>;
+	vddpx-supply = <&pm8921_s4>;
+
+	status = "okay";
+
+	iris {
+		vdddig-supply = <&pm8921_lvs2>;
+		vddpa-supply = <&pm8921_l10>;
+		vddrfa-supply = <&pm8921_s2>;
+		vddxo-supply = <&pm8921_l4>;
+	};
+};
+
 &rpm {
 	regulators {
 		compatible = "qcom,rpm-pm8921-regulators";

-- 
2.34.1



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 08/10] ARM: dts: qcom: msm8960: add SMSM & SPS
  2026-06-01  8:51 ` [PATCH v3 08/10] ARM: dts: qcom: msm8960: add SMSM & SPS Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  9:02   ` sashiko-bot
  0 siblings, 0 replies; 18+ messages in thread
From: sashiko-bot @ 2026-06-01  9:02 UTC (permalink / raw)
  To: Antony Kurniawan Soemardi via B4 Relay; +Cc: devicetree, robh, conor+dt

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The `sps_sic_non_secure` node is incorrectly named `interrupt-controller@12100000` without providing the required interrupt-controller properties.
--

commit 4a8cbafd47f1d161899adf92654dd133fdf9107f
Author: Antony Kurniawan Soemardi <linux@smankusors.com>

ARM: dts: qcom: msm8960: add SMSM & SPS

Add the Shared Memory State Machine node to coordinate state transitions
between the Applications processor and the Riva subsystem.

> diff --git a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
> index cb7199d0366ee..662e2e45bbb80 100644
> --- a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
> +++ b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi

[ ... ]

> @@ -459,6 +484,11 @@ clock-controller@4000000 {
>  				      "hdmipll";
>  		};
>  
> +		sps_sic_non_secure: interrupt-controller@12100000 {

[Severity: Low]
Does this node name cause devicetree validation warnings? Devicetree tooling
expects nodes named 'interrupt-controller' to act as interrupt providers and
contain properties like the 'interrupt-controller' boolean and
'#interrupt-cells'.

Since this node acts purely as a syscon, should its name reflect its generic
function, such as 'syscon@12100000', rather than 'interrupt-controller'?

> +			compatible = "qcom,msm8960-sps-sic", "syscon";
> +			reg = <0x12100000 0x10000>;
> +		};

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260601-msm8960-wifi-v3-0-fec6ac8dba02@smankusors.com?part=8

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 05/10] ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks
  2026-06-01  8:51 ` [PATCH v3 05/10] ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01  9:09   ` sashiko-bot
  2026-06-01 12:06   ` Dmitry Baryshkov
  1 sibling, 0 replies; 18+ messages in thread
From: sashiko-bot @ 2026-06-01  9:09 UTC (permalink / raw)
  To: Antony Kurniawan Soemardi via B4 Relay; +Cc: devicetree, conor+dt, robh

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:

New issues:
- [Low] Device Tree binding schema violation: `qcom,ci-hdrc` defines 3 clocks, but the `ci-hdrc-usb2.yaml` schema restricts `clocks` and `clock-names` properties to a maximum of 2 items.

Pre-existing issues:
- [High] The APQ8064 device tree misses the RPM fabric clock dependency for its USB nodes (`usb1`, `usb3`, `usb4`), leading to broken USB functionality.
--

commit bf5021df5ce13a6b631bed12c18c025b975c7150
Author: Antony Kurniawan Soemardi <linux@smankusors.com>

ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks

The RPM clock controller manages clocks shared between the application
processor and the RPM firmware, including fabric and bus clocks required
by several peripherals.

With the RPM clock controller now available in the device tree, the USB
controller must explicitly declare its dependency on
RPM_DAYTONA_FABRIC_CLK. Without this declaration, the clock framework
would consider it unused and disable it, breaking USB functionality.

This also corrects the previous misuse of USB_HS1_XCVR_CLK as the core
clock. The XCVR clock is in fact used for PHY/reset handling rather than
as the main core clock.

> A similar issue has been observed on APQ8064, where missing the RPM
> fabric clock dependency leads to broken USB.

[Severity: High]
This is a pre-existing issue, but since the commit message notes that
APQ8064 is broken due to the missing RPM fabric clock dependency, should we
fix the usb1, usb3, and usb4 nodes in arch/arm/boot/dts/qcom/qcom-apq8064.dtsi
as well?

For example, in qcom-apq8064.dtsi the usb1 node currently looks like this:

usb1: usb@12500000 {
    ...
    clocks = <&gcc USB_HS1_XCVR_CLK>, <&gcc USB_HS1_H_CLK>;
    clock-names = "core", "iface";
}

Since rpmcc is already enabled for APQ8064, the clock framework will disable
the RPM fabric clock as unused, rendering the APQ8064 USB controller fully
inoperable. Is it worth including a fix for qcom-apq8064.dtsi in this patch
series to restore that functionality?

> diff --git a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
> index fd28401cebb5e..1ae399c5a81f0 100644
> --- a/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi
> +++ b/arch/arm/boot/dts/qcom/qcom-msm8960.dtsi

[ ... ]

> @@ -507,8 +519,12 @@ usb1: usb@12500000 {
>  			reg = <0x12500000 0x200>,
>  			      <0x12500200 0x200>;
>  			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
> -			clocks = <&gcc USB_HS1_XCVR_CLK>, <&gcc USB_HS1_H_CLK>;
> -			clock-names = "core", "iface";
> +			clocks = <&gcc USB_HS1_H_CLK>,
> +				 <&rpmcc RPM_DAYTONA_FABRIC_CLK>,
> +				 <&gcc USB_HS1_XCVR_CLK>;
> +			clock-names = "iface",
> +				      "core",
> +				      "fs";

[Severity: Low]
Does adding a third clock here violate the device tree binding schema?

Looking at Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml, the clocks
and clock-names properties are restricted to a maximum of 2 items:

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    minItems: 1
    maxItems: 2

Will this cause dtbs_check validation failures? Even if the ci_hdrc_msm
driver handles the optional fs clock correctly at runtime using
devm_clk_get_optional(), should the schema be updated to allow up to 3
items before adding them to the device tree?

>  			assigned-clocks = <&gcc USB_HS1_XCVR_CLK>;
>  			assigned-clock-rates = <60000000>;
>  			resets = <&gcc USB_HS1_RESET>;

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260601-msm8960-wifi-v3-0-fec6ac8dba02@smankusors.com?part=5

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 03/10] mfd: qcom_rpm: add msm8960 QDSS clock resource
  2026-06-01  8:51 ` [PATCH v3 03/10] mfd: qcom_rpm: add msm8960 QDSS clock resource Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01 11:34   ` Dmitry Baryshkov
  0 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2026-06-01 11:34 UTC (permalink / raw)
  To: linux
  Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio,
	Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta

On Mon, Jun 01, 2026 at 03:51:16PM +0700, Antony Kurniawan Soemardi via B4 Relay wrote:
> From: Antony Kurniawan Soemardi <linux@smankusors.com>
> 
> The msm8960 RPM resource table is missing the QDSS clock entry (resource
> ID 209) that is present in the android-msm-mako-3.4 downstream kernel.
> Add it so that RPM clock initialization succeeds.
> 
> Tested-by: Rudraksha Gupta <guptarud@gmail.com>
> Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
> ---
>  drivers/mfd/qcom_rpm.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] 18+ messages in thread

* Re: [PATCH v3 04/10] clk: qcom: clk-rpm: add msm8960 compatible
  2026-06-01  8:51 ` [PATCH v3 04/10] clk: qcom: clk-rpm: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01 11:37   ` Dmitry Baryshkov
  2026-06-01 11:38   ` Dmitry Baryshkov
  1 sibling, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2026-06-01 11:37 UTC (permalink / raw)
  To: linux
  Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio,
	Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta

On Mon, Jun 01, 2026 at 03:51:17PM +0700, Antony Kurniawan Soemardi via B4 Relay wrote:
> From: Antony Kurniawan Soemardi <linux@smankusors.com>
> 
> Add support for the "qcom,rpmcc-msm8960" compatible string to the
> RPM clock driver.
> 
> msm8960 uses the same RPM clock descriptions as apq8064, so reuse
> rpm_clk_apq8064 for this compatible.

Nit: if the series will be resent, please consider adding something
like:

Although the platforms might need SoC specific quirks or features.


Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>



> 
> Tested-by: Rudraksha Gupta <guptarud@gmail.com>
> Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
> ---
>  drivers/clk/qcom/clk-rpm.c | 1 +
>  1 file changed, 1 insertion(+)
> 

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 04/10] clk: qcom: clk-rpm: add msm8960 compatible
  2026-06-01  8:51 ` [PATCH v3 04/10] clk: qcom: clk-rpm: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
  2026-06-01 11:37   ` Dmitry Baryshkov
@ 2026-06-01 11:38   ` Dmitry Baryshkov
  1 sibling, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2026-06-01 11:38 UTC (permalink / raw)
  To: linux
  Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio,
	Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta

On Mon, Jun 01, 2026 at 03:51:17PM +0700, Antony Kurniawan Soemardi via B4 Relay wrote:
> From: Antony Kurniawan Soemardi <linux@smankusors.com>
> 
> Add support for the "qcom,rpmcc-msm8960" compatible string to the
> RPM clock driver.
> 
> msm8960 uses the same RPM clock descriptions as apq8064, so reuse
> rpm_clk_apq8064 for this compatible.
> 
> Tested-by: Rudraksha Gupta <guptarud@gmail.com>
> Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
> ---
>  drivers/clk/qcom/clk-rpm.c | 1 +
>  1 file changed, 1 insertion(+)
> 

On the other hand... You have added APQ8064 strings as a fallback. Is
this change really needed until you actually have SoC-specific quirks?

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 05/10] ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks
  2026-06-01  8:51 ` [PATCH v3 05/10] ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks Antony Kurniawan Soemardi via B4 Relay
  2026-06-01  9:09   ` sashiko-bot
@ 2026-06-01 12:06   ` Dmitry Baryshkov
  1 sibling, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2026-06-01 12:06 UTC (permalink / raw)
  To: linux
  Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio,
	Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta

On Mon, Jun 01, 2026 at 03:51:18PM +0700, Antony Kurniawan Soemardi via B4 Relay wrote:
> From: Antony Kurniawan Soemardi <linux@smankusors.com>
> 
> The RPM clock controller manages clocks shared between the application
> processor and the RPM firmware, including fabric and bus clocks required
> by several peripherals.
> 
> With the RPM clock controller now available in the device tree, the USB
> controller must explicitly declare its dependency on
> RPM_DAYTONA_FABRIC_CLK. Without this declaration, the clock framework
> would consider it unused and disable it, breaking USB functionality.
> 
> This also corrects the previous misuse of USB_HS1_XCVR_CLK as the core
> clock. The XCVR clock is in fact used for PHY/reset handling rather than
> as the main core clock.
> 
> A similar issue has been observed on APQ8064, where missing the RPM
> fabric clock dependency leads to broken USB.
> 
> Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
> ---
>  arch/arm/boot/dts/qcom/qcom-msm8960.dtsi | 20 ++++++++++++++++++--
>  1 file changed, 18 insertions(+), 2 deletions(-)
> 

Please make sure that the DT matches the USB controller schema.
Otherwise:

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 10/10] ARM: dts: qcom: msm8960: huashan: enable Wi-Fi and Bluetooth
  2026-06-01  8:51 ` [PATCH v3 10/10] ARM: dts: qcom: msm8960: huashan: enable Wi-Fi and Bluetooth Antony Kurniawan Soemardi via B4 Relay
@ 2026-06-01 12:07   ` Dmitry Baryshkov
  0 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2026-06-01 12:07 UTC (permalink / raw)
  To: linux
  Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Lee Jones, Konrad Dybcio,
	Krzysztof Kozlowski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, phone-devel, Rudraksha Gupta, Konrad Dybcio

On Mon, Jun 01, 2026 at 03:51:23PM +0700, Antony Kurniawan Soemardi via B4 Relay wrote:
> From: Antony Kurniawan Soemardi <linux@smankusors.com>
> 
> Add Wi-Fi and Bluetooth support for Sony Xperia SP.
> 
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Antony Kurniawan Soemardi <linux@smankusors.com>
> ---
>  arch/arm/boot/dts/qcom/qcom-msm8960-sony-huashan.dts | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2026-06-01 12:07 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-01  8:51 [PATCH v3 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
2026-06-01  8:51 ` [PATCH v3 01/10] dt-bindings: clock: qcom,rpmcc: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
2026-06-01  8:51 ` [PATCH v3 02/10] dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic Antony Kurniawan Soemardi via B4 Relay
2026-06-01  8:51 ` [PATCH v3 03/10] mfd: qcom_rpm: add msm8960 QDSS clock resource Antony Kurniawan Soemardi via B4 Relay
2026-06-01 11:34   ` Dmitry Baryshkov
2026-06-01  8:51 ` [PATCH v3 04/10] clk: qcom: clk-rpm: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
2026-06-01 11:37   ` Dmitry Baryshkov
2026-06-01 11:38   ` Dmitry Baryshkov
2026-06-01  8:51 ` [PATCH v3 05/10] ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks Antony Kurniawan Soemardi via B4 Relay
2026-06-01  9:09   ` sashiko-bot
2026-06-01 12:06   ` Dmitry Baryshkov
2026-06-01  8:51 ` [PATCH v3 06/10] ARM: dts: qcom: msm8960: add SCM Antony Kurniawan Soemardi via B4 Relay
2026-06-01  8:51 ` [PATCH v3 07/10] ARM: dts: qcom: msm8960: add SMEM & hwlock Antony Kurniawan Soemardi via B4 Relay
2026-06-01  8:51 ` [PATCH v3 08/10] ARM: dts: qcom: msm8960: add SMSM & SPS Antony Kurniawan Soemardi via B4 Relay
2026-06-01  9:02   ` sashiko-bot
2026-06-01  8:51 ` [PATCH v3 09/10] ARM: dts: qcom: msm8960: add Riva Antony Kurniawan Soemardi via B4 Relay
2026-06-01  8:51 ` [PATCH v3 10/10] ARM: dts: qcom: msm8960: huashan: enable Wi-Fi and Bluetooth Antony Kurniawan Soemardi via B4 Relay
2026-06-01 12:07   ` Dmitry Baryshkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox