2022-11-24 19:06:24

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH v3 00/15] dt-bindings: remoteproc: qcom: split and reorganize PAS/PIL

Changes since v2
================
1. Allow only one or two clocks, after dropping clocks related to PIL binding.
2. Drop if:then: for the clock and put it directly under properties
3. Merge two if:then: clauses for setting interrupts.
4. New patches: DTS fixes, qcom,adsp: drop resets and qcom,halt-regs,
qcom,qcs404-pas, qcom,sc7180-pas and last msm8996-slpi-pil fix.

Changes since v1
================
1. Keep resets, reset-names, qcom,qmp and qcom,halt-regs in qcom,adsp, because
they are not shared with most of PAS bindings.
2. Add firmware-name to examples.
3. New patches: qcom,sc8180x-pas and qcom,sdx55-pas.

Description
===========
The Qualcomm PAS/PIL (qcom,adsp.yaml) bindings grew considerably with huge
amount of if:then:else blocks and 40 compatibles (still growing). These
if:then:else blocks constrain clocks, power-domains and interrupt per variants.
Adding new variants is now tricky - it's easy to forget to add variant to one
if:then: clause.

Split the bindings into reusable schema and per-soc bindings, groupping them
when applicable.

This part is finished, but more and more compatibles should be moved out of
qcom,adsp.yaml, eventually dropping the file.

Best regards,
Krzysztof

Krzysztof Kozlowski (15):
arm64: dts: qcom: msm8996: drop address/size cells from smd-edge
arm64: dts: qcom: qcs404: align CDSP PAS node with bindings
arm64: dts: qcom: sc7180: align MPSS PAS node with bindings
arm64: dts: qcom: sc7280: align MPSS PAS node with bindings
dt-bindings: remoteproc: qcom,adsp: drop resets and qcom,halt-regs
dt-bindings: remoteproc: qcom,adsp: split common part
dt-bindings: remoteproc: qcom,sm8350-pas: split into separate file
dt-bindings: remoteproc: qcom,sm8150-pas: split into separate file
dt-bindings: remoteproc: qcom,sm6350-pas: split into separate file
dt-bindings: remoteproc: qcom,sc8280xp-pas: split into separate file
dt-bindings: remoteproc: qcom,sc8180x-pas: split into separate file
dt-bindings: remoteproc: qcom,sdx55-pas: split into separate file
dt-bindings: remoteproc: qcom,qcs404-pas: split into separate file
dt-bindings: remoteproc: qcom,sc7180-pas: split into separate file
dt-bindings: remoteproc: qcom,adsp: correct msm8996-slpi-pil clocks

.../bindings/remoteproc/qcom,adsp.yaml | 414 +-----------------
.../bindings/remoteproc/qcom,pas-common.yaml | 97 ++++
.../bindings/remoteproc/qcom,qcs404-pas.yaml | 86 ++++
.../bindings/remoteproc/qcom,sc7180-pas.yaml | 125 ++++++
.../bindings/remoteproc/qcom,sc8180x-pas.yaml | 87 ++++
.../remoteproc/qcom,sc8280xp-pas.yaml | 139 ++++++
.../bindings/remoteproc/qcom,sdx55-pas.yaml | 101 +++++
.../bindings/remoteproc/qcom,sm6350-pas.yaml | 159 +++++++
.../bindings/remoteproc/qcom,sm8150-pas.yaml | 166 +++++++
.../bindings/remoteproc/qcom,sm8350-pas.yaml | 174 ++++++++
arch/arm64/boot/dts/qcom/msm8996.dtsi | 3 +-
arch/arm64/boot/dts/qcom/qcs404.dtsi | 46 +-
arch/arm64/boot/dts/qcom/sc7180-idp.dts | 18 +
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 18 +
arch/arm64/boot/dts/qcom/sc7180.dtsi | 20 +-
.../dts/qcom/sc7280-herobrine-lte-sku.dtsi | 17 +
arch/arm64/boot/dts/qcom/sc7280.dtsi | 16 +-
17 files changed, 1221 insertions(+), 465 deletions(-)
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sc7180-pas.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sc8180x-pas.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sc8280xp-pas.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sdx55-pas.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sm6350-pas.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sm8350-pas.yaml

--
2.34.1


2022-11-24 19:06:28

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH v3 11/15] dt-bindings: remoteproc: qcom,sc8180x-pas: split into separate file

Split SC8180x remote processor Peripheral Authentication Service bindings
into their own file to reduce complexity and make maintenance easier.

The binding is incomplete due to lack of upstreamed DTS - no example and
not all power domains defined.

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

---

Changes since v2:
1. Drop if:then: for the clock and put it directly under properties.
2. Merge two if:then: clauses for setting interrupts.

Changes since v1:
1. New patch.
---
.../bindings/remoteproc/qcom,adsp.yaml | 27 ------
.../bindings/remoteproc/qcom,sc8180x-pas.yaml | 87 +++++++++++++++++++
2 files changed, 87 insertions(+), 27 deletions(-)
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sc8180x-pas.yaml

diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
index 67a68a8edc44..7b93064fa0ae 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
@@ -27,9 +27,6 @@ properties:
- qcom,qcs404-wcss-pas
- qcom,sc7180-mpss-pas
- qcom,sc7280-mpss-pas
- - qcom,sc8180x-adsp-pas
- - qcom,sc8180x-cdsp-pas
- - qcom,sc8180x-mpss-pas
- qcom,sdm660-adsp-pas
- qcom,sdm845-adsp-pas
- qcom,sdm845-cdsp-pas
@@ -70,9 +67,6 @@ allOf:
- qcom,qcs404-wcss-pas
- qcom,sc7180-mpss-pas
- qcom,sc7280-mpss-pas
- - qcom,sc8180x-adsp-pas
- - qcom,sc8180x-cdsp-pas
- - qcom,sc8180x-mpss-pas
- qcom,sdm845-adsp-pas
- qcom,sdm845-cdsp-pas
then:
@@ -115,8 +109,6 @@ allOf:
- qcom,qcs404-adsp-pas
- qcom,qcs404-cdsp-pas
- qcom,qcs404-wcss-pas
- - qcom,sc8180x-adsp-pas
- - qcom,sc8180x-cdsp-pas
- qcom,sdm845-adsp-pas
- qcom,sdm845-cdsp-pas
then:
@@ -133,7 +125,6 @@ allOf:
enum:
- qcom,sc7180-mpss-pas
- qcom,sc7280-mpss-pas
- - qcom,sc8180x-mpss-pas
- qcom,sdx55-mpss-pas
then:
properties:
@@ -224,24 +215,6 @@ allOf:
- const: cx
- const: mss

