[v2] dt-bindings: soundwire: Convert text file to yaml format
Commit Message
Update soundwire bindings with yaml formats.
Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Co-developed-by: Ratna Deepthi Kudaravalli <quic_rkudarav@quicinc.com>
Signed-off-by: Ratna Deepthi Kudaravalli <quic_rkudarav@quicinc.com>
---
This patch depends on:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=42801e6185290d63691bd39cf8a3bba6cd5fe520
Changes since V1:
-- Remove the status field in example.
-- Remove interrupt-names property in the required list.
-- Add the wakeup-source property.
.../devicetree/bindings/soundwire/qcom,sdw.txt | 214 ---------------------
.../devicetree/bindings/soundwire/qcom,sdw.yaml | 186 ++++++++++++++++++
2 files changed, 186 insertions(+), 214 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
create mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
Comments
On 18/10/2022 07:24, Srinivasa Rao Mandadapu wrote:
> Update soundwire bindings with yaml formats.
The commit title and body are not really accurate. YAML is just format,
you convert the bindings to DT schema.
>
> Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
> Co-developed-by: Ratna Deepthi Kudaravalli <quic_rkudarav@quicinc.com>
> Signed-off-by: Ratna Deepthi Kudaravalli <quic_rkudarav@quicinc.com>
Please use scripts/get_maintainers.pl to get a list of necessary people
and lists to CC. It might happen, that command when run on an older
kernel, gives you outdated entries. Therefore please be sure you base
your patches on recent Linux kernel.
> ---
>
> This patch depends on:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=42801e6185290d63691bd39cf8a3bba6cd5fe520
>
> Changes since V1:
> -- Remove the status field in example.
> -- Remove interrupt-names property in the required list.
> -- Add the wakeup-source property.
>
> .../devicetree/bindings/soundwire/qcom,sdw.txt | 214 ---------------------
> .../devicetree/bindings/soundwire/qcom,sdw.yaml | 186 ++++++++++++++++++
> 2 files changed, 186 insertions(+), 214 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
> create mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
>
> diff --git a/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt b/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
> deleted file mode 100644
> index c85c257..0000000
> --- a/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
> +++ /dev/null
> @@ -1,214 +0,0 @@
> -Qualcomm SoundWire Controller Bindings
> -
> -
> -This binding describes the Qualcomm SoundWire Controller along with its
> -board specific bus parameters.
> -
> -- compatible:
> - Usage: required
> - Value type: <stringlist>
> - Definition: must be "qcom,soundwire-v<MAJOR>.<MINOR>.<STEP>",
> - Example:
> - "qcom,soundwire-v1.3.0"
> - "qcom,soundwire-v1.5.0"
> - "qcom,soundwire-v1.5.1"
> - "qcom,soundwire-v1.6.0"
> -- reg:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: the base address and size of SoundWire controller
> - address space.
> -
> -- interrupts:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: should specify the SoundWire Controller core and optional
> - wake IRQ
> -
> -- interrupt-names:
> - Usage: Optional
> - Value type: boolean
> - Value type: <stringlist>
> - Definition: should be "core" for core and "wakeup" for wake interrupt.
> -
> -- wakeup-source:
> - Usage: Optional
> - Value type: boolean
> - Definition: should specify if SoundWire Controller is wake up capable.
> -
> -- clock-names:
> - Usage: required
> - Value type: <stringlist>
> - Definition: should be "iface" for SoundWire Controller interface clock
> -
> -- clocks:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: should specify the SoundWire Controller interface clock
> -
> -- #sound-dai-cells:
> - Usage: required
> - Value type: <u32>
> - Definition: must be 1 for digital audio interfaces on the controller.
> -
> -- qcom,dout-ports:
> - Usage: required
> - Value type: <u32>
> - Definition: must be count of data out ports
> -
> -- qcom,din-ports:
> - Usage: required
> - Value type: <u32>
> - Definition: must be count of data in ports
> -
> -- qcom,ports-offset1:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: should specify payload transport window offset1 of each
> - data port. Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-offset2:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: should specify payload transport window offset2 of each
> - data port. Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-sinterval-low:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: should be sample interval low of each data port.
> - Out ports followed by In ports. Used for Sample Interval
> - calculation.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-word-length:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be size of payload channel sample.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-block-pack-mode:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be 0 or 1 to indicate the block packing mode.
> - 0 to indicate Blocks are per Channel
> - 1 to indicate Blocks are per Port.
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-block-group-count:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be in range 1 to 4 to indicate how many sample
> - intervals are combined into a payload.
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-lane-control:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be in range 0 to 7 to identify which data lane
> - the data port uses.
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-hstart:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be number identifying lowerst numbered coloum in
> - SoundWire Frame, i.e. left edge of the Transport sub-frame
> - for each port. Values between 0 and 15 are valid.
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-hstop:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be number identifying highest numbered coloum in
> - SoundWire Frame, i.e. the right edge of the Transport
> - sub-frame for each port. Values between 0 and 15 are valid.
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,dports-type:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be one of the following types
> - 0 for reduced port
> - 1 for simple ports
> - 2 for full port
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- reset:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: Should specify the SoundWire audio CSR reset controller interface,
> - which is required for SoundWire version 1.6.0 and above.
> -
> -- reset-names:
> - Usage: optional
> - Value type: <stringlist>
> - Definition: should be "swr_audio_cgcr" for SoundWire audio CSR reset
> - controller interface.
> -
> -Note:
> - More Information on detail of encoding of these fields can be
> -found in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -= SoundWire devices
> -Each subnode of the bus represents SoundWire device attached to it.
> -The properties of these nodes are defined by the individual bindings.
> -
> -= EXAMPLE
> -The following example represents a SoundWire controller on DB845c board
> -which has controller integrated inside WCD934x codec on SDM845 SoC.
> -
> -soundwire: soundwire@c85 {
> - compatible = "qcom,soundwire-v1.3.0";
> - reg = <0xc85 0x20>;
> - interrupts = <20 IRQ_TYPE_EDGE_RISING>;
> - clocks = <&wcc>;
> - clock-names = "iface";
> - resets = <&lpass_audiocc LPASS_AUDIO_SWR_TX_CGCR>;
> - reset-names = "swr_audio_cgcr";
> - #sound-dai-cells = <1>;
> - qcom,dports-type = <0>;
> - qcom,dout-ports = <6>;
> - qcom,din-ports = <2>;
> - qcom,ports-sinterval-low = /bits/ 8 <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>;
> - qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >;
> - qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>;
> -
> - /* Left Speaker */
> - left{
> - ....
> - };
> -
> - /* Right Speaker */
> - right{
> - ....
> - };
> -};
> diff --git a/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml b/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
> new file mode 100644
> index 0000000..65bff91
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
Filename based on compatible, so "qcom,soundwire.yaml"
> @@ -0,0 +1,186 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/soundwire/qcom,sdw.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm SoundWire Controller
> +
> +maintainers:
> + - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> + - Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
> +
> +description:
> + This binding describes the Qualcomm SoundWire controller along with its
> + board specific bus parameters.
Drop "This binding describes"
> +
> +properties:
> + compatible:
> + enum:
> + - qcom,soundwire-v1.3.0
> + - qcom,soundwire-v1.5.0
> + - qcom,soundwire-v1.5.1
> + - qcom,soundwire-v1.6.0
> +
> + reg:
> + items:
> + - description: the base address and size of SoundWire controller
> + address space.
Just maxItems: 1
> +
> + interrupts:
> + items:
> + - description: specify the SoundWire controller core and optional
> + wake IRQ.
If there is optional IRQ then this is not correct. You need here two items.
The original bindings could be here not precise or not correct, so fix
them while converting and document the changes in commit msg.
> +
> + interrupt-names:
> + items:
> + - const: wakeup
Where is the core?
> +
> + clocks:
> + items:
> + - description: iface clock
> +
> + clock-names:
> + items:
> + - const: iface
> +
> + resets:
> + items:
> + - description: SWR_AUDIO_CGCR RESET
> +
> + reset-names:
> + items:
> + - const: swr_audio_cgcr
> +
> + '#sound-dai-cells':
> + const: 1
> +
> + '#address-cells':
> + const: 2
> +
> + '#size-cells':
> + const: 0
Why? Old binding did not have them, I think. You do not have any children...
> +
> + wakeup-source:
> + description: specify the Soundwire Controller is wakeup Capable.
> + type: boolean
Just:
wakeup-source: true
> +
> + qcom,din-ports:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: count of data in ports
> +
> + qcom,dout-ports:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: count of data out ports
> +
> + qcom,ports-word-length:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: size of payload channel sample.
> + minItems: 5
Drop minItems
> + maxItems: 5
> +
> + qcom,ports-sinterval-low:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: sample interval low of each data port.
> + minItems: 5
here and in other places as well
> + maxItems: 5
> +
> + qcom,ports-offset1:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: payload transport window offset1 of each data port.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-offset2:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: payload transport window offset2 of each data port.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-lane-control:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: identify which data lane the data port uses.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-block-pack-mode:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: indicate the block packing mode.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-hstart:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: identifying lowerst numbered coloum in SoundWire frame.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-hstop:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: identifying highest numbered coloum in SoundWire frame.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-block-group-count:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: indicate how many sample intervals are combined into a payload.
> + minItems: 5
> + maxItems: 5
> +
> +required:
> + - reg
> + - interrupts
> + - clocks
> + - clock-names
> + - resets
> + - reset-names
> + - '#sound-dai-cells'
> + - '#address-cells'
> + - '#size-cells'
> + - qcom,dout-ports
> + - qcom,din-ports
> + - qcom,ports-word-length
> + - qcom,ports-sinterval-low
> + - qcom,ports-offset1
> + - qcom,ports-offset2
> + - qcom,ports-lane-control
> + - qcom,ports-block-pack-mode
> + - qcom,ports-hstart
> + - qcom,ports-block-group-count
These properties were optional. You need to explain any differences
against pure-conversion.
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
> +
> + soundwire@3210000 {
> + compatible = "qcom,soundwire-v1.6.0";
> + reg = <0x03210000 0x2000>;
> +
> + interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&lpass_rx_macro>;
> + clock-names = "iface";
> +
> + qcom,din-ports = <0>;
> + qcom,dout-ports = <5>;
> +
> + resets = <&lpass_audiocc LPASS_AUDIO_SWR_RX_CGCR>;
> + reset-names = "swr_audio_cgcr";
> +
> + qcom,ports-word-length = /bits/ 8 <0x01 0x07 0x04 0xff 0xff>;
> + qcom,ports-sinterval-low = /bits/ 8 <0x03 0x3f 0x1f 0x03 0x03>;
> + qcom,ports-offset1 = /bits/ 8 <0x00 0x00 0x0b 0x01 0x01>;
> + qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x0b 0x00 0x00>;
> + qcom,ports-lane-control = /bits/ 8 <0x01 0x00 0x00 0x00 0x00>;
> + qcom,ports-block-pack-mode = /bits/ 8 <0xff 0x00 0x01 0xff 0xff>;
> + qcom,ports-hstart = /bits/ 8 <0xff 0x03 0xff 0xff 0xff>;
> + qcom,ports-hstop = /bits/ 8 <0xff 0x06 0xff 0xff 0xff>;
> + qcom,ports-block-group-count = /bits/ 8 <0xff 0xff 0xff 0xff 0x00>;
> +
> + #sound-dai-cells = <1>;
> + #address-cells = <2>;
> + #size-cells = <0>;
Where are the children?
> + };
Best regards,
Krzysztof
On 18-10-22, 16:54, Srinivasa Rao Mandadapu wrote:
> Update soundwire bindings with yaml formats.
>
> Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
> Co-developed-by: Ratna Deepthi Kudaravalli <quic_rkudarav@quicinc.com>
> Signed-off-by: Ratna Deepthi Kudaravalli <quic_rkudarav@quicinc.com>
> ---
>
> This patch depends on:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=42801e6185290d63691bd39cf8a3bba6cd5fe520
why is this dependency for yaml conversion?
>
> Changes since V1:
> -- Remove the status field in example.
> -- Remove interrupt-names property in the required list.
> -- Add the wakeup-source property.
>
> .../devicetree/bindings/soundwire/qcom,sdw.txt | 214 ---------------------
> .../devicetree/bindings/soundwire/qcom,sdw.yaml | 186 ++++++++++++++++++
> 2 files changed, 186 insertions(+), 214 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
> create mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
>
> diff --git a/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt b/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
> deleted file mode 100644
> index c85c257..0000000
> --- a/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
> +++ /dev/null
> @@ -1,214 +0,0 @@
> -Qualcomm SoundWire Controller Bindings
> -
> -
> -This binding describes the Qualcomm SoundWire Controller along with its
> -board specific bus parameters.
> -
> -- compatible:
> - Usage: required
> - Value type: <stringlist>
> - Definition: must be "qcom,soundwire-v<MAJOR>.<MINOR>.<STEP>",
> - Example:
> - "qcom,soundwire-v1.3.0"
> - "qcom,soundwire-v1.5.0"
> - "qcom,soundwire-v1.5.1"
> - "qcom,soundwire-v1.6.0"
> -- reg:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: the base address and size of SoundWire controller
> - address space.
> -
> -- interrupts:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: should specify the SoundWire Controller core and optional
> - wake IRQ
> -
> -- interrupt-names:
> - Usage: Optional
> - Value type: boolean
> - Value type: <stringlist>
> - Definition: should be "core" for core and "wakeup" for wake interrupt.
> -
> -- wakeup-source:
> - Usage: Optional
> - Value type: boolean
> - Definition: should specify if SoundWire Controller is wake up capable.
> -
> -- clock-names:
> - Usage: required
> - Value type: <stringlist>
> - Definition: should be "iface" for SoundWire Controller interface clock
> -
> -- clocks:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: should specify the SoundWire Controller interface clock
> -
> -- #sound-dai-cells:
> - Usage: required
> - Value type: <u32>
> - Definition: must be 1 for digital audio interfaces on the controller.
> -
> -- qcom,dout-ports:
> - Usage: required
> - Value type: <u32>
> - Definition: must be count of data out ports
> -
> -- qcom,din-ports:
> - Usage: required
> - Value type: <u32>
> - Definition: must be count of data in ports
> -
> -- qcom,ports-offset1:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: should specify payload transport window offset1 of each
> - data port. Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-offset2:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: should specify payload transport window offset2 of each
> - data port. Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-sinterval-low:
> - Usage: required
> - Value type: <prop-encoded-array>
> - Definition: should be sample interval low of each data port.
> - Out ports followed by In ports. Used for Sample Interval
> - calculation.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-word-length:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be size of payload channel sample.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-block-pack-mode:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be 0 or 1 to indicate the block packing mode.
> - 0 to indicate Blocks are per Channel
> - 1 to indicate Blocks are per Port.
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-block-group-count:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be in range 1 to 4 to indicate how many sample
> - intervals are combined into a payload.
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-lane-control:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be in range 0 to 7 to identify which data lane
> - the data port uses.
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-hstart:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be number identifying lowerst numbered coloum in
> - SoundWire Frame, i.e. left edge of the Transport sub-frame
> - for each port. Values between 0 and 15 are valid.
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,ports-hstop:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be number identifying highest numbered coloum in
> - SoundWire Frame, i.e. the right edge of the Transport
> - sub-frame for each port. Values between 0 and 15 are valid.
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- qcom,dports-type:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: should be one of the following types
> - 0 for reduced port
> - 1 for simple ports
> - 2 for full port
> - Out ports followed by In ports.
> - Value of 0xFF indicates that this option is not implemented
> - or applicable for the respective data port.
> - More info in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -- reset:
> - Usage: optional
> - Value type: <prop-encoded-array>
> - Definition: Should specify the SoundWire audio CSR reset controller interface,
> - which is required for SoundWire version 1.6.0 and above.
> -
> -- reset-names:
> - Usage: optional
> - Value type: <stringlist>
> - Definition: should be "swr_audio_cgcr" for SoundWire audio CSR reset
> - controller interface.
> -
> -Note:
> - More Information on detail of encoding of these fields can be
> -found in MIPI Alliance SoundWire 1.0 Specifications.
> -
> -= SoundWire devices
> -Each subnode of the bus represents SoundWire device attached to it.
> -The properties of these nodes are defined by the individual bindings.
> -
> -= EXAMPLE
> -The following example represents a SoundWire controller on DB845c board
> -which has controller integrated inside WCD934x codec on SDM845 SoC.
> -
> -soundwire: soundwire@c85 {
> - compatible = "qcom,soundwire-v1.3.0";
> - reg = <0xc85 0x20>;
> - interrupts = <20 IRQ_TYPE_EDGE_RISING>;
> - clocks = <&wcc>;
> - clock-names = "iface";
> - resets = <&lpass_audiocc LPASS_AUDIO_SWR_TX_CGCR>;
> - reset-names = "swr_audio_cgcr";
> - #sound-dai-cells = <1>;
> - qcom,dports-type = <0>;
> - qcom,dout-ports = <6>;
> - qcom,din-ports = <2>;
> - qcom,ports-sinterval-low = /bits/ 8 <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>;
> - qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >;
> - qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>;
> -
> - /* Left Speaker */
> - left{
> - ....
> - };
> -
> - /* Right Speaker */
> - right{
> - ....
> - };
> -};
> diff --git a/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml b/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
> new file mode 100644
> index 0000000..65bff91
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
> @@ -0,0 +1,186 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/soundwire/qcom,sdw.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm SoundWire Controller
> +
> +maintainers:
> + - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> + - Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
> +
> +description:
> + This binding describes the Qualcomm SoundWire controller along with its
> + board specific bus parameters.
> +
> +properties:
> + compatible:
> + enum:
> + - qcom,soundwire-v1.3.0
> + - qcom,soundwire-v1.5.0
> + - qcom,soundwire-v1.5.1
> + - qcom,soundwire-v1.6.0
> +
> + reg:
> + items:
> + - description: the base address and size of SoundWire controller
> + address space.
> +
> + interrupts:
> + items:
> + - description: specify the SoundWire controller core and optional
> + wake IRQ.
> +
> + interrupt-names:
> + items:
> + - const: wakeup
> +
> + clocks:
> + items:
> + - description: iface clock
> +
> + clock-names:
> + items:
> + - const: iface
> +
> + resets:
> + items:
> + - description: SWR_AUDIO_CGCR RESET
> +
> + reset-names:
> + items:
> + - const: swr_audio_cgcr
> +
> + '#sound-dai-cells':
> + const: 1
> +
> + '#address-cells':
> + const: 2
> +
> + '#size-cells':
> + const: 0
> +
> + wakeup-source:
> + description: specify the Soundwire Controller is wakeup Capable.
> + type: boolean
> +
> + qcom,din-ports:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: count of data in ports
> +
> + qcom,dout-ports:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: count of data out ports
> +
> + qcom,ports-word-length:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: size of payload channel sample.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-sinterval-low:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: sample interval low of each data port.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-offset1:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: payload transport window offset1 of each data port.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-offset2:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: payload transport window offset2 of each data port.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-lane-control:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: identify which data lane the data port uses.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-block-pack-mode:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: indicate the block packing mode.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-hstart:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: identifying lowerst numbered coloum in SoundWire frame.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-hstop:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: identifying highest numbered coloum in SoundWire frame.
> + minItems: 5
> + maxItems: 5
> +
> + qcom,ports-block-group-count:
> + $ref: /schemas/types.yaml#/definitions/uint8-array
> + description: indicate how many sample intervals are combined into a payload.
> + minItems: 5
> + maxItems: 5
> +
> +required:
> + - reg
> + - interrupts
> + - clocks
> + - clock-names
> + - resets
> + - reset-names
> + - '#sound-dai-cells'
> + - '#address-cells'
> + - '#size-cells'
> + - qcom,dout-ports
> + - qcom,din-ports
> + - qcom,ports-word-length
> + - qcom,ports-sinterval-low
> + - qcom,ports-offset1
> + - qcom,ports-offset2
> + - qcom,ports-lane-control
> + - qcom,ports-block-pack-mode
> + - qcom,ports-hstart
> + - qcom,ports-block-group-count
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
> +
> + soundwire@3210000 {
> + compatible = "qcom,soundwire-v1.6.0";
> + reg = <0x03210000 0x2000>;
> +
> + interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&lpass_rx_macro>;
> + clock-names = "iface";
> +
> + qcom,din-ports = <0>;
> + qcom,dout-ports = <5>;
> +
> + resets = <&lpass_audiocc LPASS_AUDIO_SWR_RX_CGCR>;
> + reset-names = "swr_audio_cgcr";
> +
> + qcom,ports-word-length = /bits/ 8 <0x01 0x07 0x04 0xff 0xff>;
> + qcom,ports-sinterval-low = /bits/ 8 <0x03 0x3f 0x1f 0x03 0x03>;
> + qcom,ports-offset1 = /bits/ 8 <0x00 0x00 0x0b 0x01 0x01>;
> + qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x0b 0x00 0x00>;
> + qcom,ports-lane-control = /bits/ 8 <0x01 0x00 0x00 0x00 0x00>;
> + qcom,ports-block-pack-mode = /bits/ 8 <0xff 0x00 0x01 0xff 0xff>;
> + qcom,ports-hstart = /bits/ 8 <0xff 0x03 0xff 0xff 0xff>;
> + qcom,ports-hstop = /bits/ 8 <0xff 0x06 0xff 0xff 0xff>;
> + qcom,ports-block-group-count = /bits/ 8 <0xff 0xff 0xff 0xff 0x00>;
> +
> + #sound-dai-cells = <1>;
> + #address-cells = <2>;
> + #size-cells = <0>;
> + };
> --
> 2.7.4
On 10/19/2022 7:35 AM, Krzysztof Kozlowski wrote:
Thanks for Your Time Krzysztof!!!
> On 18/10/2022 07:24, Srinivasa Rao Mandadapu wrote:
>> Update soundwire bindings with yaml formats.
> The commit title and body are not really accurate. YAML is just format,
> you convert the bindings to DT schema.
Okay Will change accordingly.
>
>> Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
>> Co-developed-by: Ratna Deepthi Kudaravalli <quic_rkudarav@quicinc.com>
>> Signed-off-by: Ratna Deepthi Kudaravalli <quic_rkudarav@quicinc.com>
> Please use scripts/get_maintainers.pl to get a list of necessary people
> and lists to CC. It might happen, that command when run on an older
> kernel, gives you outdated entries. Therefore please be sure you base
> your patches on recent Linux kernel.
Okay. will get new maintainers list and send accordingly.
>
>
>> ---
>>
>> This patch depends on:
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=42801e6185290d63691bd39cf8a3bba6cd5fe520
>>
>> Changes since V1:
>> -- Remove the status field in example.
>> -- Remove interrupt-names property in the required list.
>> -- Add the wakeup-source property.
>>
>> .../devicetree/bindings/soundwire/qcom,sdw.txt | 214 ---------------------
>> .../devicetree/bindings/soundwire/qcom,sdw.yaml | 186 ++++++++++++++++++
>> 2 files changed, 186 insertions(+), 214 deletions(-)
>> delete mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
>> create mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt b/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
>> deleted file mode 100644
>> index c85c257..0000000
>> --- a/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
>> +++ /dev/null
>> @@ -1,214 +0,0 @@
>> -Qualcomm SoundWire Controller Bindings
>> -
>> -
>> -This binding describes the Qualcomm SoundWire Controller along with its
>> -board specific bus parameters.
>> -
>> -- compatible:
>> - Usage: required
>> - Value type: <stringlist>
>> - Definition: must be "qcom,soundwire-v<MAJOR>.<MINOR>.<STEP>",
>> - Example:
>> - "qcom,soundwire-v1.3.0"
>> - "qcom,soundwire-v1.5.0"
>> - "qcom,soundwire-v1.5.1"
>> - "qcom,soundwire-v1.6.0"
>> -- reg:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: the base address and size of SoundWire controller
>> - address space.
>> -
>> -- interrupts:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: should specify the SoundWire Controller core and optional
>> - wake IRQ
>> -
>> -- interrupt-names:
>> - Usage: Optional
>> - Value type: boolean
>> - Value type: <stringlist>
>> - Definition: should be "core" for core and "wakeup" for wake interrupt.
>> -
>> -- wakeup-source:
>> - Usage: Optional
>> - Value type: boolean
>> - Definition: should specify if SoundWire Controller is wake up capable.
>> -
>> -- clock-names:
>> - Usage: required
>> - Value type: <stringlist>
>> - Definition: should be "iface" for SoundWire Controller interface clock
>> -
>> -- clocks:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: should specify the SoundWire Controller interface clock
>> -
>> -- #sound-dai-cells:
>> - Usage: required
>> - Value type: <u32>
>> - Definition: must be 1 for digital audio interfaces on the controller.
>> -
>> -- qcom,dout-ports:
>> - Usage: required
>> - Value type: <u32>
>> - Definition: must be count of data out ports
>> -
>> -- qcom,din-ports:
>> - Usage: required
>> - Value type: <u32>
>> - Definition: must be count of data in ports
>> -
>> -- qcom,ports-offset1:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: should specify payload transport window offset1 of each
>> - data port. Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-offset2:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: should specify payload transport window offset2 of each
>> - data port. Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-sinterval-low:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: should be sample interval low of each data port.
>> - Out ports followed by In ports. Used for Sample Interval
>> - calculation.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-word-length:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be size of payload channel sample.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-block-pack-mode:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be 0 or 1 to indicate the block packing mode.
>> - 0 to indicate Blocks are per Channel
>> - 1 to indicate Blocks are per Port.
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-block-group-count:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be in range 1 to 4 to indicate how many sample
>> - intervals are combined into a payload.
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-lane-control:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be in range 0 to 7 to identify which data lane
>> - the data port uses.
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-hstart:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be number identifying lowerst numbered coloum in
>> - SoundWire Frame, i.e. left edge of the Transport sub-frame
>> - for each port. Values between 0 and 15 are valid.
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-hstop:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be number identifying highest numbered coloum in
>> - SoundWire Frame, i.e. the right edge of the Transport
>> - sub-frame for each port. Values between 0 and 15 are valid.
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,dports-type:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be one of the following types
>> - 0 for reduced port
>> - 1 for simple ports
>> - 2 for full port
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- reset:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: Should specify the SoundWire audio CSR reset controller interface,
>> - which is required for SoundWire version 1.6.0 and above.
>> -
>> -- reset-names:
>> - Usage: optional
>> - Value type: <stringlist>
>> - Definition: should be "swr_audio_cgcr" for SoundWire audio CSR reset
>> - controller interface.
>> -
>> -Note:
>> - More Information on detail of encoding of these fields can be
>> -found in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -= SoundWire devices
>> -Each subnode of the bus represents SoundWire device attached to it.
>> -The properties of these nodes are defined by the individual bindings.
>> -
>> -= EXAMPLE
>> -The following example represents a SoundWire controller on DB845c board
>> -which has controller integrated inside WCD934x codec on SDM845 SoC.
>> -
>> -soundwire: soundwire@c85 {
>> - compatible = "qcom,soundwire-v1.3.0";
>> - reg = <0xc85 0x20>;
>> - interrupts = <20 IRQ_TYPE_EDGE_RISING>;
>> - clocks = <&wcc>;
>> - clock-names = "iface";
>> - resets = <&lpass_audiocc LPASS_AUDIO_SWR_TX_CGCR>;
>> - reset-names = "swr_audio_cgcr";
>> - #sound-dai-cells = <1>;
>> - qcom,dports-type = <0>;
>> - qcom,dout-ports = <6>;
>> - qcom,din-ports = <2>;
>> - qcom,ports-sinterval-low = /bits/ 8 <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>;
>> - qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >;
>> - qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>;
>> -
>> - /* Left Speaker */
>> - left{
>> - ....
>> - };
>> -
>> - /* Right Speaker */
>> - right{
>> - ....
>> - };
>> -};
>> diff --git a/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml b/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
>> new file mode 100644
>> index 0000000..65bff91
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
> Filename based on compatible, so "qcom,soundwire.yaml"
Okay.
>
>> @@ -0,0 +1,186 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/soundwire/qcom,sdw.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm SoundWire Controller
>> +
>> +maintainers:
>> + - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> + - Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
>> +
>> +description:
>> + This binding describes the Qualcomm SoundWire controller along with its
>> + board specific bus parameters.
> Drop "This binding describes"
Okay.
>
>> +
>> +properties:
>> + compatible:
>> + enum:
>> + - qcom,soundwire-v1.3.0
>> + - qcom,soundwire-v1.5.0
>> + - qcom,soundwire-v1.5.1
>> + - qcom,soundwire-v1.6.0
>> +
>> + reg:
>> + items:
>> + - description: the base address and size of SoundWire controller
>> + address space.
> Just maxItems: 1
Okay.
>
>> +
>> + interrupts:
>> + items:
>> + - description: specify the SoundWire controller core and optional
>> + wake IRQ.
> If there is optional IRQ then this is not correct. You need here two items.
>
> The original bindings could be here not precise or not correct, so fix
> them while converting and document the changes in commit msg.
Okay. will modify accordingly.
>
>> +
>> + interrupt-names:
>> + items:
>> + - const: wakeup
> Where is the core?
Will add it.
>
>> +
>> + clocks:
>> + items:
>> + - description: iface clock
>> +
>> + clock-names:
>> + items:
>> + - const: iface
>> +
>> + resets:
>> + items:
>> + - description: SWR_AUDIO_CGCR RESET
>> +
>> + reset-names:
>> + items:
>> + - const: swr_audio_cgcr
>> +
>> + '#sound-dai-cells':
>> + const: 1
>> +
>> + '#address-cells':
>> + const: 2
>> +
>> + '#size-cells':
>> + const: 0
> Why? Old binding did not have them, I think. You do not have any children...
There are child nodes of slave codec devices. Will update bindings and
example accordingly.
>
>> +
>> + wakeup-source:
>> + description: specify the Soundwire Controller is wakeup Capable.
>> + type: boolean
> Just:
> wakeup-source: true
Okay.
>
>> +
>> + qcom,din-ports:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + description: count of data in ports
>> +
>> + qcom,dout-ports:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + description: count of data out ports
>> +
>> + qcom,ports-word-length:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: size of payload channel sample.
>> + minItems: 5
> Drop minItems
Okay.
>
>> + maxItems: 5
>> +
>> + qcom,ports-sinterval-low:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: sample interval low of each data port.
>> + minItems: 5
>
> here and in other places as well
Okay.
>
>> + maxItems: 5
>> +
>> + qcom,ports-offset1:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: payload transport window offset1 of each data port.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-offset2:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: payload transport window offset2 of each data port.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-lane-control:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: identify which data lane the data port uses.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-block-pack-mode:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: indicate the block packing mode.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-hstart:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: identifying lowerst numbered coloum in SoundWire frame.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-hstop:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: identifying highest numbered coloum in SoundWire frame.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-block-group-count:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: indicate how many sample intervals are combined into a payload.
>> + minItems: 5
>> + maxItems: 5
>> +
>> +required:
>> + - reg
>> + - interrupts
>> + - clocks
>> + - clock-names
>> + - resets
>> + - reset-names
>> + - '#sound-dai-cells'
>> + - '#address-cells'
>> + - '#size-cells'
>> + - qcom,dout-ports
>> + - qcom,din-ports
>> + - qcom,ports-word-length
>> + - qcom,ports-sinterval-low
>> + - qcom,ports-offset1
>> + - qcom,ports-offset2
>> + - qcom,ports-lane-control
>> + - qcom,ports-block-pack-mode
>> + - qcom,ports-hstart
>> + - qcom,ports-block-group-count
> These properties were optional. You need to explain any differences
> against pure-conversion.
Okay. Will modify as per base file.
>
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>> + #include <dt-bindings/interrupt-controller/irq.h>
>> + #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
>> +
>> + soundwire@3210000 {
>> + compatible = "qcom,soundwire-v1.6.0";
>> + reg = <0x03210000 0x2000>;
>> +
>> + interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
>> + clocks = <&lpass_rx_macro>;
>> + clock-names = "iface";
>> +
>> + qcom,din-ports = <0>;
>> + qcom,dout-ports = <5>;
>> +
>> + resets = <&lpass_audiocc LPASS_AUDIO_SWR_RX_CGCR>;
>> + reset-names = "swr_audio_cgcr";
>> +
>> + qcom,ports-word-length = /bits/ 8 <0x01 0x07 0x04 0xff 0xff>;
>> + qcom,ports-sinterval-low = /bits/ 8 <0x03 0x3f 0x1f 0x03 0x03>;
>> + qcom,ports-offset1 = /bits/ 8 <0x00 0x00 0x0b 0x01 0x01>;
>> + qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x0b 0x00 0x00>;
>> + qcom,ports-lane-control = /bits/ 8 <0x01 0x00 0x00 0x00 0x00>;
>> + qcom,ports-block-pack-mode = /bits/ 8 <0xff 0x00 0x01 0xff 0xff>;
>> + qcom,ports-hstart = /bits/ 8 <0xff 0x03 0xff 0xff 0xff>;
>> + qcom,ports-hstop = /bits/ 8 <0xff 0x06 0xff 0xff 0xff>;
>> + qcom,ports-block-group-count = /bits/ 8 <0xff 0xff 0xff 0xff 0x00>;
>> +
>> + #sound-dai-cells = <1>;
>> + #address-cells = <2>;
>> + #size-cells = <0>;
> Where are the children?
Will add it.
>
>> + };
> Best regards,
> Krzysztof
>
On 10/19/2022 6:12 PM, Vinod Koul wrote:
Thanks for your time Vinod!!!
> On 18-10-22, 16:54, Srinivasa Rao Mandadapu wrote:
>> Update soundwire bindings with yaml formats.
>>
>> Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
>> Co-developed-by: Ratna Deepthi Kudaravalli <quic_rkudarav@quicinc.com>
>> Signed-off-by: Ratna Deepthi Kudaravalli <quic_rkudarav@quicinc.com>
>> ---
>>
>> This patch depends on:
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=42801e6185290d63691bd39cf8a3bba6cd5fe520
> why is this dependency for yaml conversion?
Actually this patch is already landed, but getting bot error from Rob's
repo, due to clock binding macro missing.
So mentioned here the same.
>
>> Changes since V1:
>> -- Remove the status field in example.
>> -- Remove interrupt-names property in the required list.
>> -- Add the wakeup-source property.
>>
>> .../devicetree/bindings/soundwire/qcom,sdw.txt | 214 ---------------------
>> .../devicetree/bindings/soundwire/qcom,sdw.yaml | 186 ++++++++++++++++++
>> 2 files changed, 186 insertions(+), 214 deletions(-)
>> delete mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
>> create mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt b/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
>> deleted file mode 100644
>> index c85c257..0000000
>> --- a/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
>> +++ /dev/null
>> @@ -1,214 +0,0 @@
>> -Qualcomm SoundWire Controller Bindings
>> -
>> -
>> -This binding describes the Qualcomm SoundWire Controller along with its
>> -board specific bus parameters.
>> -
>> -- compatible:
>> - Usage: required
>> - Value type: <stringlist>
>> - Definition: must be "qcom,soundwire-v<MAJOR>.<MINOR>.<STEP>",
>> - Example:
>> - "qcom,soundwire-v1.3.0"
>> - "qcom,soundwire-v1.5.0"
>> - "qcom,soundwire-v1.5.1"
>> - "qcom,soundwire-v1.6.0"
>> -- reg:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: the base address and size of SoundWire controller
>> - address space.
>> -
>> -- interrupts:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: should specify the SoundWire Controller core and optional
>> - wake IRQ
>> -
>> -- interrupt-names:
>> - Usage: Optional
>> - Value type: boolean
>> - Value type: <stringlist>
>> - Definition: should be "core" for core and "wakeup" for wake interrupt.
>> -
>> -- wakeup-source:
>> - Usage: Optional
>> - Value type: boolean
>> - Definition: should specify if SoundWire Controller is wake up capable.
>> -
>> -- clock-names:
>> - Usage: required
>> - Value type: <stringlist>
>> - Definition: should be "iface" for SoundWire Controller interface clock
>> -
>> -- clocks:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: should specify the SoundWire Controller interface clock
>> -
>> -- #sound-dai-cells:
>> - Usage: required
>> - Value type: <u32>
>> - Definition: must be 1 for digital audio interfaces on the controller.
>> -
>> -- qcom,dout-ports:
>> - Usage: required
>> - Value type: <u32>
>> - Definition: must be count of data out ports
>> -
>> -- qcom,din-ports:
>> - Usage: required
>> - Value type: <u32>
>> - Definition: must be count of data in ports
>> -
>> -- qcom,ports-offset1:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: should specify payload transport window offset1 of each
>> - data port. Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-offset2:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: should specify payload transport window offset2 of each
>> - data port. Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-sinterval-low:
>> - Usage: required
>> - Value type: <prop-encoded-array>
>> - Definition: should be sample interval low of each data port.
>> - Out ports followed by In ports. Used for Sample Interval
>> - calculation.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-word-length:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be size of payload channel sample.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-block-pack-mode:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be 0 or 1 to indicate the block packing mode.
>> - 0 to indicate Blocks are per Channel
>> - 1 to indicate Blocks are per Port.
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-block-group-count:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be in range 1 to 4 to indicate how many sample
>> - intervals are combined into a payload.
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-lane-control:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be in range 0 to 7 to identify which data lane
>> - the data port uses.
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-hstart:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be number identifying lowerst numbered coloum in
>> - SoundWire Frame, i.e. left edge of the Transport sub-frame
>> - for each port. Values between 0 and 15 are valid.
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,ports-hstop:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be number identifying highest numbered coloum in
>> - SoundWire Frame, i.e. the right edge of the Transport
>> - sub-frame for each port. Values between 0 and 15 are valid.
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- qcom,dports-type:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: should be one of the following types
>> - 0 for reduced port
>> - 1 for simple ports
>> - 2 for full port
>> - Out ports followed by In ports.
>> - Value of 0xFF indicates that this option is not implemented
>> - or applicable for the respective data port.
>> - More info in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -- reset:
>> - Usage: optional
>> - Value type: <prop-encoded-array>
>> - Definition: Should specify the SoundWire audio CSR reset controller interface,
>> - which is required for SoundWire version 1.6.0 and above.
>> -
>> -- reset-names:
>> - Usage: optional
>> - Value type: <stringlist>
>> - Definition: should be "swr_audio_cgcr" for SoundWire audio CSR reset
>> - controller interface.
>> -
>> -Note:
>> - More Information on detail of encoding of these fields can be
>> -found in MIPI Alliance SoundWire 1.0 Specifications.
>> -
>> -= SoundWire devices
>> -Each subnode of the bus represents SoundWire device attached to it.
>> -The properties of these nodes are defined by the individual bindings.
>> -
>> -= EXAMPLE
>> -The following example represents a SoundWire controller on DB845c board
>> -which has controller integrated inside WCD934x codec on SDM845 SoC.
>> -
>> -soundwire: soundwire@c85 {
>> - compatible = "qcom,soundwire-v1.3.0";
>> - reg = <0xc85 0x20>;
>> - interrupts = <20 IRQ_TYPE_EDGE_RISING>;
>> - clocks = <&wcc>;
>> - clock-names = "iface";
>> - resets = <&lpass_audiocc LPASS_AUDIO_SWR_TX_CGCR>;
>> - reset-names = "swr_audio_cgcr";
>> - #sound-dai-cells = <1>;
>> - qcom,dports-type = <0>;
>> - qcom,dout-ports = <6>;
>> - qcom,din-ports = <2>;
>> - qcom,ports-sinterval-low = /bits/ 8 <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>;
>> - qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >;
>> - qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>;
>> -
>> - /* Left Speaker */
>> - left{
>> - ....
>> - };
>> -
>> - /* Right Speaker */
>> - right{
>> - ....
>> - };
>> -};
>> diff --git a/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml b/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
>> new file mode 100644
>> index 0000000..65bff91
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/soundwire/qcom,sdw.yaml
>> @@ -0,0 +1,186 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/soundwire/qcom,sdw.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm SoundWire Controller
>> +
>> +maintainers:
>> + - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> + - Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
>> +
>> +description:
>> + This binding describes the Qualcomm SoundWire controller along with its
>> + board specific bus parameters.
>> +
>> +properties:
>> + compatible:
>> + enum:
>> + - qcom,soundwire-v1.3.0
>> + - qcom,soundwire-v1.5.0
>> + - qcom,soundwire-v1.5.1
>> + - qcom,soundwire-v1.6.0
>> +
>> + reg:
>> + items:
>> + - description: the base address and size of SoundWire controller
>> + address space.
>> +
>> + interrupts:
>> + items:
>> + - description: specify the SoundWire controller core and optional
>> + wake IRQ.
>> +
>> + interrupt-names:
>> + items:
>> + - const: wakeup
>> +
>> + clocks:
>> + items:
>> + - description: iface clock
>> +
>> + clock-names:
>> + items:
>> + - const: iface
>> +
>> + resets:
>> + items:
>> + - description: SWR_AUDIO_CGCR RESET
>> +
>> + reset-names:
>> + items:
>> + - const: swr_audio_cgcr
>> +
>> + '#sound-dai-cells':
>> + const: 1
>> +
>> + '#address-cells':
>> + const: 2
>> +
>> + '#size-cells':
>> + const: 0
>> +
>> + wakeup-source:
>> + description: specify the Soundwire Controller is wakeup Capable.
>> + type: boolean
>> +
>> + qcom,din-ports:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + description: count of data in ports
>> +
>> + qcom,dout-ports:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + description: count of data out ports
>> +
>> + qcom,ports-word-length:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: size of payload channel sample.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-sinterval-low:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: sample interval low of each data port.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-offset1:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: payload transport window offset1 of each data port.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-offset2:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: payload transport window offset2 of each data port.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-lane-control:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: identify which data lane the data port uses.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-block-pack-mode:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: indicate the block packing mode.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-hstart:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: identifying lowerst numbered coloum in SoundWire frame.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-hstop:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: identifying highest numbered coloum in SoundWire frame.
>> + minItems: 5
>> + maxItems: 5
>> +
>> + qcom,ports-block-group-count:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description: indicate how many sample intervals are combined into a payload.
>> + minItems: 5
>> + maxItems: 5
>> +
>> +required:
>> + - reg
>> + - interrupts
>> + - clocks
>> + - clock-names
>> + - resets
>> + - reset-names
>> + - '#sound-dai-cells'
>> + - '#address-cells'
>> + - '#size-cells'
>> + - qcom,dout-ports
>> + - qcom,din-ports
>> + - qcom,ports-word-length
>> + - qcom,ports-sinterval-low
>> + - qcom,ports-offset1
>> + - qcom,ports-offset2
>> + - qcom,ports-lane-control
>> + - qcom,ports-block-pack-mode
>> + - qcom,ports-hstart
>> + - qcom,ports-block-group-count
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>> + #include <dt-bindings/interrupt-controller/irq.h>
>> + #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
>> +
>> + soundwire@3210000 {
>> + compatible = "qcom,soundwire-v1.6.0";
>> + reg = <0x03210000 0x2000>;
>> +
>> + interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
>> + clocks = <&lpass_rx_macro>;
>> + clock-names = "iface";
>> +
>> + qcom,din-ports = <0>;
>> + qcom,dout-ports = <5>;
>> +
>> + resets = <&lpass_audiocc LPASS_AUDIO_SWR_RX_CGCR>;
>> + reset-names = "swr_audio_cgcr";
>> +
>> + qcom,ports-word-length = /bits/ 8 <0x01 0x07 0x04 0xff 0xff>;
>> + qcom,ports-sinterval-low = /bits/ 8 <0x03 0x3f 0x1f 0x03 0x03>;
>> + qcom,ports-offset1 = /bits/ 8 <0x00 0x00 0x0b 0x01 0x01>;
>> + qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x0b 0x00 0x00>;
>> + qcom,ports-lane-control = /bits/ 8 <0x01 0x00 0x00 0x00 0x00>;
>> + qcom,ports-block-pack-mode = /bits/ 8 <0xff 0x00 0x01 0xff 0xff>;
>> + qcom,ports-hstart = /bits/ 8 <0xff 0x03 0xff 0xff 0xff>;
>> + qcom,ports-hstop = /bits/ 8 <0xff 0x06 0xff 0xff 0xff>;
>> + qcom,ports-block-group-count = /bits/ 8 <0xff 0xff 0xff 0xff 0x00>;
>> +
>> + #sound-dai-cells = <1>;
>> + #address-cells = <2>;
>> + #size-cells = <0>;
>> + };
>> --
>> 2.7.4
deleted file mode 100644
@@ -1,214 +0,0 @@
-Qualcomm SoundWire Controller Bindings
-
-
-This binding describes the Qualcomm SoundWire Controller along with its
-board specific bus parameters.
-
-- compatible:
- Usage: required
- Value type: <stringlist>
- Definition: must be "qcom,soundwire-v<MAJOR>.<MINOR>.<STEP>",
- Example:
- "qcom,soundwire-v1.3.0"
- "qcom,soundwire-v1.5.0"
- "qcom,soundwire-v1.5.1"
- "qcom,soundwire-v1.6.0"
-- reg:
- Usage: required
- Value type: <prop-encoded-array>
- Definition: the base address and size of SoundWire controller
- address space.
-
-- interrupts:
- Usage: required
- Value type: <prop-encoded-array>
- Definition: should specify the SoundWire Controller core and optional
- wake IRQ
-
-- interrupt-names:
- Usage: Optional
- Value type: boolean
- Value type: <stringlist>
- Definition: should be "core" for core and "wakeup" for wake interrupt.
-
-- wakeup-source:
- Usage: Optional
- Value type: boolean
- Definition: should specify if SoundWire Controller is wake up capable.
-
-- clock-names:
- Usage: required
- Value type: <stringlist>
- Definition: should be "iface" for SoundWire Controller interface clock
-
-- clocks:
- Usage: required
- Value type: <prop-encoded-array>
- Definition: should specify the SoundWire Controller interface clock
-
-- #sound-dai-cells:
- Usage: required
- Value type: <u32>
- Definition: must be 1 for digital audio interfaces on the controller.
-
-- qcom,dout-ports:
- Usage: required
- Value type: <u32>
- Definition: must be count of data out ports
-
-- qcom,din-ports:
- Usage: required
- Value type: <u32>
- Definition: must be count of data in ports
-
-- qcom,ports-offset1:
- Usage: required
- Value type: <prop-encoded-array>
- Definition: should specify payload transport window offset1 of each
- data port. Out ports followed by In ports.
- Value of 0xFF indicates that this option is not implemented
- or applicable for the respective data port.
- More info in MIPI Alliance SoundWire 1.0 Specifications.
-
-- qcom,ports-offset2:
- Usage: required
- Value type: <prop-encoded-array>
- Definition: should specify payload transport window offset2 of each
- data port. Out ports followed by In ports.
- Value of 0xFF indicates that this option is not implemented
- or applicable for the respective data port.
- More info in MIPI Alliance SoundWire 1.0 Specifications.
-
-- qcom,ports-sinterval-low:
- Usage: required
- Value type: <prop-encoded-array>
- Definition: should be sample interval low of each data port.
- Out ports followed by In ports. Used for Sample Interval
- calculation.
- Value of 0xFF indicates that this option is not implemented
- or applicable for the respective data port.
- More info in MIPI Alliance SoundWire 1.0 Specifications.
-
-- qcom,ports-word-length:
- Usage: optional
- Value type: <prop-encoded-array>
- Definition: should be size of payload channel sample.
- Value of 0xFF indicates that this option is not implemented
- or applicable for the respective data port.
- More info in MIPI Alliance SoundWire 1.0 Specifications.
-
-- qcom,ports-block-pack-mode:
- Usage: optional
- Value type: <prop-encoded-array>
- Definition: should be 0 or 1 to indicate the block packing mode.
- 0 to indicate Blocks are per Channel
- 1 to indicate Blocks are per Port.
- Out ports followed by In ports.
- Value of 0xFF indicates that this option is not implemented
- or applicable for the respective data port.
- More info in MIPI Alliance SoundWire 1.0 Specifications.
-
-- qcom,ports-block-group-count:
- Usage: optional
- Value type: <prop-encoded-array>
- Definition: should be in range 1 to 4 to indicate how many sample
- intervals are combined into a payload.
- Out ports followed by In ports.
- Value of 0xFF indicates that this option is not implemented
- or applicable for the respective data port.
- More info in MIPI Alliance SoundWire 1.0 Specifications.
-
-- qcom,ports-lane-control:
- Usage: optional
- Value type: <prop-encoded-array>
- Definition: should be in range 0 to 7 to identify which data lane
- the data port uses.
- Out ports followed by In ports.
- Value of 0xFF indicates that this option is not implemented
- or applicable for the respective data port.
- More info in MIPI Alliance SoundWire 1.0 Specifications.
-
-- qcom,ports-hstart:
- Usage: optional
- Value type: <prop-encoded-array>
- Definition: should be number identifying lowerst numbered coloum in
- SoundWire Frame, i.e. left edge of the Transport sub-frame
- for each port. Values between 0 and 15 are valid.
- Out ports followed by In ports.
- Value of 0xFF indicates that this option is not implemented
- or applicable for the respective data port.
- More info in MIPI Alliance SoundWire 1.0 Specifications.
-
-- qcom,ports-hstop:
- Usage: optional
- Value type: <prop-encoded-array>
- Definition: should be number identifying highest numbered coloum in
- SoundWire Frame, i.e. the right edge of the Transport
- sub-frame for each port. Values between 0 and 15 are valid.
- Out ports followed by In ports.
- Value of 0xFF indicates that this option is not implemented
- or applicable for the respective data port.
- More info in MIPI Alliance SoundWire 1.0 Specifications.
-
-- qcom,dports-type:
- Usage: optional
- Value type: <prop-encoded-array>
- Definition: should be one of the following types
- 0 for reduced port
- 1 for simple ports
- 2 for full port
- Out ports followed by In ports.
- Value of 0xFF indicates that this option is not implemented
- or applicable for the respective data port.
- More info in MIPI Alliance SoundWire 1.0 Specifications.
-
-- reset:
- Usage: optional
- Value type: <prop-encoded-array>
- Definition: Should specify the SoundWire audio CSR reset controller interface,
- which is required for SoundWire version 1.6.0 and above.
-
-- reset-names:
- Usage: optional
- Value type: <stringlist>
- Definition: should be "swr_audio_cgcr" for SoundWire audio CSR reset
- controller interface.
-
-Note:
- More Information on detail of encoding of these fields can be
-found in MIPI Alliance SoundWire 1.0 Specifications.
-
-= SoundWire devices
-Each subnode of the bus represents SoundWire device attached to it.
-The properties of these nodes are defined by the individual bindings.
-
-= EXAMPLE
-The following example represents a SoundWire controller on DB845c board
-which has controller integrated inside WCD934x codec on SDM845 SoC.
-
-soundwire: soundwire@c85 {
- compatible = "qcom,soundwire-v1.3.0";
- reg = <0xc85 0x20>;
- interrupts = <20 IRQ_TYPE_EDGE_RISING>;
- clocks = <&wcc>;
- clock-names = "iface";
- resets = <&lpass_audiocc LPASS_AUDIO_SWR_TX_CGCR>;
- reset-names = "swr_audio_cgcr";
- #sound-dai-cells = <1>;
- qcom,dports-type = <0>;
- qcom,dout-ports = <6>;
- qcom,din-ports = <2>;
- qcom,ports-sinterval-low = /bits/ 8 <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>;
- qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >;
- qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>;
-
- /* Left Speaker */
- left{
- ....
- };
-
- /* Right Speaker */
- right{
- ....
- };
-};
new file mode 100644
@@ -0,0 +1,186 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soundwire/qcom,sdw.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SoundWire Controller
+
+maintainers:
+ - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+ - Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
+
+description:
+ This binding describes the Qualcomm SoundWire controller along with its
+ board specific bus parameters.
+
+properties:
+ compatible:
+ enum:
+ - qcom,soundwire-v1.3.0
+ - qcom,soundwire-v1.5.0
+ - qcom,soundwire-v1.5.1
+ - qcom,soundwire-v1.6.0
+
+ reg:
+ items:
+ - description: the base address and size of SoundWire controller
+ address space.
+
+ interrupts:
+ items:
+ - description: specify the SoundWire controller core and optional
+ wake IRQ.
+
+ interrupt-names:
+ items:
+ - const: wakeup
+
+ clocks:
+ items:
+ - description: iface clock
+
+ clock-names:
+ items:
+ - const: iface
+
+ resets:
+ items:
+ - description: SWR_AUDIO_CGCR RESET
+
+ reset-names:
+ items:
+ - const: swr_audio_cgcr
+
+ '#sound-dai-cells':
+ const: 1
+
+ '#address-cells':
+ const: 2
+
+ '#size-cells':
+ const: 0
+
+ wakeup-source:
+ description: specify the Soundwire Controller is wakeup Capable.
+ type: boolean
+
+ qcom,din-ports:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: count of data in ports
+
+ qcom,dout-ports:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: count of data out ports
+
+ qcom,ports-word-length:
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ description: size of payload channel sample.
+ minItems: 5
+ maxItems: 5
+
+ qcom,ports-sinterval-low:
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ description: sample interval low of each data port.
+ minItems: 5
+ maxItems: 5
+
+ qcom,ports-offset1:
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ description: payload transport window offset1 of each data port.
+ minItems: 5
+ maxItems: 5
+
+ qcom,ports-offset2:
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ description: payload transport window offset2 of each data port.
+ minItems: 5
+ maxItems: 5
+
+ qcom,ports-lane-control:
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ description: identify which data lane the data port uses.
+ minItems: 5
+ maxItems: 5
+
+ qcom,ports-block-pack-mode:
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ description: indicate the block packing mode.
+ minItems: 5
+ maxItems: 5
+
+ qcom,ports-hstart:
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ description: identifying lowerst numbered coloum in SoundWire frame.
+ minItems: 5
+ maxItems: 5
+
+ qcom,ports-hstop:
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ description: identifying highest numbered coloum in SoundWire frame.
+ minItems: 5
+ maxItems: 5
+
+ qcom,ports-block-group-count:
+ $ref: /schemas/types.yaml#/definitions/uint8-array
+ description: indicate how many sample intervals are combined into a payload.
+ minItems: 5
+ maxItems: 5
+
+required:
+ - reg
+ - interrupts
+ - clocks
+ - clock-names
+ - resets
+ - reset-names
+ - '#sound-dai-cells'
+ - '#address-cells'
+ - '#size-cells'
+ - qcom,dout-ports
+ - qcom,din-ports
+ - qcom,ports-word-length
+ - qcom,ports-sinterval-low
+ - qcom,ports-offset1
+ - qcom,ports-offset2
+ - qcom,ports-lane-control
+ - qcom,ports-block-pack-mode
+ - qcom,ports-hstart
+ - qcom,ports-block-group-count
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
+
+ soundwire@3210000 {
+ compatible = "qcom,soundwire-v1.6.0";
+ reg = <0x03210000 0x2000>;
+
+ interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&lpass_rx_macro>;
+ clock-names = "iface";
+
+ qcom,din-ports = <0>;
+ qcom,dout-ports = <5>;
+
+ resets = <&lpass_audiocc LPASS_AUDIO_SWR_RX_CGCR>;
+ reset-names = "swr_audio_cgcr";
+
+ qcom,ports-word-length = /bits/ 8 <0x01 0x07 0x04 0xff 0xff>;
+ qcom,ports-sinterval-low = /bits/ 8 <0x03 0x3f 0x1f 0x03 0x03>;
+ qcom,ports-offset1 = /bits/ 8 <0x00 0x00 0x0b 0x01 0x01>;
+ qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x0b 0x00 0x00>;
+ qcom,ports-lane-control = /bits/ 8 <0x01 0x00 0x00 0x00 0x00>;
+ qcom,ports-block-pack-mode = /bits/ 8 <0xff 0x00 0x01 0xff 0xff>;
+ qcom,ports-hstart = /bits/ 8 <0xff 0x03 0xff 0xff 0xff>;
+ qcom,ports-hstop = /bits/ 8 <0xff 0x06 0xff 0xff 0xff>;
+ qcom,ports-block-group-count = /bits/ 8 <0xff 0xff 0xff 0xff 0x00>;
+
+ #sound-dai-cells = <1>;
+ #address-cells = <2>;
+ #size-cells = <0>;
+ };