Qualcomm SoundWire Controller Bindings This binding describes the Qualcomm SoundWire Controller along with its board specific bus parameters. - compatible: Usage: required Value type: Definition: must be "qcom,soundwire-v..", Example: "qcom,soundwire-v1.3.0" "qcom,soundwire-v1.5.0" "qcom,soundwire-v1.6.0" - reg: Usage: required Value type: Definition: the base address and size of SoundWire controller address space. - interrupts: Usage: required Value type: Definition: should specify the SoundWire Controller IRQ - clock-names: Usage: required Value type: Definition: should be "iface" for SoundWire Controller interface clock - clocks: Usage: required Value type: Definition: should specify the SoundWire Controller interface clock - #sound-dai-cells: Usage: required Value type: Definition: must be 1 for digital audio interfaces on the controller. - qcom,dout-ports: Usage: required Value type: Definition: must be count of data out ports - qcom,din-ports: Usage: required Value type: Definition: must be count of data in ports - qcom,ports-offset1: Usage: required Value type: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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{ .... }; };