- - if:
- properties:
- compatible:
- contains:
- enum:
- - qcom,sc8180x-adsp-pas
- - qcom,sc8180x-cdsp-pas
- then:
- properties:
- power-domains:
- items:
- - description: LCX power domain
- - description: LMX power domain
- power-domain-names:
- items:
- - const: lcx
- - const: lmx
-
- if:
properties:
compatible:
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sc8180x-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sc8180x-pas.yaml
new file mode 100644
index 000000000000..3026cfde5582
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,sc8180x-pas.yaml
@@ -0,0 +1,87 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/qcom,sc8180x-pas.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SC8180X Peripheral Authentication Service
+
+maintainers:
+ - Manivannan Sadhasivam <[email protected]>
+
+description:
+ Qualcomm SC8180X SoC Peripheral Authentication Service loads and boots
+ firmware on the Qualcomm DSP Hexagon cores.
+
+properties:
+ compatible:
+ enum:
+ - qcom,sc8180x-adsp-pas
+ - qcom,sc8180x-cdsp-pas
+ - qcom,sc8180x-mpss-pas
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: XO clock
+
+ clock-names:
+ items:
+ - const: xo
+
+ qcom,qmp:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: Reference to the AOSS side-channel message RAM.
+
+ smd-edge: false
+
+required:
+ - compatible
+ - reg
+
+allOf:
+ - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,sc8180x-adsp-pas
+ - qcom,sc8180x-cdsp-pas
+ then:
+ properties:
+ interrupts:
+ maxItems: 5
+ interrupt-names:
+ maxItems: 5
+ else:
+ properties:
+ interrupts:
+ minItems: 6
+ interrupt-names:
+ minItems: 6
+
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,sc8180x-adsp-pas
+ - qcom,sc8180x-cdsp-pas
+ then:
+ properties:
+ power-domains:
+ items:
+ - description: LCX power domain
+ - description: LMX power domain
+ power-domain-names:
+ items:
+ - const: lcx
+ - const: lmx
+ else:
+ properties:
+ # TODO: incomplete
+ power-domains: false
+ power-domain-names: false
+
+unevaluatedProperties: false
--
2.34.1

2022-11-24 19:08:24

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH v3 05/15] dt-bindings: remoteproc: qcom,adsp: drop resets and qcom,halt-regs

Some remote processors (e.g. QCS404 CDSP, SC7180 MPSS/MSS) can be brought
to life using two different bindings:
1. PIL (Peripheral Image Loader)
2. PAS (Peripheral Authentication Service)

They still describe the same hardware - firmware load for remote
processor - but use different methods to communicate with that
processor.

For these SoCs, the qcom,adsp.yaml bindings were describing the PAS
method, however for easier customization of board DTS, the bindings
combined additional properties from PIL: reset lines, qcom,halt-regs and
additional clocks. The devices and Linux kernel drivers, when
instantiated as PAS, do not use these properties, so drop them from the
bindings.

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

---

Changes since v2:
1. New patch
---
.../bindings/remoteproc/qcom,adsp.yaml | 113 +-----------------
1 file changed, 4 insertions(+), 109 deletions(-)

diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
index db9e0f0c2bea..e3e617315aef 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
@@ -61,11 +61,11 @@ properties:

clocks:
minItems: 1
- maxItems: 8
+ maxItems: 2

clock-names:
minItems: 1
- maxItems: 8
+ maxItems: 2

interconnects:
maxItems: 1
@@ -90,14 +90,6 @@ properties:
- const: stop-ack
- const: shutdown-ack

- resets:
- minItems: 1
- maxItems: 3
-
- reset-names:
- minItems: 1
- maxItems: 3
-
cx-supply:
description: Phandle to the CX regulator

@@ -135,18 +127,6 @@ properties:
items:
- const: stop

- qcom,halt-regs:
- $ref: /schemas/types.yaml#/definitions/phandle-array
- items:
- - items:
- - description: Phandle reference to a syscon representing TCSR
- - description: offsets within syscon for q6 halt registers
- - description: offsets within syscon for modem halt registers
- - description: offsets within syscon for nc halt registers
- description:
- Phandle reference to a syscon representing TCSR followed by the
- three offsets within syscon for q6, modem and nc halt registers.
-
smd-edge:
$ref: /schemas/remoteproc/qcom,smd-edge.yaml#
description:
@@ -184,7 +164,9 @@ allOf:
- qcom,msm8996-slpi-pil
- qcom,msm8998-adsp-pas
- qcom,qcs404-adsp-pas
+ - qcom,qcs404-cdsp-pas
- qcom,qcs404-wcss-pas
+ - qcom,sc7180-mpss-pas
- qcom,sc7280-mpss-pas
- qcom,sc8180x-adsp-pas
- qcom,sc8180x-cdsp-pas
@@ -238,60 +220,6 @@ allOf:
- const: xo
- const: aggre2

