* [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi)
@ 2026-05-14 14:08 Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 01/10] dt-bindings: clock: qcom,rpmcc: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
` (9 more replies)
0 siblings, 10 replies; 12+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-05-14 14:08 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
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/20260509-qcom-ci-hdrc-clock-fix-v1-1-f52386bf85da@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 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 | 77 ++++++----
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, 234 insertions(+), 32 deletions(-)
---
base-commit: 028ef9c96e96197026887c0f092424679298aae8
change-id: 20251226-msm8960-wifi-beecd96c6646
Best regards,
--
Antony Kurniawan Soemardi <linux@smankusors.com>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 01/10] dt-bindings: clock: qcom,rpmcc: add msm8960 compatible
2026-05-14 14:08 [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
@ 2026-05-14 14:08 ` Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 02/10] dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic Antony Kurniawan Soemardi via B4 Relay
` (8 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-05-14 14:08 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 | 77 +++++++++++++---------
1 file changed, 47 insertions(+), 30 deletions(-)
diff --git a/Documentation/devicetree/bindings/clock/qcom,rpmcc.yaml b/Documentation/devicetree/bindings/clock/qcom,rpmcc.yaml
index ab97d4b7dba8..32ef7d08e0bb 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
@@ -90,7 +95,9 @@ allOf:
properties:
compatible:
contains:
- const: qcom,rpmcc-apq8064
+ enum:
+ - qcom,rpmcc-apq8064
+ - qcom,rpmcc-msm8960
then:
properties:
clocks:
@@ -164,3 +171,13 @@ examples:
clock-names = "pxo";
};
};
+
+ - |
+ rpm {
+ clock-controller {
+ compatible = "qcom,rpmcc-msm8960", "qcom,rpmcc-apq8064", "qcom,rpmcc";
+ #clock-cells = <1>;
+ clocks = <&pxo_board>, <&cxo_board>;
+ clock-names = "pxo", "cxo";
+ };
+ };
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 02/10] dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic
2026-05-14 14:08 [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 01/10] dt-bindings: clock: qcom,rpmcc: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
@ 2026-05-14 14:08 ` Antony Kurniawan Soemardi via B4 Relay
2026-05-14 19:40 ` sashiko-bot
2026-05-14 14:08 ` [PATCH v2 03/10] mfd: qcom_rpm: add msm8960 QDSS clock resource Antony Kurniawan Soemardi via B4 Relay
` (7 subsequent siblings)
9 siblings, 1 reply; 12+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-05-14 14:08 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 compat for Smart Peripheral System (SPS) Interrupt Controller (SIC)
present on Qualcomm MSM8960 SoC.
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] 12+ messages in thread
* [PATCH v2 03/10] mfd: qcom_rpm: add msm8960 QDSS clock resource
2026-05-14 14:08 [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 01/10] dt-bindings: clock: qcom,rpmcc: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 02/10] dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic Antony Kurniawan Soemardi via B4 Relay
@ 2026-05-14 14:08 ` Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 04/10] clk: qcom: clk-rpm: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
` (6 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-05-14 14:08 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] 12+ messages in thread
* [PATCH v2 04/10] clk: qcom: clk-rpm: add msm8960 compatible
2026-05-14 14:08 [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
` (2 preceding siblings ...)
2026-05-14 14:08 ` [PATCH v2 03/10] mfd: qcom_rpm: add msm8960 QDSS clock resource Antony Kurniawan Soemardi via B4 Relay
@ 2026-05-14 14:08 ` Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 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, 0 replies; 12+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-05-14 14:08 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] 12+ messages in thread
* [PATCH v2 05/10] ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks
2026-05-14 14:08 [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
` (3 preceding siblings ...)
2026-05-14 14:08 ` [PATCH v2 04/10] clk: qcom: clk-rpm: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
@ 2026-05-14 14:08 ` Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 06/10] ARM: dts: qcom: msm8960: add SCM Antony Kurniawan Soemardi via B4 Relay
` (4 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-05-14 14:08 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..0601680cd8dd 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 = <&rpmcc RPM_DAYTONA_FABRIC_CLK>,
+ <&gcc USB_HS1_H_CLK>,
+ <&gcc USB_HS1_XCVR_CLK>;
+ clock-names = "core",
+ "iface",
+ "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] 12+ messages in thread
* [PATCH v2 06/10] ARM: dts: qcom: msm8960: add SCM
2026-05-14 14:08 [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
` (4 preceding siblings ...)
2026-05-14 14:08 ` [PATCH v2 05/10] ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks Antony Kurniawan Soemardi via B4 Relay
@ 2026-05-14 14:08 ` Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 07/10] ARM: dts: qcom: msm8960: add SMEM & hwlock Antony Kurniawan Soemardi via B4 Relay
` (3 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-05-14 14:08 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 0601680cd8dd..fb23c950fecb 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] 12+ messages in thread
* [PATCH v2 07/10] ARM: dts: qcom: msm8960: add SMEM & hwlock
2026-05-14 14:08 [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
` (5 preceding siblings ...)
2026-05-14 14:08 ` [PATCH v2 06/10] ARM: dts: qcom: msm8960: add SCM Antony Kurniawan Soemardi via B4 Relay
@ 2026-05-14 14:08 ` Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 08/10] ARM: dts: qcom: msm8960: add SMSM & SPS Antony Kurniawan Soemardi via B4 Relay
` (2 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-05-14 14:08 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 fb23c950fecb..e215d8809f28 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] 12+ messages in thread
* [PATCH v2 08/10] ARM: dts: qcom: msm8960: add SMSM & SPS
2026-05-14 14:08 [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
` (6 preceding siblings ...)
2026-05-14 14:08 ` [PATCH v2 07/10] ARM: dts: qcom: msm8960: add SMEM & hwlock Antony Kurniawan Soemardi via B4 Relay
@ 2026-05-14 14:08 ` Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 09/10] ARM: dts: qcom: msm8960: add Riva Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 10/10] ARM: dts: qcom: msm8960: huashan: enable Wi-Fi and Bluetooth Antony Kurniawan Soemardi via B4 Relay
9 siblings, 0 replies; 12+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-05-14 14:08 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 e215d8809f28..fdc060df4544 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] 12+ messages in thread
* [PATCH v2 09/10] ARM: dts: qcom: msm8960: add Riva
2026-05-14 14:08 [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
` (7 preceding siblings ...)
2026-05-14 14:08 ` [PATCH v2 08/10] ARM: dts: qcom: msm8960: add SMSM & SPS Antony Kurniawan Soemardi via B4 Relay
@ 2026-05-14 14:08 ` Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 10/10] ARM: dts: qcom: msm8960: huashan: enable Wi-Fi and Bluetooth Antony Kurniawan Soemardi via B4 Relay
9 siblings, 0 replies; 12+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-05-14 14:08 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 fdc060df4544..093c24c47fd6 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] 12+ messages in thread
* [PATCH v2 10/10] ARM: dts: qcom: msm8960: huashan: enable Wi-Fi and Bluetooth
2026-05-14 14:08 [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
` (8 preceding siblings ...)
2026-05-14 14:08 ` [PATCH v2 09/10] ARM: dts: qcom: msm8960: add Riva Antony Kurniawan Soemardi via B4 Relay
@ 2026-05-14 14:08 ` Antony Kurniawan Soemardi via B4 Relay
9 siblings, 0 replies; 12+ messages in thread
From: Antony Kurniawan Soemardi via B4 Relay @ 2026-05-14 14:08 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] 12+ messages in thread
* Re: [PATCH v2 02/10] dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic
2026-05-14 14:08 ` [PATCH v2 02/10] dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic Antony Kurniawan Soemardi via B4 Relay
@ 2026-05-14 19:40 ` sashiko-bot
0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-05-14 19:40 UTC (permalink / raw)
To: Antony Kurniawan Soemardi via B4 Relay
Cc: devicetree, robh, conor+dt, krzk+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The commit adds the compatible string `qcom,msm8960-sps-sic` for an Interrupt Controller but fails to define and require standard interrupt controller properties.
--
commit 4920dc5889f6c452e2f9cb09ecf073afa3b06d47
Author: Antony Kurniawan Soemardi <linux@smankusors.com>
dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic
This commit adds the compatible string for the Smart Peripheral System
Interrupt Controller present on the Qualcomm MSM8960 SoC to the syscon
bindings.
> diff --git a/Documentation/devicetree/bindings/mfd/syscon.yaml b/Documentation/devicetree/bindings/mfd/syscon.yaml
> --- a/Documentation/devicetree/bindings/mfd/syscon.yaml
> +++ b/Documentation/devicetree/bindings/mfd/syscon.yaml
[ ... ]
> @@ -219,6 +220,7 @@ properties:
> - nxp,s32g3-gpr
> - qcom,apq8064-mmss-sfpb
> - qcom,apq8064-sps-sic
> + - qcom,msm8960-sps-sic
> - rockchip,px30-qos
Could this cause a regression in schema validation completeness? The commit
message notes this represents an interrupt controller, but the corresponding
standard properties are missing.
Should the binding also define and require interrupt-controller and
#interrupt-cells with appropriate constraints?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260514-msm8960-wifi-v2-0-7cbae45dab5e@smankusors.com?part=2
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2026-05-14 19:40 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-14 14:08 [PATCH v2 00/10] ARM: qcom: msm8960: enable WCNSS (Bluetooth & Wi-Fi) Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 01/10] dt-bindings: clock: qcom,rpmcc: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 02/10] dt-bindings: mfd: syscon: add qcom,msm8960-sps-sic Antony Kurniawan Soemardi via B4 Relay
2026-05-14 19:40 ` sashiko-bot
2026-05-14 14:08 ` [PATCH v2 03/10] mfd: qcom_rpm: add msm8960 QDSS clock resource Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 04/10] clk: qcom: clk-rpm: add msm8960 compatible Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 05/10] ARM: dts: qcom: msm8960: add RPM clock controller and fix USB clocks Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 06/10] ARM: dts: qcom: msm8960: add SCM Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 07/10] ARM: dts: qcom: msm8960: add SMEM & hwlock Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 08/10] ARM: dts: qcom: msm8960: add SMSM & SPS Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 09/10] ARM: dts: qcom: msm8960: add Riva Antony Kurniawan Soemardi via B4 Relay
2026-05-14 14:08 ` [PATCH v2 10/10] ARM: dts: qcom: msm8960: huashan: enable Wi-Fi and Bluetooth Antony Kurniawan Soemardi via B4 Relay
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox