| 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 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. |
| 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. |
| |
| 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{ |
| .... |
| }; |
| }; |