- - if:
- properties:
- compatible:
- contains:
- enum:
- - qcom,qcs404-cdsp-pas
- then:
- properties:
- clocks:
- items:
- - description: XO clock
- - description: SWAY clock
- - description: TBU clock
- - description: BIMC clock
- - description: AHB AON clock
- - description: Q6SS SLAVE clock
- - description: Q6SS MASTER clock
- - description: Q6 AXIM clock
- clock-names:
- items:
- - const: xo
- - const: sway
- - const: tbu
- - const: bimc
- - const: ahb_aon
- - const: q6ss_slave
- - const: q6ss_master
- - const: q6_axim
-
- - if:
- properties:
- compatible:
- contains:
- enum:
- - qcom,sc7180-mpss-pas
- then:
- properties:
- clocks:
- items:
- - description: XO clock
- - description: IFACE clock
- - description: BUS clock
- - description: NAC clock
- - description: SNOC AXI clock
- - description: MNOC AXI clock
- clock-names:
- items:
- - const: xo
- - const: iface
- - const: bus
- - const: nav
- - const: snoc_axi
- - const: mnoc_axi
-
- if:
properties:
compatible:
@@ -520,39 +448,6 @@ allOf:
items:
- const: nsp

- - if:
- properties:
- compatible:
- contains:
- enum:
- - qcom,qcs404-cdsp-pas
- then:
- properties:
- resets:
- items:
- - description: CDSP restart
- reset-names:
- items:
- - const: restart
-
- - if:
- properties:
- compatible:
- contains:
- enum:
- - qcom,sc7180-mpss-pas
- - qcom,sc7280-mpss-pas
- then:
- properties:
- resets:
- items:
- - description: MSS restart
- - description: PDC reset
- reset-names:
- items:
- - const: mss_restart
- - const: pdc_reset
-
- if:
properties:
compatible:
--
2.34.1

2022-11-24 19:08:28

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH v3 03/15] arm64: dts: qcom: sc7180: align MPSS PAS node with bindings

The SC7180 MPSS/MSS remote processor can be brought to life using two
different bindings:
1. qcom,sc7180-mpss-pas - currently used in DTSI
2. qcom,sc7180-mss-pil

Move the properties related to qcom,sc7180-mss-pil (qcom,halt-regs,
qcom,spare-regs, resets, additional clocks and regs) to specific boards
using the PIL, to silence DT schema warnings.

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

---

