2022-08-19 08:34:22

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 00/16] arm64: dts: qcom: improvements to TCSR mutex in DTS

Hi,

Changes since v2
================
1. Patch 1 (bindings): add more compatibles.
2. New patches:
arm64: dts: qcom: sdm630: split TCSR halt regs out of mutex
arm64: dts: qcom: sm8150: split TCSR halt regs out of mutex
3. Add Rb tags.

Correct order of compatibles in the binding.
Changes since v1
================
1. Correct order of compatibles in the binding.

Description
===========
Set of improvements for TCSR mutex to match the bindings after conversion to DT schema.

Tested briefly on SDM845. Please kindly test on other platformss (therefore RFT).

Best regards,
Krzysztof

Krzysztof Kozlowski (16):
dt-bindings: mfd: qcom,tcsr: add several devices
arm64: dts: qcom: msm8996: split TCSR halt regs out of mutex
arm64: dts: qcom: msm8996: switch TCSR mutex to MMIO
arm64: dts: qcom: msm8998: split TCSR halt regs out of mutex
arm64: dts: qcom: msm8998: switch TCSR mutex to MMIO
arm64: dts: qcom: sc7180: add missing TCSR syscon compatible
arm64: dts: qcom: sc7180: split TCSR halt regs out of mutex
arm64: dts: qcom: sc7180: switch TCSR mutex to MMIO
arm64: dts: qcom: sc7280: split TCSR halt regs out of mutex
arm64: dts: qcom: sdm845: split TCSR halt regs out of mutex
arm64: dts: qcom: sdm845: switch TCSR mutex to MMIO
arm64: dts: qcom: qcs404: switch TCSR mutex to MMIO
arm64: dts: qcom: sdm630: split TCSR halt regs out of mutex
arm64: dts: qcom: sdm630: switch TCSR mutex to MMIO
arm64: dts: qcom: sm8150: split TCSR halt regs out of mutex
arm64: dts: qcom: sm8150: switch TCSR mutex to MMIO

.../devicetree/bindings/mfd/qcom,tcsr.yaml | 8 ++++++
arch/arm64/boot/dts/qcom/msm8996.dtsi | 24 ++++++++---------
arch/arm64/boot/dts/qcom/msm8998.dtsi | 20 +++++++-------
arch/arm64/boot/dts/qcom/qcs404.dtsi | 11 +++-----
arch/arm64/boot/dts/qcom/sc7180.dtsi | 26 +++++++++----------
arch/arm64/boot/dts/qcom/sc7280.dtsi | 19 +++++++++-----
arch/arm64/boot/dts/qcom/sdm630.dtsi | 18 ++++++-------
arch/arm64/boot/dts/qcom/sdm845.dtsi | 20 +++++++-------
arch/arm64/boot/dts/qcom/sm8150.dtsi | 18 ++++++-------
9 files changed, 86 insertions(+), 78 deletions(-)

--
2.34.1


2022-08-19 08:34:30

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 04/16] arm64: dts: qcom: msm8998: split TCSR halt regs out of mutex

