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.5.1" "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 core and optional wake IRQ - interrupt-names: Usage: Optional Value type: boolean Value type: 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: 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. 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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{ .... }; };