215 lines
6.9 KiB
Plaintext
215 lines
6.9 KiB
Plaintext
|
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 core and optional
|
||
|
wake IRQ
|
||
|
|
||
|
- interrupt-names:
|
||
|
Usage: Optional
|
||
|
Value type: boolean
|
||
|
Value type: <stringlist>
|
||
|
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: <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.
|
||
|
|
||
|
- reset:
|
||
|
Usage: optional
|
||
|
Value type: <prop-encoded-array>
|
||
|
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: <stringlist>
|
||
|
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{
|
||
|
....
|
||
|
};
|
||
|
};
|