The TCSR halt regs are next to TCSR mutex (in one address block called
TCSR_MUTEX), so before converting the TCSR mutex into device with
address space, we need to split the halt regs to its own syscon device.

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8998.dtsi | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/msm8998.dtsi b/arch/arm64/boot/dts/qcom/msm8998.dtsi
index 02d21bff2198..f0806ed103f1 100644
--- a/arch/arm64/boot/dts/qcom/msm8998.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi
@@ -1049,7 +1049,12 @@ ufsphy_lanes: phy@1da7400 {

tcsr_mutex_regs: syscon@1f40000 {
compatible = "syscon";
- reg = <0x01f40000 0x40000>;
+ reg = <0x01f40000 0x20000>;
+ };
+
+ tcsr_regs_1: sycon@1f60000 {
+ compatible = "qcom,msm8998-tcsr", "syscon";
+ reg = <0x01f60000 0x20000>;
};

tlmm: pinctrl@3400000 {
@@ -1340,7 +1345,7 @@ remoteproc_mss: remoteproc@4080000 {
resets = <&gcc GCC_MSS_RESTART>;
reset-names = "mss_restart";

- qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
+ qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;

power-domains = <&rpmpd MSM8998_VDDCX>,
<&rpmpd MSM8998_VDDMX>;
--
2.34.1

2022-08-19 08:34:44

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 06/16] arm64: dts: qcom: sc7180: add missing TCSR syscon compatible

TCSR syscon node should come with dedicated compatible.

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/sc7180.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
index b82c335c25af..49f28cb531f6 100644
--- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
@@ -1468,7 +1468,7 @@ tcsr_mutex_regs: syscon@1f40000 {
};

tcsr_regs: syscon@1fc0000 {
- compatible = "syscon";
+ compatible = "qcom,sc7180-tcsr", "syscon";
reg = <0 0x01fc0000 0 0x40000>;
};

--
2.34.1

2022-08-19 08:35:00

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 09/16] arm64: dts: qcom: sc7280: split TCSR halt regs out of mutex

The TCSR halt regs are next to TCSR mutex (in one address block called
TCSR_MUTEX), so before converting the TCSR mutex into device with
address space, we need to split the halt regs to its own syscon device.
This also describes more accurately the devices and their IO address
space, and allows to remove incorrect syscon compatible from TCSR mutex:

qcom/sc7280-herobrine-crd.dtb: hwlock@1f40000: compatible: ['qcom,tcsr-mutex', 'syscon'] is too long

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/sc7280.dtsi | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index 13d7f267b289..89a8e6b9822a 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -2155,12 +2155,17 @@ ipa: ipa@1e40000 {
};

tcsr_mutex: hwlock@1f40000 {
- compatible = "qcom,tcsr-mutex", "syscon";
- reg = <0 0x01f40000 0 0x40000>;
+ compatible = "qcom,tcsr-mutex";
+ reg = <0 0x01f40000 0 0x20000>;
#hwlock-cells = <1>;
};

- tcsr: syscon@1fc0000 {
+ tcsr_1: sycon@1f60000 {
+ compatible = "qcom,sc7280-tcsr", "syscon";
+ reg = <0 0x01f60000 0 0x20000>;
+ };
+
+ tcsr_2: syscon@1fc0000 {
compatible = "qcom,sc7280-tcsr", "syscon";
reg = <0 0x01fc0000 0 0x30000>;
};
@@ -2522,9 +2527,9 @@ remoteproc_mpss: remoteproc@4080000 {
<&pdc_reset PDC_MODEM_SYNC_RESET>;
reset-names = "mss_restart", "pdc_reset";

- qcom,halt-regs = <&tcsr_mutex 0x23000 0x25000 0x28000 0x33000>;
- qcom,ext-regs = <&tcsr 0x10000 0x10004 &tcsr_mutex 0x26004 0x26008>;
- qcom,qaccept-regs = <&tcsr_mutex 0x23030 0x23040 0x23020>;
+ qcom,halt-regs = <&tcsr_1 0x3000 0x5000 0x8000 0x13000>;
+ qcom,ext-regs = <&tcsr_2 0x10000 0x10004 &tcsr_1 0x6004 0x6008>;
+ qcom,qaccept-regs = <&tcsr_1 0x3030 0x3040 0x3020>;

status = "disabled";

@@ -3259,7 +3264,7 @@ remoteproc_wpss: remoteproc@8a00000 {
<&pdc_reset PDC_WPSS_SYNC_RESET>;
reset-names = "restart", "pdc_sync";

- qcom,halt-regs = <&tcsr_mutex 0x37000>;
+ qcom,halt-regs = <&tcsr_1 0x17000>;

status = "disabled";

--
2.34.1

2022-08-19 08:35:00

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 07/16] arm64: dts: qcom: sc7180: split TCSR halt regs out of mutex

The TCSR halt regs are next to TCSR mutex (in one address block called
TCSR_MUTEX), so before converting the TCSR mutex into device with
address space, we need to split the halt regs to its own syscon device.

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/sc7180.dtsi | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
index 49f28cb531f6..5d2dd21da79c 100644
--- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
@@ -1464,10 +1464,15 @@ ipa: ipa@1e40000 {

tcsr_mutex_regs: syscon@1f40000 {
compatible = "syscon";
- reg = <0 0x01f40000 0 0x40000>;
+ reg = <0 0x01f40000 0 0x20000>;
};

- tcsr_regs: syscon@1fc0000 {
+ tcsr_regs_1: sycon@1f60000 {
+ compatible = "qcom,sc7180-tcsr", "syscon";
+ reg = <0 0x01f60000 0 0x20000>;
+ };
+
+ tcsr_regs_2: syscon@1fc0000 {
compatible = "qcom,sc7180-tcsr", "syscon";
reg = <0 0x01fc0000 0 0x40000>;
};
@@ -1932,8 +1937,8 @@ remoteproc_mpss: remoteproc@4080000 {
<&pdc_reset PDC_MODEM_SYNC_RESET>;
reset-names = "mss_restart", "pdc_reset";

- qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
- qcom,spare-regs = <&tcsr_regs 0xb3e4>;
+ qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
+ qcom,spare-regs = <&tcsr_regs_2 0xb3e4>;

status = "disabled";

--
2.34.1

2022-08-19 08:35:02

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 10/16] arm64: dts: qcom: sdm845: split TCSR halt regs out of mutex

The TCSR halt regs are next to TCSR mutex (in one address block called
TCSR_MUTEX), so before converting the TCSR mutex into device with
address space, we need to split the halt regs to its own syscon device.

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/sdm845.dtsi | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index f0e286715d1b..21ed14200986 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -2590,7 +2590,12 @@ ipa: ipa@1e40000 {

tcsr_mutex_regs: syscon@1f40000 {
compatible = "syscon";
- reg = <0 0x01f40000 0 0x40000>;
+ reg = <0 0x01f40000 0 0x20000>;
+ };
+
+ tcsr_regs_1: sycon@1f60000 {
+ compatible = "qcom,sdm845-tcsr", "syscon";
+ reg = <0 0x01f60000 0 0x20000>;
};

tlmm: pinctrl@3400000 {
@@ -3207,7 +3212,7 @@ mss_pil: remoteproc@4080000 {
<&pdc_reset PDC_MODEM_SYNC_RESET>;
reset-names = "mss_restart", "pdc_reset";

- qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
+ qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;

power-domains = <&rpmhpd SDM845_CX>,
<&rpmhpd SDM845_MX>,
--
2.34.1

2022-08-19 08:35:03

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 08/16] arm64: dts: qcom: sc7180: switch TCSR mutex to MMIO

The TCSR mutex bindings allow device to be described only with address
space (so it uses MMIO, not syscon regmap). This seems reasonable as
TCSR mutex is actually a dedicated IO address space and it also fixes DT
schema checks:

qcom/sc7180-trogdor-wormdingler-rev1-inx.dtb: hwlock: 'reg' is a required property
qcom/sc7180-trogdor-wormdingler-rev1-inx.dtb: hwlock: 'syscon' does not match any of the regexes: 'pinctrl-[0-9]+'

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/sc7180.dtsi | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
index 5d2dd21da79c..e8debb0da411 100644
--- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
@@ -555,12 +555,6 @@ scm {
};
};

- tcsr_mutex: hwlock {
- compatible = "qcom,tcsr-mutex";
- syscon = <&tcsr_mutex_regs 0 0x1000>;
- #hwlock-cells = <1>;
- };
-
smem {
compatible = "qcom,smem";
memory-region = <&smem_mem>;
@@ -1462,9 +1456,10 @@ ipa: ipa@1e40000 {
status = "disabled";
};

- tcsr_mutex_regs: syscon@1f40000 {
- compatible = "syscon";
+ tcsr_mutex: hwlock@1f40000 {
+ compatible = "qcom,tcsr-mutex";
reg = <0 0x01f40000 0 0x20000>;
+ #hwlock-cells = <1>;
};

tcsr_regs_1: sycon@1f60000 {
--
2.34.1

2022-08-19 08:35:04

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 14/16] arm64: dts: qcom: sdm630: switch TCSR mutex to MMIO

The TCSR mutex bindings allow device to be described only with address
space (so it uses MMIO, not syscon regmap). This seems reasonable as
TCSR mutex is actually a dedicated IO address space and it also fixes DT
schema checks:

qcom/sdm636-sony-xperia-ganges-mermaid.dtb: hwlock: 'reg' is a required property
qcom/sdm636-sony-xperia-ganges-mermaid.dtb: hwlock: 'syscon' does not match any of the regexes: 'pinctrl-[0-9]+'

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/sdm630.dtsi | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
index a4f73be3d60a..9ae6610af93a 100644
--- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
@@ -697,9 +697,10 @@ tsens: thermal-sensor@10ae000 {
#thermal-sensor-cells = <1>;
};

- tcsr_mutex_regs: syscon@1f40000 {
- compatible = "syscon";
+ tcsr_mutex: hwlock@1f40000 {
+ compatible = "qcom,tcsr-mutex";
reg = <0x01f40000 0x20000>;
+ #hwlock-cells = <1>;
};

tcsr_regs_1: sycon@1f60000 {
@@ -2356,12 +2357,6 @@ intc: interrupt-controller@17a00000 {
};
};

- tcsr_mutex: hwlock {
- compatible = "qcom,tcsr-mutex";
- syscon = <&tcsr_mutex_regs 0 0x1000>;
- #hwlock-cells = <1>;
- };
-
sound: sound {
};

--
2.34.1

2022-08-19 08:35:04

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 12/16] arm64: dts: qcom: qcs404: switch TCSR mutex to MMIO

The TCSR mutex bindings allow device to be described only with address
space (so it uses MMIO, not syscon regmap). This seems reasonable as
TCSR mutex is actually a dedicated IO address space and it also fixes DT
schema checks:

qcom/qcs404-evb-4000.dtb: hwlock: 'reg' is a required property
qcom/qcs404-evb-4000.dtb: hwlock: 'syscon' does not match any of the regexes: 'pinctrl-[0-9]+'

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/qcs404.dtsi | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/qcs404.dtsi b/arch/arm64/boot/dts/qcom/qcs404.dtsi
index 9ab990061522..3a94eb2cc448 100644
--- a/arch/arm64/boot/dts/qcom/qcs404.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs404.dtsi
@@ -295,12 +295,6 @@ smem {
hwlocks = <&tcsr_mutex 3>;
};

- tcsr_mutex: hwlock {
- compatible = "qcom,tcsr-mutex";
- syscon = <&tcsr_mutex_regs 0 0x1000>;
- #hwlock-cells = <1>;
- };
-
soc: soc@0 {
#address-cells = <1>;
#size-cells = <1>;
@@ -726,9 +720,10 @@ gcc: clock-controller@1800000 {
assigned-clock-rates = <19200000>;
};

- tcsr_mutex_regs: syscon@1905000 {
- compatible = "syscon";
+ tcsr_mutex: hwlock@1905000 {
+ compatible = "qcom,tcsr-mutex";
reg = <0x01905000 0x20000>;
+ #hwlock-cells = <1>;
};

tcsr: syscon@1937000 {
--
2.34.1

2022-08-19 08:35:10

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 13/16] arm64: dts: qcom: sdm630: split TCSR halt regs out of mutex

The TCSR halt regs are next to TCSR mutex (in one address block called
TCSR_MUTEX), so before converting the TCSR mutex into device with
address space, we need to split the halt regs to its own syscon device.

Signed-off-by: Krzysztof Kozlowski <[email protected]>

---

Changes since v2:
1. New patch
---
arch/arm64/boot/dts/qcom/sdm630.dtsi | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
index 1bc9091cad2a..a4f73be3d60a 100644
--- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
@@ -699,7 +699,12 @@ tsens: thermal-sensor@10ae000 {

tcsr_mutex_regs: syscon@1f40000 {
compatible = "syscon";
- reg = <0x01f40000 0x40000>;
+ reg = <0x01f40000 0x20000>;
+ };
+
+ tcsr_regs_1: sycon@1f60000 {
+ compatible = "qcom,sdm630-tcsr", "syscon";
+ reg = <0x01f60000 0x20000>;
};

tlmm: pinctrl@3100000 {
--
2.34.1

2022-08-19 08:38:36

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 16/16] arm64: dts: qcom: sm8150: switch TCSR mutex to MMIO

The TCSR mutex bindings allow device to be described only with address
space (so it uses MMIO, not syscon regmap). This seems reasonable as
TCSR mutex is actually a dedicated IO address space and it also fixes DT
schema checks:

qcom/sm8150-mtp.dtb: hwlock: 'reg' is a required property
qcom/sm8150-mtp.dtb: hwlock: 'syscon' does not match any of the regexes: 'pinctrl-[0-9]+'

Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/qcom/sm8150.dtsi | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi
index 6df2e6828282..da737ba54490 100644
--- a/arch/arm64/boot/dts/qcom/sm8150.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi
@@ -585,12 +585,6 @@ scm: scm {
};
};

- tcsr_mutex: hwlock {
- compatible = "qcom,tcsr-mutex";
- syscon = <&tcsr_mutex_regs 0 0x1000>;
- #hwlock-cells = <1>;
- };
-
memory@80000000 {
device_type = "memory";
/* We expect the bootloader to fill in the size */
@@ -2054,9 +2048,10 @@ ipa_virt: interconnect@1e00000 {
qcom,bcm-voters = <&apps_bcm_voter>;
};

- tcsr_mutex_regs: syscon@1f40000 {
- compatible = "syscon";
+ tcsr_mutex: hwlock@1f40000 {
+ compatible = "qcom,tcsr-mutex";
reg = <0x0 0x01f40000 0x0 0x20000>;
+ #hwlock-cells = <1>;
};

tcsr_regs_1: sycon@1f60000 {
--
2.34.1

2022-08-19 08:42:10

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 05/16] arm64: dts: qcom: msm8998: switch TCSR mutex to MMIO

The TCSR mutex bindings allow device to be described only with address
space (so it uses MMIO, not syscon regmap). This seems reasonable as
TCSR mutex is actually a dedicated IO address space and it also fixes DT
schema checks:

qcom/msm8998-asus-novago-tp370ql.dtb: hwlock: 'reg' is a required property
qcom/msm8998-asus-novago-tp370ql.dtb: hwlock: 'syscon' does not match any of the regexes: 'pinctrl-[0-9]+'

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8998.dtsi | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/msm8998.dtsi b/arch/arm64/boot/dts/qcom/msm8998.dtsi
index f0806ed103f1..22b2da74d105 100644
--- a/arch/arm64/boot/dts/qcom/msm8998.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi
@@ -308,12 +308,6 @@ scm {
};
};

- tcsr_mutex: hwlock {
- compatible = "qcom,tcsr-mutex";
- syscon = <&tcsr_mutex_regs 0 0x1000>;
- #hwlock-cells = <1>;
- };
-
psci {
compatible = "arm,psci-1.0";
method = "smc";
@@ -1047,9 +1041,10 @@ ufsphy_lanes: phy@1da7400 {
};
};

- tcsr_mutex_regs: syscon@1f40000 {
- compatible = "syscon";
+ tcsr_mutex: hwlock@1f40000 {
+ compatible = "qcom,tcsr-mutex";
reg = <0x01f40000 0x20000>;
+ #hwlock-cells = <1>;
};

tcsr_regs_1: sycon@1f60000 {
--
2.34.1

2022-08-19 08:47:52

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 03/16] arm64: dts: qcom: msm8996: switch TCSR mutex to MMIO

The TCSR mutex bindings allow device to be described only with address
space (so it uses MMIO, not syscon regmap). This seems reasonable as
TCSR mutex is actually a dedicated IO address space and it also fixes DT
schema checks:

qcom/msm8996-xiaomi-natrium.dtb: hwlock: 'reg' is a required property
qcom/msm8996-xiaomi-natrium.dtb: hwlock: 'syscon' does not match any of the regexes: 'pinctrl-[0-9]+'

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8996.dtsi | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index 3411ced96db6..166374566a49 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -363,12 +363,6 @@ scm {
};
};

- tcsr_mutex: hwlock {
- compatible = "qcom,tcsr-mutex";
- syscon = <&tcsr_mutex_regs 0 0x1000>;
- #hwlock-cells = <1>;
- };
-
memory@80000000 {
device_type = "memory";
/* We expect the bootloader to fill in the reg */
@@ -838,9 +832,10 @@ pnoc: interconnect@5c0000 {
<&rpmcc RPM_SMD_PCNOC_A_CLK>;
};

- tcsr_mutex_regs: syscon@740000 {
- compatible = "syscon";
+ tcsr_mutex: hwlock@740000 {
+ compatible = "qcom,tcsr-mutex";
reg = <0x00740000 0x20000>;
+ #hwlock-cells = <1>;
};

tcsr_1: sycon@760000 {
--
2.34.1

2022-08-19 08:47:52

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 15/16] arm64: dts: qcom: sm8150: split TCSR halt regs out of mutex

The TCSR halt regs are next to TCSR mutex (in one address block called
TCSR_MUTEX), so before converting the TCSR mutex into device with
address space, we need to split the halt regs to its own syscon device.

Signed-off-by: Krzysztof Kozlowski <[email protected]>

---

Changes since v2:
1. New patch
---
arch/arm64/boot/dts/qcom/sm8150.dtsi | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi
index 7d509ecd44da..6df2e6828282 100644
--- a/arch/arm64/boot/dts/qcom/sm8150.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi
@@ -2056,7 +2056,12 @@ ipa_virt: interconnect@1e00000 {

tcsr_mutex_regs: syscon@1f40000 {
compatible = "syscon";
- reg = <0x0 0x01f40000 0x0 0x40000>;
+ reg = <0x0 0x01f40000 0x0 0x20000>;
+ };
+
+ tcsr_regs_1: sycon@1f60000 {
+ compatible = "qcom,sm8150-tcsr", "syscon";
+ reg = <0x0 0x01f60000 0x0 0x20000>;
};

remoteproc_slpi: remoteproc@2400000 {
--
2.34.1

2022-08-19 08:51:31

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 01/16] dt-bindings: mfd: qcom,tcsr: add several devices

Document existing (MSM8996, SC7280) and new compatibles for TCSR syscon
registers (QCS404, SC7180, SDM630, SDM845, SM8150, MSM8998).

Signed-off-by: Krzysztof Kozlowski <[email protected]>

---

Changes since v2:
1. Add more compatibles.

Changes since v1:
1. Correct order of compatibles.
---
Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml b/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml
index 2f816fd0c9ec..d3c25daa995e 100644
--- a/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml
+++ b/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml
@@ -18,6 +18,13 @@ properties:
oneOf:
- items:
- enum:
+ - qcom,msm8998-tcsr
+ - qcom,qcs404-tcsr
+ - qcom,sc7180-tcsr
+ - qcom,sc7280-tcsr
+ - qcom,sdm630-tcsr
+ - qcom,sdm845-tcsr
+ - qcom,sm8150-tcsr
- qcom,tcsr-apq8064
- qcom,tcsr-apq8084
- qcom,tcsr-ipq8064
@@ -27,6 +34,7 @@ properties:
- qcom,tcsr-msm8953
- qcom,tcsr-msm8960
- qcom,tcsr-msm8974
+ - qcom,tcsr-msm8996
- const: syscon
- items:
- const: qcom,tcsr-ipq6018
--
2.34.1

2022-08-19 08:56:06

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 11/16] arm64: dts: qcom: sdm845: switch TCSR mutex to MMIO

The TCSR mutex bindings allow device to be described only with address
space (so it uses MMIO, not syscon regmap). This seems reasonable as
TCSR mutex is actually a dedicated IO address space and it also fixes DT
schema checks:

qcom/sdm845-shift-axolotl.dtb: hwlock: 'reg' is a required property
qcom/sdm845-shift-axolotl.dtb: hwlock: 'syscon' does not match any of the regexes: 'pinctrl-[0-9]+'

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/sdm845.dtsi | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index 21ed14200986..bd0ec0664283 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -919,12 +919,6 @@ compute-cb@8 {
};
};

- tcsr_mutex: hwlock {
- compatible = "qcom,tcsr-mutex";
- syscon = <&tcsr_mutex_regs 0 0x1000>;
- #hwlock-cells = <1>;
- };
-
smp2p-cdsp {
compatible = "qcom,smp2p";
qcom,smem = <94>, <432>;
@@ -2588,9 +2582,10 @@ ipa: ipa@1e40000 {
status = "disabled";
};

- tcsr_mutex_regs: syscon@1f40000 {
- compatible = "syscon";
+ tcsr_mutex: hwlock@1f40000 {
+ compatible = "qcom,tcsr-mutex";
reg = <0 0x01f40000 0 0x20000>;
+ #hwlock-cells = <1>;
};

tcsr_regs_1: sycon@1f60000 {
--
2.34.1

2022-08-19 08:57:26

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [RFT PATCH v3 02/16] arm64: dts: qcom: msm8996: split TCSR halt regs out of mutex

The TCSR halt regs are next to TCSR mutex (in one address block called
TCSR_MUTEX), so before converting the TCSR mutex into device with
address space, we need to split the halt regs to its own syscon device.

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8996.dtsi | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index 742eac4ce9b3..3411ced96db6 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -359,7 +359,7 @@ opp-2150400000 {
firmware {
scm {
compatible = "qcom,scm-msm8996", "qcom,scm";
- qcom,dload-mode = <&tcsr 0x13000>;
+ qcom,dload-mode = <&tcsr_2 0x13000>;
};
};

@@ -840,10 +840,15 @@ pnoc: interconnect@5c0000 {

tcsr_mutex_regs: syscon@740000 {
compatible = "syscon";
- reg = <0x00740000 0x40000>;
+ reg = <0x00740000 0x20000>;
};

- tcsr: syscon@7a0000 {
+ tcsr_1: sycon@760000 {
+ compatible = "qcom,tcsr-msm8996", "syscon";
+ reg = <0x00760000 0x20000>;
+ };
+
+ tcsr_2: syscon@7a0000 {
compatible = "qcom,tcsr-msm8996", "syscon";
reg = <0x007a0000 0x18000>;
};
@@ -2413,7 +2418,7 @@ mss_pil: remoteproc@2080000 {
qcom,smem-states = <&mpss_smp2p_out 0>;
qcom,smem-state-names = "stop";

- qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
+ qcom,halt-regs = <&tcsr_1 0x3000 0x5000 0x4000>;

status = "disabled";

--
2.34.1

2022-08-22 18:39:40

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [RFT PATCH v3 01/16] dt-bindings: mfd: qcom,tcsr: add several devices

On Fri, 19 Aug 2022 11:31:54 +0300, Krzysztof Kozlowski wrote:
> Document existing (MSM8996, SC7280) and new compatibles for TCSR syscon
> registers (QCS404, SC7180, SDM630, SDM845, SM8150, MSM8998).
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> ---
>
> Changes since v2:
> 1. Add more compatibles.
>
> Changes since v1:
> 1. Correct order of compatibles.
> ---
> Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml | 8 ++++++++
> 1 file changed, 8 insertions(+)
>

Acked-by: Rob Herring <[email protected]>

2022-08-26 18:53:07

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [RFT PATCH v3 13/16] arm64: dts: qcom: sdm630: split TCSR halt regs out of mutex



On 19.08.2022 10:32, Krzysztof Kozlowski wrote:
> The TCSR halt regs are next to TCSR mutex (in one address block called
> TCSR_MUTEX), so before converting the TCSR mutex into device with
> address space, we need to split the halt regs to its own syscon device.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> ---
Reviewed-by: Konrad Dybcio <[email protected]>

Konrad
>
> Changes since v2:
> 1. New patch
> ---
> arch/arm64/boot/dts/qcom/sdm630.dtsi | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
> index 1bc9091cad2a..a4f73be3d60a 100644
> --- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
> @@ -699,7 +699,12 @@ tsens: thermal-sensor@10ae000 {
>
> tcsr_mutex_regs: syscon@1f40000 {
> compatible = "syscon";
> - reg = <0x01f40000 0x40000>;
> + reg = <0x01f40000 0x20000>;
> + };
> +
> + tcsr_regs_1: sycon@1f60000 {
> + compatible = "qcom,sdm630-tcsr", "syscon";
> + reg = <0x01f60000 0x20000>;
> };
>
> tlmm: pinctrl@3100000 {

2022-08-26 18:53:41

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [RFT PATCH v3 15/16] arm64: dts: qcom: sm8150: split TCSR halt regs out of mutex



On 19.08.2022 10:32, Krzysztof Kozlowski wrote:
> The TCSR halt regs are next to TCSR mutex (in one address block called
> TCSR_MUTEX), so before converting the TCSR mutex into device with
> address space, we need to split the halt regs to its own syscon device.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> ---
Reviewed-by: Konrad Dybcio <[email protected]>

Konrad
>
> Changes since v2:
> 1. New patch
> ---
> arch/arm64/boot/dts/qcom/sm8150.dtsi | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi
> index 7d509ecd44da..6df2e6828282 100644
> --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi
> @@ -2056,7 +2056,12 @@ ipa_virt: interconnect@1e00000 {
>
> tcsr_mutex_regs: syscon@1f40000 {
> compatible = "syscon";
> - reg = <0x0 0x01f40000 0x0 0x40000>;
> + reg = <0x0 0x01f40000 0x0 0x20000>;
> + };
> +
> + tcsr_regs_1: sycon@1f60000 {
> + compatible = "qcom,sm8150-tcsr", "syscon";
> + reg = <0x0 0x01f60000 0x0 0x20000>;
> };
>
> remoteproc_slpi: remoteproc@2400000 {

2022-08-26 19:11:26

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [RFT PATCH v3 16/16] arm64: dts: qcom: sm8150: switch TCSR mutex to MMIO



On 19.08.2022 10:32, Krzysztof Kozlowski wrote:
> The TCSR mutex bindings allow device to be described only with address
> space (so it uses MMIO, not syscon regmap). This seems reasonable as
> TCSR mutex is actually a dedicated IO address space and it also fixes DT
> schema checks:
>
> qcom/sm8150-mtp.dtb: hwlock: 'reg' is a required property
> qcom/sm8150-mtp.dtb: hwlock: 'syscon' does not match any of the regexes: 'pinctrl-[0-9]+'
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> ---
Reviewed-by: Konrad Dybcio <[email protected]>

Konrad
> arch/arm64/boot/dts/qcom/sm8150.dtsi | 11 +++--------
> 1 file changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi
> index 6df2e6828282..da737ba54490 100644
> --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi
> @@ -585,12 +585,6 @@ scm: scm {
> };
> };
>
> - tcsr_mutex: hwlock {
> - compatible = "qcom,tcsr-mutex";
> - syscon = <&tcsr_mutex_regs 0 0x1000>;
> - #hwlock-cells = <1>;
> - };
> -
> memory@80000000 {
> device_type = "memory";
> /* We expect the bootloader to fill in the size */
> @@ -2054,9 +2048,10 @@ ipa_virt: interconnect@1e00000 {
> qcom,bcm-voters = <&apps_bcm_voter>;
> };
>
> - tcsr_mutex_regs: syscon@1f40000 {
> - compatible = "syscon";
> + tcsr_mutex: hwlock@1f40000 {
> + compatible = "qcom,tcsr-mutex";
> reg = <0x0 0x01f40000 0x0 0x20000>;
> + #hwlock-cells = <1>;
> };
>
> tcsr_regs_1: sycon@1f60000 {

2022-08-30 00:24:40

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [RFT PATCH v3 00/16] arm64: dts: qcom: improvements to TCSR mutex in DTS

On Fri, 19 Aug 2022 11:31:53 +0300, Krzysztof Kozlowski wrote:
> Changes since v2
> ================
> 1. Patch 1 (bindings): add more compatibles.
> 2. New patches:
> arm64: dts: qcom: sdm630: split TCSR halt regs out of mutex
> arm64: dts: qcom: sm8150: split TCSR halt regs out of mutex
> 3. Add Rb tags.
>
> [...]

Applied, thanks!

[01/16] dt-bindings: mfd: qcom,tcsr: add several devices
commit: 4f2e28b2cc2e07c61028d27d964ff79705b5eb8f
[02/16] arm64: dts: qcom: msm8996: split TCSR halt regs out of mutex
commit: 100ce2205924a5253f73b598354d5dca97d37356
[03/16] arm64: dts: qcom: msm8996: switch TCSR mutex to MMIO
commit: 31df41b59b0e97bab38644903ec9111cfa2a0e53
[04/16] arm64: dts: qcom: msm8998: split TCSR halt regs out of mutex
commit: fc10cfa38580a09d150c14f71812f86f0babec7a
[05/16] arm64: dts: qcom: msm8998: switch TCSR mutex to MMIO
commit: 408c4eadd5d641b899db5eeacc2221273118a287
[06/16] arm64: dts: qcom: sc7180: add missing TCSR syscon compatible
commit: b5cc3e52d9932b382b5f72f108cd7da742b64450
[07/16] arm64: dts: qcom: sc7180: split TCSR halt regs out of mutex
commit: ce1ac53c7faa5b7930c3a7e30b2fad547b1efe67
[08/16] arm64: dts: qcom: sc7180: switch TCSR mutex to MMIO
commit: e66e548bab5e93dfe0b958187785215c3c5d05b5
[09/16] arm64: dts: qcom: sc7280: split TCSR halt regs out of mutex
commit: d9a2214d6ba5b68ffbfc5798f23bd3e1720f7b3d
[10/16] arm64: dts: qcom: sdm845: split TCSR halt regs out of mutex
commit: 8a8531e69b2db1df8bfcf66c990ba36919c48e21
[11/16] arm64: dts: qcom: sdm845: switch TCSR mutex to MMIO
commit: 3ed99307ec842fdb63b1519a011cb74e66b8d9cd
[12/16] arm64: dts: qcom: qcs404: switch TCSR mutex to MMIO
commit: a465a9877e3a898925c1af80cb1acd88ce7816e6
[13/16] arm64: dts: qcom: sdm630: split TCSR halt regs out of mutex
commit: 0da6033872256e0f25f92a6b5cc311efee529966
[14/16] arm64: dts: qcom: sdm630: switch TCSR mutex to MMIO
commit: a4c82270f0f441977d8d54505fb269c1ee762234
[15/16] arm64: dts: qcom: sm8150: split TCSR halt regs out of mutex
commit: 86d7c9460e2c0095bec80892b247f8c9f77bec82
[16/16] arm64: dts: qcom: sm8150: switch TCSR mutex to MMIO
commit: c752d491cd599b3205800678708e8b1f45844774

Best regards,
--
Bjorn Andersson <[email protected]>

2022-09-05 16:02:56

by Lee Jones

[permalink] [raw]
Subject: Re: [RFT PATCH v3 01/16] dt-bindings: mfd: qcom,tcsr: add several devices

On Fri, 19 Aug 2022, Krzysztof Kozlowski wrote:

> Document existing (MSM8996, SC7280) and new compatibles for TCSR syscon
> registers (QCS404, SC7180, SDM630, SDM845, SM8150, MSM8998).
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>

What does RFT mean?

> ---
>
> Changes since v2:
> 1. Add more compatibles.
>
> Changes since v1:
> 1. Correct order of compatibles.
> ---
> Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml b/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml
> index 2f816fd0c9ec..d3c25daa995e 100644
> --- a/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml
> +++ b/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml
> @@ -18,6 +18,13 @@ properties:
> oneOf:
> - items:
> - enum:
> + - qcom,msm8998-tcsr
> + - qcom,qcs404-tcsr
> + - qcom,sc7180-tcsr
> + - qcom,sc7280-tcsr
> + - qcom,sdm630-tcsr
> + - qcom,sdm845-tcsr
> + - qcom,sm8150-tcsr
> - qcom,tcsr-apq8064
> - qcom,tcsr-apq8084
> - qcom,tcsr-ipq8064
> @@ -27,6 +34,7 @@ properties:
> - qcom,tcsr-msm8953
> - qcom,tcsr-msm8960
> - qcom,tcsr-msm8974
> + - qcom,tcsr-msm8996
> - const: syscon
> - items:
> - const: qcom,tcsr-ipq6018

--
Lee Jones [李琼斯]

2022-09-05 16:22:32

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [RFT PATCH v3 01/16] dt-bindings: mfd: qcom,tcsr: add several devices

On 05/09/2022 17:15, Lee Jones wrote:
> On Fri, 19 Aug 2022, Krzysztof Kozlowski wrote:
>
>> Document existing (MSM8996, SC7280) and new compatibles for TCSR syscon
>> registers (QCS404, SC7180, SDM630, SDM845, SM8150, MSM8998).
>>
>> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> What does RFT mean?

Request For Test, but I should be more specific: testing is welcomed for
DTS. Bindings were tested by me, but I just used one git format-patch
command.

I don't see blockers for this patch and Bjorn took DTS already.

Best regards,
Krzysztof

2022-09-06 17:02:42

by Lee Jones

[permalink] [raw]
Subject: Re: [RFT PATCH v3 01/16] dt-bindings: mfd: qcom,tcsr: add several devices

On Fri, 19 Aug 2022, Krzysztof Kozlowski wrote:

> Document existing (MSM8996, SC7280) and new compatibles for TCSR syscon
> registers (QCS404, SC7180, SDM630, SDM845, SM8150, MSM8998).
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> ---
>
> Changes since v2:
> 1. Add more compatibles.
>
> Changes since v1:
> 1. Correct order of compatibles.
> ---
> Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml | 8 ++++++++
> 1 file changed, 8 insertions(+)

Applied, thanks.

--
Lee Jones [李琼斯]