Re: [PATCH v2 4/5] dt-bindings: soundwire: add bindings for Qcom controller

From: Vinod Koul
Date: Fri Aug 23 2019 - 03:29:47 EST


On 13-08-19, 09:35, Srinivas Kandagatla wrote:
> This patch adds bindings for Qualcomm soundwire controller.
>
> Qualcomm SoundWire Master controller is present in most Qualcomm SoCs
> either integrated as part of WCD audio codecs via slimbus or
> as part of SOC I/O.

Rob.. ?

>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
> ---
> .../bindings/soundwire/qcom,sdw.txt | 167 ++++++++++++++++++
> 1 file changed, 167 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
>
> diff --git a/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt b/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
> new file mode 100644
> index 000000000000..436547f3b155
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
> @@ -0,0 +1,167 @@
> +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.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 IRQ
> +
> +- 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.
> + 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.
> + 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.
> + 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.
> + 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.
> + 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.
> + 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.
> + 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.
> + 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.
> + 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.
> + More info in MIPI Alliance SoundWire 1.0 Specifications.
> +
> +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";
> + #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{
> + ....
> + };
> +};
> --
> 2.21.0

--
~Vinod