2022-09-23 16:41:03

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH 00/11] arm64/slimbus/dt-bindings: convert to DT Schema, minor cleanups

Hi,

Shall slimbus.yaml go to dtschema repo?

Dependencies
============
1. Binding patches are independent from DTS.

Best regards,
Krzysztof

Krzysztof Kozlowski (11):
arm64: dts: qcom: sdm845: drop unused slimbus properties
arm64: dts: qcom: msm8996: drop unused slimbus reg-mames
arm64: dts: qcom: sdm845: correct slimbus children unit addresses
arm64: dts: qcom: mms8996: correct slimbus children unit addresses
arm64: dts: qcom: sdm845: drop unused slimbus dmas
arm64: dts: qcom: msm8996: drop unused slimbus dmas
arm64: dts: qcom: sdm8458: align node names with DT schema
arm64: dts: qcom: msm8996: align node names with DT schema
dt-bindings: slimbus: convert bus description to DT schema
dt-bindings: slimbus: qcom,slim: convert to DT schema
dt-bindings: slimbus: qcom,slim-ngd: convert to DT schema

.../devicetree/bindings/slimbus/bus.txt | 60 ---------
.../bindings/slimbus/qcom,slim-ngd.yaml | 120 ++++++++++++++++++
.../bindings/slimbus/qcom,slim.yaml | 86 +++++++++++++
.../bindings/slimbus/slim-ngd-qcom-ctrl.txt | 84 ------------
.../bindings/slimbus/slim-qcom-ctrl.txt | 39 ------
.../devicetree/bindings/slimbus/slimbus.yaml | 95 ++++++++++++++
arch/arm64/boot/dts/qcom/msm8996.dtsi | 18 ++-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 16 +--
8 files changed, 315 insertions(+), 203 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/slimbus/bus.txt
create mode 100644 Documentation/devicetree/bindings/slimbus/qcom,slim-ngd.yaml
create mode 100644 Documentation/devicetree/bindings/slimbus/qcom,slim.yaml
delete mode 100644 Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt
delete mode 100644 Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt
create mode 100644 Documentation/devicetree/bindings/slimbus/slimbus.yaml

--
2.34.1


2022-09-23 16:52:14

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH 02/11] arm64: dts: qcom: msm8996: drop unused slimbus reg-mames

