aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2019-06-17 16:10:54 +0100
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2019-07-02 11:30:50 +0100
commit2ba2cabf604c7a3aba4f4055afa6a967bd176ffb (patch)
tree519a33e1e5dd3f3e623a16722667ba6a1e40cc68
parent4a4a485541591043fb230a19418e04e08320e653 (diff)
dt-bindings: soundwire: add bindings for Qcom controller
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. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-rw-r--r--Documentation/devicetree/bindings/soundwire/qcom,sdw.txt74
1 files changed, 74 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt b/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
new file mode 100644
index 000000000000..844a09fcd3ba
--- /dev/null
+++ b/Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
@@ -0,0 +1,74 @@
+Qualcomm SoundWire Controller
+
+This binding describes the Qualcomm SoundWire Controller Bindings.
+
+Required properties:
+
+- compatible: 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: SoundWire controller address space.
+- interrupts: SoundWire controller interrupt.
+- clock-names: Must contain "iface".
+- clocks: Interface clocks needed for controller.
+- #sound-dai-cells: Must be 1 for digital audio interfaces on the controllers.
+- #address-cells: Must be 1 for SoundWire devices;
+- #size-cells: Must be <0> as SoundWire addresses have no size component.
+- qcom,dout-ports: Must be count of data out ports
+- qcom,din-ports: Must be count of data in ports
+- qcom,ports-offset1: Must be payload transport window offset1 of each data port.
+ Out followed by In. Used for Block size calculation.
+- qcom,ports-offset2: Must be payload transport window offset2 of each data port.
+ Out followed by In. Used for Block size calculation.
+- qcom,ports-sinterval-low: Must be sample interval low of each data port.
+ Out followed by In. Used for Sample Interval calculation.
+- qcom,ports-hstart: Must be number identifying lowerst numbered coloum in
+ SoundWire Frame, ie left edge of the Transport sub-frame
+ for each port. Values between 0 and 15 are valid
+ Out ports followed by In ports.
+- qcom,ports-hstop: Must be number identifying highest numbered coloum in
+ SoundWire Frame, ie the right edge of the Transport sub-frame
+ for each port. Values between 0 and 15 are valid
+ Out ports followed by In ports.
+- qcom,dports-type: Must be data one of the following
+ 0 for reduced port
+ 1 for simple ports
+ 2 for full port
+= 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>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ 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 */
+ wsa8810@1{
+ ....
+ reg = <1>;
+ };
+
+ /* Right Speaker */
+ wsa8810@2{
+ ....
+ reg = <2>;
+ };
+};