Changes since v2:
1. New patch.
---
arch/arm64/boot/dts/qcom/sc7180-idp.dts | 18 ++++++++++++++++++
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 18 ++++++++++++++++++
arch/arm64/boot/dts/qcom/sc7180.dtsi | 20 +++-----------------
3 files changed, 39 insertions(+), 17 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
index 70fd9ff8dfa2..b27b5f0e2b6b 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts
+++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts
@@ -370,8 +370,26 @@ &qupv3_id_1 {
&remoteproc_mpss {
status = "okay";
compatible = "qcom,sc7180-mss-pil";
+ reg = <0 0x04080000 0 0x4040>, <0 0x04180000 0 0x48>;
+ reg-names = "qdsp6", "rmb";
+
+ clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
+ <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+ <&gcc GCC_MSS_NAV_AXI_CLK>,
+ <&gcc GCC_MSS_SNOC_AXI_CLK>,
+ <&gcc GCC_MSS_MFAB_AXIS_CLK>,
+ <&rpmhcc RPMH_CXO_CLK>;
+ clock-names = "iface", "bus", "nav", "snoc_axi", "mnoc_axi", "xo";
+
iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
memory-region = <&mba_mem &mpss_mem>;
+
+ resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
+ <&pdc_reset PDC_MODEM_SYNC_RESET>;
+ reset-names = "mss_restart", "pdc_reset";
+
+ qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
+ qcom,spare-regs = <&tcsr_regs_2 0xb3e4>;
};

&sdhc_1 {
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
index 65601bea0797..d968fbce4b89 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
@@ -851,12 +851,30 @@ &qupv3_id_1 {
&remoteproc_mpss {
status = "okay";
compatible = "qcom,sc7180-mss-pil";
+ reg = <0 0x04080000 0 0x4040>, <0 0x04180000 0 0x48>;
+ reg-names = "qdsp6", "rmb";
+
+ clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
+ <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+ <&gcc GCC_MSS_NAV_AXI_CLK>,
+ <&gcc GCC_MSS_SNOC_AXI_CLK>,
+ <&gcc GCC_MSS_MFAB_AXIS_CLK>,
+ <&rpmhcc RPMH_CXO_CLK>;
+ clock-names = "iface", "bus", "nav", "snoc_axi", "mnoc_axi", "xo";
+
iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
memory-region = <&mba_mem &mpss_mem>;

/* This gets overridden for SKUs with LTE support. */
firmware-name = "qcom/sc7180-trogdor/modem-nolte/mba.mbn",
"qcom/sc7180-trogdor/modem-nolte/qdsp6sw.mbn";
+
+ resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
+ <&pdc_reset PDC_MODEM_SYNC_RESET>;
+ reset-names = "mss_restart", "pdc_reset";
+
+ qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
+ qcom,spare-regs = <&tcsr_regs_2 0xb3e4>;
};

&sdhc_1 {
diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
index ea886cf08b4d..5be978c44c0d 100644
--- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
@@ -1929,8 +1929,7 @@ pri_mi2s_mclk_active: pri-mi2s-mclk-active-state {

remoteproc_mpss: remoteproc@4080000 {
compatible = "qcom,sc7180-mpss-pas";
- reg = <0 0x04080000 0 0x4040>, <0 0x04180000 0 0x48>;
- reg-names = "qdsp6", "rmb";
+ reg = <0 0x04080000 0 0x4040>;

interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>,
<&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -1941,14 +1940,8 @@ remoteproc_mpss: remoteproc@4080000 {
interrupt-names = "wdog", "fatal", "ready", "handover",
"stop-ack", "shutdown-ack";

- clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
- <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
- <&gcc GCC_MSS_NAV_AXI_CLK>,
- <&gcc GCC_MSS_SNOC_AXI_CLK>,
- <&gcc GCC_MSS_MFAB_AXIS_CLK>,
- <&rpmhcc RPMH_CXO_CLK>;
- clock-names = "iface", "bus", "nav", "snoc_axi",
- "mnoc_axi", "xo";
+ clocks = <&rpmhcc RPMH_CXO_CLK>;
+ clock-names = "xo";

power-domains = <&rpmhpd SC7180_CX>,
<&rpmhpd SC7180_MX>,
@@ -1962,13 +1955,6 @@ remoteproc_mpss: remoteproc@4080000 {
qcom,smem-states = <&modem_smp2p_out 0>;
qcom,smem-state-names = "stop";

- resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
- <&pdc_reset PDC_MODEM_SYNC_RESET>;
- reset-names = "mss_restart", "pdc_reset";
-
- qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
- qcom,spare-regs = <&tcsr_regs_2 0xb3e4>;
-
status = "disabled";

glink-edge {
--
2.34.1

2022-11-24 19:09:38

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH v3 08/15] dt-bindings: remoteproc: qcom,sm8150-pas: split into separate file

Split SM8150 and SM8250 remote processor Peripheral Authentication
Service bindings into their own file to reduce complexity and make
maintenance easier.

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

---

Changes since v2:
1. Drop if:then: for the clock and put it directly under properties.
2. Merge two if:then: clauses for setting interrupts.

Changes since v1:
1. Add qcom,qmp (not part of qcom,pas-common.yaml# anymore).
2. Add firmware-name to example.
---
.../bindings/remoteproc/qcom,adsp.yaml | 27 ---
.../bindings/remoteproc/qcom,sm8150-pas.yaml | 166 ++++++++++++++++++
2 files changed, 166 insertions(+), 27 deletions(-)
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml

diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
index 67941e79a4a0..e8d66eefd522 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
@@ -40,13 +40,6 @@ properties:
- qcom,sm6350-adsp-pas
- qcom,sm6350-cdsp-pas
- qcom,sm6350-mpss-pas
- - qcom,sm8150-adsp-pas
- - qcom,sm8150-cdsp-pas
- - qcom,sm8150-mpss-pas
- - qcom,sm8150-slpi-pas
- - qcom,sm8250-adsp-pas
- - qcom,sm8250-cdsp-pas
- - qcom,sm8250-slpi-pas

reg:
maxItems: 1
@@ -94,13 +87,6 @@ allOf:
- qcom,sm6350-adsp-pas
- qcom,sm6350-cdsp-pas
- qcom,sm6350-mpss-pas
- - qcom,sm8150-adsp-pas
- - qcom,sm8150-cdsp-pas
- - qcom,sm8150-mpss-pas
- - qcom,sm8150-slpi-pas
- - qcom,sm8250-adsp-pas
- - qcom,sm8250-cdsp-pas
- - qcom,sm8250-slpi-pas
then:
properties:
clocks:
@@ -150,12 +136,6 @@ allOf:
- qcom,sdm845-cdsp-pas
- qcom,sm6350-adsp-pas
- qcom,sm6350-cdsp-pas
- - qcom,sm8150-adsp-pas
- - qcom,sm8150-cdsp-pas
- - qcom,sm8150-slpi-pas
- - qcom,sm8250-adsp-pas
- - qcom,sm8250-cdsp-pas
- - qcom,sm8250-slpi-pas
then:
properties:
interrupts:
@@ -173,7 +153,6 @@ allOf:
- qcom,sc8180x-mpss-pas
- qcom,sdx55-mpss-pas
- qcom,sm6350-mpss-pas
- - qcom,sm8150-mpss-pas
then:
properties:
interrupts:
@@ -199,8 +178,6 @@ allOf:
- qcom,msm8226-adsp-pil
- qcom,msm8996-adsp-pil
- qcom,msm8998-adsp-pas
- - qcom,sm8150-adsp-pas
- - qcom,sm8150-cdsp-pas
then:
properties:
power-domains:
@@ -272,7 +249,6 @@ allOf:
- qcom,sc7280-mpss-pas
- qcom,sdx55-mpss-pas
- qcom,sm6350-mpss-pas
- - qcom,sm8150-mpss-pas
then:
properties:
power-domains:
@@ -293,9 +269,6 @@ allOf:
- qcom,sc8180x-cdsp-pas
- qcom,sc8280xp-adsp-pas
- qcom,sm6350-adsp-pas
- - qcom,sm8150-slpi-pas
- - qcom,sm8250-adsp-pas
- - qcom,sm8250-slpi-pas
then:
properties:
power-domains:
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml
new file mode 100644
index 000000000000..b934252cf02b
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml
@@ -0,0 +1,166 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/qcom,sm8150-pas.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SM8150/SM8250 Peripheral Authentication Service
+
+maintainers:
+ - Manivannan Sadhasivam <[email protected]>
+
+description:
+ Qualcomm SM8150/SM8250 SoC Peripheral Authentication Service loads and boots
+ firmware on the Qualcomm DSP Hexagon cores.
+
+properties:
+ compatible:
+ enum:
+ - qcom,sm8150-adsp-pas
+ - qcom,sm8150-cdsp-pas
+ - qcom,sm8150-mpss-pas
+ - qcom,sm8150-slpi-pas
+ - qcom,sm8250-adsp-pas
+ - qcom,sm8250-cdsp-pas
+ - qcom,sm8250-slpi-pas
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: XO clock
+
+ clock-names:
+ items:
+ - const: xo
+
+ qcom,qmp:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: Reference to the AOSS side-channel message RAM.
+
+ smd-edge: false
+
+required:
+ - compatible
+ - reg
+
+allOf:
+ - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,sm8150-adsp-pas
+ - qcom,sm8150-cdsp-pas
+ - qcom,sm8150-slpi-pas
+ - qcom,sm8250-adsp-pas
+ - qcom,sm8250-cdsp-pas
+ - qcom,sm8250-slpi-pas
+ then:
+ properties:
+ interrupts:
+ maxItems: 5
+ interrupt-names:
+ maxItems: 5
+ else:
+ properties:
+ interrupts:
+ minItems: 6
+ interrupt-names:
+ minItems: 6
+
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,sm8150-adsp-pas
+ - qcom,sm8150-cdsp-pas
+ - qcom,sm8250-cdsp-pas
+ then:
+ properties:
+ power-domains:
+ items:
+ - description: CX power domain
+ power-domain-names:
+ items:
+ - const: cx
+
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,sm8150-mpss-pas
+ then:
+ properties:
+ power-domains:
+ items:
+ - description: CX power domain
+ - description: MSS power domain
+ power-domain-names:
+ items:
+ - const: cx
+ - const: mss
+
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,sm8150-slpi-pas
+ - qcom,sm8250-adsp-pas
+ - qcom,sm8250-slpi-pas
+ then:
+ properties:
+ power-domains:
+ items:
+ - description: LCX power domain
+ - description: LMX power domain
+ power-domain-names:
+ items:
+ - const: lcx
+ - const: lmx
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,rpmh.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/power/qcom-rpmpd.h>
+
+ remoteproc@17300000 {
+ compatible = "qcom,sm8150-adsp-pas";
+ reg = <0x17300000 0x4040>;
+
+ clocks = <&rpmhcc RPMH_CXO_CLK>;
+ clock-names = "xo";
+
+ firmware-name = "qcom/sm8150/adsp.mbn";
+
+ interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "wdog", "fatal", "ready",
+ "handover", "stop-ack";
+
+ memory-region = <&adsp_mem>;
+
+ power-domains = <&rpmhpd SM8150_CX>;
+
+ qcom,qmp = <&aoss_qmp>;
+ qcom,smem-states = <&adsp_smp2p_out 0>;
+ qcom,smem-state-names = "stop";
+
+ glink-edge {
+ interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
+ label = "lpass";
+ qcom,remote-pid = <2>;
+ mboxes = <&apss_shared 8>;
+
+ /* ... */
+
+ };
+ };
--
2.34.1

2022-11-24 19:10:54

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH v3 13/15] dt-bindings: remoteproc: qcom,qcs404-pas: split into separate file

Split QCS404 remote processor Peripheral Authentication Service bindings
into their own file to reduce complexity and make maintenance easier.

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

---

Changes since v2:
1. New patch.
---
.../bindings/remoteproc/qcom,adsp.yaml | 12 ---
.../bindings/remoteproc/qcom,qcs404-pas.yaml | 86 +++++++++++++++++++
2 files changed, 86 insertions(+), 12 deletions(-)
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml

diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
index 10c96445da11..9fdfa9476ca9 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
@@ -22,9 +22,6 @@ properties:
- qcom,msm8996-slpi-pil
- qcom,msm8998-adsp-pas
- qcom,msm8998-slpi-pas
- - qcom,qcs404-adsp-pas
- - qcom,qcs404-cdsp-pas
- - qcom,qcs404-wcss-pas
- qcom,sc7180-mpss-pas
- qcom,sc7280-mpss-pas
- qcom,sdm660-adsp-pas
@@ -61,9 +58,6 @@ allOf:
- qcom,msm8996-adsp-pil
- qcom,msm8996-slpi-pil
- qcom,msm8998-adsp-pas
- - qcom,qcs404-adsp-pas
- - qcom,qcs404-cdsp-pas
- - qcom,qcs404-wcss-pas
- qcom,sc7180-mpss-pas
- qcom,sc7280-mpss-pas
- qcom,sdm845-adsp-pas
@@ -105,9 +99,6 @@ allOf:
- qcom,msm8996-slpi-pil
- qcom,msm8998-adsp-pas
- qcom,msm8998-slpi-pas
- - qcom,qcs404-adsp-pas
- - qcom,qcs404-cdsp-pas
- - qcom,qcs404-wcss-pas
- qcom,sdm845-adsp-pas
- qcom,sdm845-cdsp-pas
then:
@@ -223,9 +214,6 @@ allOf:
- qcom,msm8996-slpi-pil
- qcom,msm8998-adsp-pas
- qcom,msm8998-slpi-pas
- - qcom,qcs404-adsp-pas
- - qcom,qcs404-cdsp-pas
- - qcom,qcs404-wcss-pas
- qcom,sdm660-adsp-pas
then:
properties:
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml
new file mode 100644
index 000000000000..007349ef51ed
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/qcom,qcs404-pas.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm QCS404 Peripheral Authentication Service
+
+maintainers:
+ - Manivannan Sadhasivam <[email protected]>
+
+description:
+ Qualcomm QCS404 SoC Peripheral Authentication Service loads and boots
+ firmware on the Qualcomm DSP Hexagon cores.
+
+properties:
+ compatible:
+ enum:
+ - qcom,qcs404-adsp-pas
+ - qcom,qcs404-cdsp-pas
+ - qcom,qcs404-wcss-pas
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: XO clock
+
+ clock-names:
+ items:
+ - const: xo
+
+ interrupts:
+ maxItems: 5
+
+ interrupt-names:
+ maxItems: 5
+
+ power-domains: false
+ power-domain-names: false
+ smd-edge: false
+
+required:
+ - compatible
+ - reg
+
+allOf:
+ - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ remoteproc@c700000 {
+ compatible = "qcom,qcs404-adsp-pas";
+ reg = <0x0c700000 0x4040>;
+
+ clocks = <&xo_board>;
+ clock-names = "xo";
+
+ interrupts-extended = <&intc GIC_SPI 293 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "wdog", "fatal", "ready",
+ "handover", "stop-ack";
+
+ memory-region = <&adsp_fw_mem>;
+
+ qcom,smem-states = <&adsp_smp2p_out 0>;
+ qcom,smem-state-names = "stop";
+
+ glink-edge {
+ interrupts = <GIC_SPI 289 IRQ_TYPE_EDGE_RISING>;
+
+ qcom,remote-pid = <2>;
+ mboxes = <&apcs_glb 8>;
+
+ label = "adsp";
+ };
+ };
--
2.34.1

2022-11-24 19:37:25

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH v3 12/15] dt-bindings: remoteproc: qcom,sdx55-pas: split into separate file

Split SDX55 remote processor Peripheral Authentication Service bindings
into their own file to reduce complexity and make maintenance easier.

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

---

Changes since v1:
1. New patch.
---
.../bindings/remoteproc/qcom,adsp.yaml | 4 -
.../bindings/remoteproc/qcom,sdx55-pas.yaml | 101 ++++++++++++++++++
2 files changed, 101 insertions(+), 4 deletions(-)
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sdx55-pas.yaml

diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
index 7b93064fa0ae..10c96445da11 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
@@ -30,7 +30,6 @@ properties:
- qcom,sdm660-adsp-pas
- qcom,sdm845-adsp-pas
- qcom,sdm845-cdsp-pas
- - qcom,sdx55-mpss-pas

reg:
maxItems: 1
@@ -125,7 +124,6 @@ allOf:
enum:
- qcom,sc7180-mpss-pas
- qcom,sc7280-mpss-pas
- - qcom,sdx55-mpss-pas
then:
properties:
interrupts:
@@ -203,7 +201,6 @@ allOf:
contains:
enum:
- qcom,sc7280-mpss-pas
- - qcom,sdx55-mpss-pas
then:
properties:
power-domains:
@@ -230,7 +227,6 @@ allOf:
- qcom,qcs404-cdsp-pas
- qcom,qcs404-wcss-pas
- qcom,sdm660-adsp-pas
- - qcom,sdx55-mpss-pas
then:
properties:
qcom,qmp: false
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sdx55-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sdx55-pas.yaml
new file mode 100644
index 000000000000..cbeaa00ca4d4
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,sdx55-pas.yaml
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/qcom,sdx55-pas.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SDX55 Peripheral Authentication Service
+
+maintainers:
+ - Manivannan Sadhasivam <[email protected]>
+
+description:
+ Qualcomm SDX55 SoC Peripheral Authentication Service loads and boots firmware
+ on the Qualcomm DSP Hexagon cores.
+
+properties:
+ compatible:
+ enum:
+ - qcom,sdx55-mpss-pas
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: XO clock
+
+ clock-names:
+ items:
+ - const: xo
+
+ interrupts:
+ minItems: 6
+
+ interrupt-names:
+ minItems: 6
+
+ power-domains:
+ items:
+ - description: CX power domain
+ - description: MSS power domain
+
+ power-domain-names:
+ items:
+ - const: cx
+ - const: mss
+
+ qcom,qmp:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: Reference to the AOSS side-channel message RAM.
+
+ smd-edge: false
+
+required:
+ - compatible
+ - reg
+
+allOf:
+ - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,rpmh.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/power/qcom-rpmpd.h>
+
+ remoteproc@4080000 {
+ compatible = "qcom,sdx55-mpss-pas";
+ reg = <0x04080000 0x4040>;
+
+ clocks = <&rpmhcc RPMH_CXO_CLK>;
+ clock-names = "xo";
+
+ interrupts-extended = <&intc GIC_SPI 250 IRQ_TYPE_EDGE_RISING>,
+ <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+ <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+ <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+ <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
+ <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "wdog", "fatal", "ready", "handover",
+ "stop-ack", "shutdown-ack";
+
+ memory-region = <&mpss_adsp_mem>;
+
+ power-domains = <&rpmhpd SDX55_CX>, <&rpmhpd SDX55_MSS>;
+ power-domain-names = "cx", "mss";
+
+ qcom,smem-states = <&modem_smp2p_out 0>;
+ qcom,smem-state-names = "stop";
+
+ glink-edge {
+ interrupts = <GIC_SPI 114 IRQ_TYPE_EDGE_RISING>;
+ label = "mpss";
+ mboxes = <&apcs 15>;
+ qcom,remote-pid = <1>;
+
+ /* ... */
+ };
+ };
--
2.34.1

2022-12-05 20:44:24

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v3 08/15] dt-bindings: remoteproc: qcom,sm8150-pas: split into separate file


On Thu, 24 Nov 2022 19:43:26 +0100, Krzysztof Kozlowski wrote:
> Split SM8150 and SM8250 remote processor Peripheral Authentication
> Service bindings into their own file to reduce complexity and make
> maintenance easier.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> ---
>
> Changes since v2:
> 1. Drop if:then: for the clock and put it directly under properties.
> 2. Merge two if:then: clauses for setting interrupts.
>
> Changes since v1:
> 1. Add qcom,qmp (not part of qcom,pas-common.yaml# anymore).
> 2. Add firmware-name to example.
> ---
> .../bindings/remoteproc/qcom,adsp.yaml | 27 ---
> .../bindings/remoteproc/qcom,sm8150-pas.yaml | 166 ++++++++++++++++++
> 2 files changed, 166 insertions(+), 27 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml
>

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

2022-12-05 20:46:46

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v3 05/15] dt-bindings: remoteproc: qcom,adsp: drop resets and qcom,halt-regs


On Thu, 24 Nov 2022 19:43:23 +0100, Krzysztof Kozlowski wrote:
> Some remote processors (e.g. QCS404 CDSP, SC7180 MPSS/MSS) can be brought
> to life using two different bindings:
> 1. PIL (Peripheral Image Loader)
> 2. PAS (Peripheral Authentication Service)
>
> They still describe the same hardware - firmware load for remote
> processor - but use different methods to communicate with that
> processor.
>
> For these SoCs, the qcom,adsp.yaml bindings were describing the PAS
> method, however for easier customization of board DTS, the bindings
> combined additional properties from PIL: reset lines, qcom,halt-regs and
> additional clocks. The devices and Linux kernel drivers, when
> instantiated as PAS, do not use these properties, so drop them from the
> bindings.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> ---
>
> Changes since v2:
> 1. New patch
> ---
> .../bindings/remoteproc/qcom,adsp.yaml | 113 +-----------------
> 1 file changed, 4 insertions(+), 109 deletions(-)
>

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

2022-12-05 20:48:16

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v3 08/15] dt-bindings: remoteproc: qcom,sm8150-pas: split into separate file

On Thu, Nov 24, 2022 at 07:43:26PM +0100, Krzysztof Kozlowski wrote:
> Split SM8150 and SM8250 remote processor Peripheral Authentication
> Service bindings into their own file to reduce complexity and make
> maintenance easier.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> ---
>
> Changes since v2:
> 1. Drop if:then: for the clock and put it directly under properties.
> 2. Merge two if:then: clauses for setting interrupts.
>
> Changes since v1:
> 1. Add qcom,qmp (not part of qcom,pas-common.yaml# anymore).
> 2. Add firmware-name to example.
> ---
> .../bindings/remoteproc/qcom,adsp.yaml | 27 ---
> .../bindings/remoteproc/qcom,sm8150-pas.yaml | 166 ++++++++++++++++++
> 2 files changed, 166 insertions(+), 27 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
> index 67941e79a4a0..e8d66eefd522 100644
> --- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
> @@ -40,13 +40,6 @@ properties:
> - qcom,sm6350-adsp-pas
> - qcom,sm6350-cdsp-pas
> - qcom,sm6350-mpss-pas
> - - qcom,sm8150-adsp-pas
> - - qcom,sm8150-cdsp-pas
> - - qcom,sm8150-mpss-pas
> - - qcom,sm8150-slpi-pas
> - - qcom,sm8250-adsp-pas
> - - qcom,sm8250-cdsp-pas
> - - qcom,sm8250-slpi-pas
>
> reg:
> maxItems: 1
> @@ -94,13 +87,6 @@ allOf:
> - qcom,sm6350-adsp-pas
> - qcom,sm6350-cdsp-pas
> - qcom,sm6350-mpss-pas
> - - qcom,sm8150-adsp-pas
> - - qcom,sm8150-cdsp-pas
> - - qcom,sm8150-mpss-pas
> - - qcom,sm8150-slpi-pas
> - - qcom,sm8250-adsp-pas
> - - qcom,sm8250-cdsp-pas
> - - qcom,sm8250-slpi-pas
> then:
> properties:
> clocks:
> @@ -150,12 +136,6 @@ allOf:
> - qcom,sdm845-cdsp-pas
> - qcom,sm6350-adsp-pas
> - qcom,sm6350-cdsp-pas
> - - qcom,sm8150-adsp-pas
> - - qcom,sm8150-cdsp-pas
> - - qcom,sm8150-slpi-pas
> - - qcom,sm8250-adsp-pas
> - - qcom,sm8250-cdsp-pas
> - - qcom,sm8250-slpi-pas
> then:
> properties:
> interrupts:
> @@ -173,7 +153,6 @@ allOf:
> - qcom,sc8180x-mpss-pas
> - qcom,sdx55-mpss-pas
> - qcom,sm6350-mpss-pas
> - - qcom,sm8150-mpss-pas
> then:
> properties:
> interrupts:
> @@ -199,8 +178,6 @@ allOf:
> - qcom,msm8226-adsp-pil
> - qcom,msm8996-adsp-pil
> - qcom,msm8998-adsp-pas
> - - qcom,sm8150-adsp-pas
> - - qcom,sm8150-cdsp-pas
> then:
> properties:
> power-domains:
> @@ -272,7 +249,6 @@ allOf:
> - qcom,sc7280-mpss-pas
> - qcom,sdx55-mpss-pas
> - qcom,sm6350-mpss-pas
> - - qcom,sm8150-mpss-pas
> then:
> properties:
> power-domains:
> @@ -293,9 +269,6 @@ allOf:
> - qcom,sc8180x-cdsp-pas
> - qcom,sc8280xp-adsp-pas
> - qcom,sm6350-adsp-pas
> - - qcom,sm8150-slpi-pas
> - - qcom,sm8250-adsp-pas
> - - qcom,sm8250-slpi-pas
> then:
> properties:
> power-domains:
> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml
> new file mode 100644
> index 000000000000..b934252cf02b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml
> @@ -0,0 +1,166 @@
> +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/remoteproc/qcom,sm8150-pas.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm SM8150/SM8250 Peripheral Authentication Service
> +
> +maintainers:
> + - Manivannan Sadhasivam <[email protected]>
> +
> +description:
> + Qualcomm SM8150/SM8250 SoC Peripheral Authentication Service loads and boots
> + firmware on the Qualcomm DSP Hexagon cores.
> +
> +properties:
> + compatible:
> + enum:
> + - qcom,sm8150-adsp-pas
> + - qcom,sm8150-cdsp-pas
> + - qcom,sm8150-mpss-pas
> + - qcom,sm8150-slpi-pas
> + - qcom,sm8250-adsp-pas
> + - qcom,sm8250-cdsp-pas
> + - qcom,sm8250-slpi-pas
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + items:
> + - description: XO clock
> +
> + clock-names:
> + items:
> + - const: xo
> +
> + qcom,qmp:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description: Reference to the AOSS side-channel message RAM.

Not ideal that we are defining the type here multiple times.

Otherwise,

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

2022-12-05 20:49:07

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v3 13/15] dt-bindings: remoteproc: qcom,qcs404-pas: split into separate file


On Thu, 24 Nov 2022 19:43:31 +0100, Krzysztof Kozlowski wrote:
> Split QCS404 remote processor Peripheral Authentication Service bindings
> into their own file to reduce complexity and make maintenance easier.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> ---
>
> Changes since v2:
> 1. New patch.
> ---
> .../bindings/remoteproc/qcom,adsp.yaml | 12 ---
> .../bindings/remoteproc/qcom,qcs404-pas.yaml | 86 +++++++++++++++++++
> 2 files changed, 86 insertions(+), 12 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml
>

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

2022-12-05 20:49:20

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v3 12/15] dt-bindings: remoteproc: qcom,sdx55-pas: split into separate file


On Thu, 24 Nov 2022 19:43:30 +0100, Krzysztof Kozlowski wrote:
> Split SDX55 remote processor Peripheral Authentication Service bindings
> into their own file to reduce complexity and make maintenance easier.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> ---
>
> Changes since v1:
> 1. New patch.
> ---
> .../bindings/remoteproc/qcom,adsp.yaml | 4 -
> .../bindings/remoteproc/qcom,sdx55-pas.yaml | 101 ++++++++++++++++++
> 2 files changed, 101 insertions(+), 4 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sdx55-pas.yaml
>

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

2022-12-05 20:50:32

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v3 11/15] dt-bindings: remoteproc: qcom,sc8180x-pas: split into separate file


On Thu, 24 Nov 2022 19:43:29 +0100, Krzysztof Kozlowski wrote:
> Split SC8180x remote processor Peripheral Authentication Service bindings
> into their own file to reduce complexity and make maintenance easier.
>
> The binding is incomplete due to lack of upstreamed DTS - no example and
> not all power domains defined.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> ---
>
> Changes since v2:
> 1. Drop if:then: for the clock and put it directly under properties.
> 2. Merge two if:then: clauses for setting interrupts.
>
> Changes since v1:
> 1. New patch.
> ---
> .../bindings/remoteproc/qcom,adsp.yaml | 27 ------
> .../bindings/remoteproc/qcom,sc8180x-pas.yaml | 87 +++++++++++++++++++
> 2 files changed, 87 insertions(+), 27 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sc8180x-pas.yaml
>

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

2022-12-06 08:23:47

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 08/15] dt-bindings: remoteproc: qcom,sm8150-pas: split into separate file

On 05/12/2022 20:49, Rob Herring wrote:

Hi Rob,

>> + clocks:
>> + items:
>> + - description: XO clock
>> +
>> + clock-names:
>> + items:
>> + - const: xo
>> +
>> + qcom,qmp:
>> + $ref: /schemas/types.yaml#/definitions/phandle
>> + description: Reference to the AOSS side-channel message RAM.
>
> Not ideal that we are defining the type here multiple times.


I was thinking to add it to the common file (qcom,pas-common.yaml,
created in patch 6/15) and just disallow it for other variants,
but that does not work that good:

Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml: properties:qcom,qmp: False is not of type 'object'
hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml: properties:qcom,qmp: More than one condition true in oneOf schema:
{'description': 'Vendor specific properties must have a type and '
'description unless they have a defined, common '
'suffix.',


qcom,qcs404-pas.yaml has "com,qmp: false" and it references
"qcom,pas-common.yaml" which has the definition of the property.
However it seems it is treated as new bool property.


----------------------------
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml
index 007349ef51ed..62126e96d2f5 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml
@@ -39,6 +39,7 @@ properties:

power-domains: false
power-domain-names: false
+ qcom,qmp: false
smd-edge: false

required:



diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
index 1d5e01c8d8bc..72cdcc2b157d 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
@@ -60,6 +60,10 @@ properties:
maxItems: 1
description: Reference to the reserved-memory for the Hexagon core

+ qcom,qmp:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: Reference to the AOSS side-channel message RAM.
+
qcom,smem-states:
$ref: /schemas/types.yaml#/definitions/phandle-array
description: States used by the AP to signal the Hexagon core
----------------------------

Best regards,
Krzysztof

2022-12-27 18:26:13

by Bjorn Andersson

[permalink] [raw]
Subject: Re: (subset) [PATCH v3 00/15] dt-bindings: remoteproc: qcom: split and reorganize PAS/PIL

On Thu, 24 Nov 2022 19:43:18 +0100, Krzysztof Kozlowski wrote:
> Changes since v2
> ================
> 1. Allow only one or two clocks, after dropping clocks related to PIL binding.
> 2. Drop if:then: for the clock and put it directly under properties
> 3. Merge two if:then: clauses for setting interrupts.
> 4. New patches: DTS fixes, qcom,adsp: drop resets and qcom,halt-regs,
> qcom,qcs404-pas, qcom,sc7180-pas and last msm8996-slpi-pil fix.
>
> [...]

Applied, thanks!

[05/15] dt-bindings: remoteproc: qcom,adsp: drop resets and qcom,halt-regs
commit: c97c4b480fcba2e6ebfacb3990d8b9092916d986
[06/15] dt-bindings: remoteproc: qcom,adsp: split common part
commit: ea5a10ae295425c9f52577d91b2e45290291d242
[07/15] dt-bindings: remoteproc: qcom,sm8350-pas: split into separate file
commit: 4e8b39a4d38ebb192ebff977d8a961fd97e7ce5f
[08/15] dt-bindings: remoteproc: qcom,sm8150-pas: split into separate file
commit: db292776589f1fcbcf2fc6eaebe40a3a2abb4521
[09/15] dt-bindings: remoteproc: qcom,sm6350-pas: split into separate file
commit: 41729b772c13105ee126ee6fe1bf2cd93c7bd258
[10/15] dt-bindings: remoteproc: qcom,sc8280xp-pas: split into separate file
commit: 397c619cad8109f5904466ee76d5a1533d2f1590
[11/15] dt-bindings: remoteproc: qcom,sc8180x-pas: split into separate file
commit: 4b4157518f1ab1276cd08dfab0e51b1409c22e40
[12/15] dt-bindings: remoteproc: qcom,sdx55-pas: split into separate file
commit: b6f8410eab9270000b8b13b88bc038e9f27c2c45
[13/15] dt-bindings: remoteproc: qcom,qcs404-pas: split into separate file
commit: 255d7a9581ed4506dddf993aad9dc27bff8296d1
[14/15] dt-bindings: remoteproc: qcom,sc7180-pas: split into separate file
commit: 8bb92d6fd0b3788b4270eff547cb42cb64db1bff
[15/15] dt-bindings: remoteproc: qcom,adsp: correct msm8996-slpi-pil clocks
commit: 569d3a7580bcbc463920b0d84ca5caf23e808f90

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