Drop undocumented reg-names from slimbus node - there is only one
address range and Linux implementation does not use it.

Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8996.dtsi | 1 -
1 file changed, 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index ae31393081dd..903c443a867f 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -3312,7 +3312,6 @@ slimbam: dma-controller@9184000 {
slim_msm: slim@91c0000 {
compatible = "qcom,slim-ngd-v1.5.0";
reg = <0x091c0000 0x2C000>;
- reg-names = "ctrl";
interrupts = <0 163 IRQ_TYPE_LEVEL_HIGH>;
dmas = <&slimbam 3>, <&slimbam 4>,
<&slimbam 5>, <&slimbam 6>;
--
2.34.1

2022-09-23 16:55:51

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH 03/11] arm64: dts: qcom: sdm845: correct slimbus children unit addresses

slimbus uses address-cells=2, so correct children unit addresses.

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

diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index 9db1fce6b198..2264bba69f84 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -3841,12 +3841,12 @@ ngd@1 {
#address-cells = <2>;
#size-cells = <0>;

- wcd9340_ifd: ifd@0{
+ wcd9340_ifd: ifd@0,0 {
compatible = "slim217,250";
reg = <0 0>;
};

- wcd9340: codec@1{
+ wcd9340: codec@1,0 {
compatible = "slim217,250";
reg = <1 0>;
slim-ifc-dev = <&wcd9340_ifd>;
--
2.34.1

2022-09-23 16:57:32

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH 09/11] dt-bindings: slimbus: convert bus description to DT schema

Convert the SLIMbus bus description bindings to DT Schema.

Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
.../devicetree/bindings/slimbus/bus.txt | 60 ------------
.../bindings/slimbus/slim-ngd-qcom-ctrl.txt | 2 -
.../bindings/slimbus/slim-qcom-ctrl.txt | 3 -
.../devicetree/bindings/slimbus/slimbus.yaml | 95 +++++++++++++++++++
4 files changed, 95 insertions(+), 65 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/slimbus/bus.txt
create mode 100644 Documentation/devicetree/bindings/slimbus/slimbus.yaml

diff --git a/Documentation/devicetree/bindings/slimbus/bus.txt b/Documentation/devicetree/bindings/slimbus/bus.txt
deleted file mode 100644
index bbe871f82a8b..000000000000
--- a/Documentation/devicetree/bindings/slimbus/bus.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-SLIM(Serial Low Power Interchip Media Bus) bus
-
-SLIMbus is a 2-wire bus, and is used to communicate with peripheral
-components like audio-codec.
-
-Required property for SLIMbus controller node:
-- compatible - name of SLIMbus controller
-
-Child nodes:
-Every SLIMbus controller node can contain zero or more child nodes
-representing slave devices on the bus. Every SLIMbus slave device is
-uniquely determined by the enumeration address containing 4 fields:
-Manufacturer ID, Product code, Device index, and Instance value for
-the device.
-If child node is not present and it is instantiated after device
-discovery (slave device reporting itself present).
-
-In some cases it may be necessary to describe non-probeable device
-details such as non-standard ways of powering up a device. In
-such cases, child nodes for those devices will be present as
-slaves of the SLIMbus controller, as detailed below.
-
-Required property for SLIMbus child node if it is present:
-- reg - Should be ('Device index', 'Instance ID') from SLIMbus
- Enumeration Address.
- Device Index Uniquely identifies multiple Devices within
- a single Component.
- Instance ID Is for the cases where multiple Devices of the
- same type or Class are attached to the bus.
-
-- compatible -"slimMID,PID". The textual representation of Manufacturer ID,
- Product Code, shall be in lower case hexadecimal with leading
- zeroes suppressed
-
-Optional property for SLIMbus child node if it is present:
-- slim-ifc-dev - Should be phandle to SLIMBus Interface device.
- Required for devices which deal with streams.
-
-SLIMbus example for Qualcomm's slimbus manager component:
-
- slim@28080000 {
- compatible = "qcom,apq8064-slim", "qcom,slim";
- reg = <0x28080000 0x2000>,
- interrupts = <0 33 0>;
- clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
- clock-names = "iface", "core";
- #address-cells = <2>;
- #size-cell = <0>;
-
- codec_ifd: ifd@0,0{
- compatible = "slim217,60";
- reg = <0 0>;
- };
-
- codec: wcd9310@1,0{
- compatible = "slim217,60";
- reg = <1 0>;
- slim-ifc-dev = <&codec_ifd>;
- };
- };
diff --git a/Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt b/Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt
index e94a2ad3a710..7c3d9eb6af5d 100644
--- a/Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt
+++ b/Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt
@@ -5,8 +5,6 @@ with SLIMBus slaves directly over the bus using messaging interface and
communicating with master component residing on ADSP for bandwidth and
data-channel management

-Please refer to slimbus/bus.txt for details of the common SLIMBus bindings.
-
- compatible:
Usage: required
Value type: <stringlist>
diff --git a/Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt b/Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt
index 922dcb8ff24a..6d955e129f90 100644
--- a/Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt
+++ b/Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt
@@ -4,9 +4,6 @@ master component.

Required properties:

- - #address-cells - refer to Documentation/devicetree/bindings/slimbus/bus.txt
- - #size-cells - refer to Documentation/devicetree/bindings/slimbus/bus.txt
-
- reg : Offset and length of the register region(s) for the device
- reg-names : Register region name(s) referenced in reg above
Required register resource entries are:
diff --git a/Documentation/devicetree/bindings/slimbus/slimbus.yaml b/Documentation/devicetree/bindings/slimbus/slimbus.yaml
new file mode 100644
index 000000000000..22513fb7c59a
--- /dev/null
+++ b/Documentation/devicetree/bindings/slimbus/slimbus.yaml
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/slimbus/slimbus.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: SLIM (Serial Low Power Interchip Media) bus
+
+maintainers:
+ - Srinivas Kandagatla <[email protected]>
+
+description:
+ SLIMbus is a 2-wire bus, and is used to communicate with peripheral
+ components like audio-codec.
+
+properties:
+ $nodename:
+ pattern: "^slim(@.*|-[0-9a-f])*$"
+
+ "#address-cells":
+ const: 2
+
+ "#size-cells":
+ const: 0
+
+patternProperties:
+ "^.*@[0-9a-f]+,[0-9a-f]+$":
+ type: object
+ description: |
+ Every SLIMbus controller node can contain zero or more child nodes
+ representing slave devices on the bus. Every SLIMbus slave device is
+ uniquely determined by the enumeration address containing 4 fields::
+ Manufacturer ID, Product code, Device index, and Instance value for the
+ device.
+
+ If child node is not present and it is instantiated after device
+ discovery (slave device reporting itself present).
+
+ In some cases it may be necessary to describe non-probeable device
+ details such as non-standard ways of powering up a device. In such cases,
+ child nodes for those devices will be present as slaves of the SLIMbus
+ controller.
+
+ properties:
+ compatible:
+ pattern: "^slim[0-9a-f]+,[0-9a-f]+$"
+
+ reg:
+ maxItems: 1
+ description: |
+ Pair of (device index, instande ID), where::
+ - Device index, which uniquely identifies multiple devices within a
+ single component.
+ - Instance ID, can be used for the cases where multiple devices of
+ the same type or class are attached to the bus.
+
+ required:
+ - compatible
+ - reg
+
+ additionalProperties: true
+
+required:
+ - "#address-cells"
+ - "#size-cells"
+
+additionalProperties: true
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,gcc-msm8960.h>
+ #include <dt-bindings/clock/qcom,lcc-msm8960.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ soc {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ slim@28080000 {
+ compatible = "qcom,apq8064-slim", "qcom,slim";
+ reg = <0x28080000 0x2000>, <0x80207c 4>;
+ reg-names = "ctrl", "slew";
+ interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
+ clock-names = "iface", "core";
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ audio-codec@1,0 {
+ compatible = "slim217,60";
+ reg = <1 0>;
+ };
+ };
+ };
--
2.34.1

2022-09-23 16:57:43

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH 10/11] dt-bindings: slimbus: qcom,slim: convert to DT schema

Convert the Qualcomm SoC SLIMbus controller bindings to DT Schema.

Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
.../bindings/slimbus/qcom,slim.yaml | 86 +++++++++++++++++++
.../bindings/slimbus/slim-qcom-ctrl.txt | 36 --------
2 files changed, 86 insertions(+), 36 deletions(-)
create mode 100644 Documentation/devicetree/bindings/slimbus/qcom,slim.yaml
delete mode 100644 Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt

diff --git a/Documentation/devicetree/bindings/slimbus/qcom,slim.yaml b/Documentation/devicetree/bindings/slimbus/qcom,slim.yaml
new file mode 100644
index 000000000000..883bda58ca97
--- /dev/null
+++ b/Documentation/devicetree/bindings/slimbus/qcom,slim.yaml
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/slimbus/qcom,slim.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SoC SLIMbus controller
+
+maintainers:
+ - Krzysztof Kozlowski <[email protected]>
+ - Srinivas Kandagatla <[email protected]>
+
+description:
+ SLIMbus controller used when applications processor controls SLIMbus master
+ component.
+
+allOf:
+ - $ref: slimbus.yaml#
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - qcom,apq8064-slim
+ - const: qcom,slim
+
+ reg:
+ items:
+ - description: Physical address of controller register blocks
+ - description: SLEW RATE register
+
+ reg-names:
+ items:
+ - const: ctrl
+ - const: slew
+
+ clocks:
+ items:
+ - description: Interface clock for this controller
+ - description: Interrupt for controller core's BAM
+
+ clock-names:
+ items:
+ - const: iface
+ - const: core
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - clocks
+ - clock-names
+ - interrupts
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,gcc-msm8960.h>
+ #include <dt-bindings/clock/qcom,lcc-msm8960.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ soc {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ slim@28080000 {
+ compatible = "qcom,apq8064-slim", "qcom,slim";
+ reg = <0x28080000 0x2000>, <0x80207c 4>;
+ reg-names = "ctrl", "slew";
+ interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
+ clock-names = "iface", "core";
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ audio-codec@1,0 {
+ compatible = "slim217,60";
+ reg = <1 0>;
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt b/Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt
deleted file mode 100644
index 6d955e129f90..000000000000
--- a/Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-Qualcomm SLIMbus controller
-This controller is used if applications processor driver controls SLIMbus
-master component.
-
-Required properties:
-
- - reg : Offset and length of the register region(s) for the device
- - reg-names : Register region name(s) referenced in reg above
- Required register resource entries are:
- "ctrl": Physical address of controller register blocks
- "slew": required for "qcom,apq8064-slim" SOC.
- - compatible : should be "qcom,<SOC-NAME>-slim" for SOC specific compatible
- followed by "qcom,slim" for fallback.
- - interrupts : Interrupt number used by this controller
- - clocks : Interface and core clocks used by this SLIMbus controller
- - clock-names : Required clock-name entries are:
- "iface" : Interface clock for this controller
- "core" : Interrupt for controller core's BAM
-
-Example:
-
- slim@28080000 {
- compatible = "qcom,apq8064-slim", "qcom,slim";
- reg = <0x28080000 0x2000>, <0x80207C 4>;
- reg-names = "ctrl", "slew";
- interrupts = <0 33 0>;
- clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
- clock-names = "iface", "core";
- #address-cells = <2>;
- #size-cell = <0>;
-
- wcd9310: audio-codec@1,0{
- compatible = "slim217,60";
- reg = <1 0>;
- };
- };
--
2.34.1

2022-09-25 19:28:53

by Steev Klimaszewski

[permalink] [raw]
Subject: Re: [PATCH 03/11] arm64: dts: qcom: sdm845: correct slimbus children unit addresses


On 9/23/22 11:14 AM, Krzysztof Kozlowski wrote:
> slimbus uses address-cells=2, so correct children unit addresses.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> ---
> arch/arm64/boot/dts/qcom/sdm845.dtsi | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> index 9db1fce6b198..2264bba69f84 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> @@ -3841,12 +3841,12 @@ ngd@1 {
> #address-cells = <2>;
> #size-cells = <0>;
>
> - wcd9340_ifd: ifd@0{
> + wcd9340_ifd: ifd@0,0 {
> compatible = "slim217,250";
> reg = <0 0>;
> };
>
> - wcd9340: codec@1{
> + wcd9340: codec@1,0 {
> compatible = "slim217,250";
> reg = <1 0>;
> slim-ifc-dev = <&wcd9340_ifd>;

Tested on Lenovo Yoga C630

Tested-by: Steev Klimaszewski <[email protected]>

2022-09-26 23:16:10

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 09/11] dt-bindings: slimbus: convert bus description to DT schema

On Fri, 23 Sep 2022 18:14:51 +0200, Krzysztof Kozlowski wrote:
> Convert the SLIMbus bus description bindings to DT Schema.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> ---
> .../devicetree/bindings/slimbus/bus.txt | 60 ------------
> .../bindings/slimbus/slim-ngd-qcom-ctrl.txt | 2 -
> .../bindings/slimbus/slim-qcom-ctrl.txt | 3 -
> .../devicetree/bindings/slimbus/slimbus.yaml | 95 +++++++++++++++++++
> 4 files changed, 95 insertions(+), 65 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/slimbus/bus.txt
> create mode 100644 Documentation/devicetree/bindings/slimbus/slimbus.yaml
>

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

2022-09-26 23:51:49

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 10/11] dt-bindings: slimbus: qcom,slim: convert to DT schema

On Fri, 23 Sep 2022 18:14:52 +0200, Krzysztof Kozlowski wrote:
> Convert the Qualcomm SoC SLIMbus controller bindings to DT Schema.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> ---
> .../bindings/slimbus/qcom,slim.yaml | 86 +++++++++++++++++++
> .../bindings/slimbus/slim-qcom-ctrl.txt | 36 --------
> 2 files changed, 86 insertions(+), 36 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/slimbus/qcom,slim.yaml
> delete mode 100644 Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt
>

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