@@ -12,15 +12,17 @@ maintainers:
description: |
WSA8810 is a class-D smart speaker amplifier and WSA8815
is a high-output power class-D smart speaker amplifier.
- Their primary operating mode uses a SoundWire digital audio
- interface. This binding is for SoundWire interface.
-
-allOf:
- - $ref: dai-common.yaml#
+ This family of amplifiers support two operating modes:
+ SoundWire digital audio interface which is a primary mode
+ and analog mode when device is configured via i2c only.
+ This binding describes both modes.
properties:
compatible:
- const: sdw10217201000
+ enum:
+ - qcom,wsa8810
+ - qcom,wsa8815
+ - sdw10217201000
reg:
maxItems: 1
@@ -35,17 +37,60 @@ properties:
'#sound-dai-cells':
const: 0
+ clocks:
+ maxItems: 1
+
+ mclk-gpios:
+ description: GPIO spec for mclk
+ maxItems: 1
+
required:
- compatible
- reg
- powerdown-gpios
- - "#thermal-sensor-cells"
- - "#sound-dai-cells"
+ - '#thermal-sensor-cells'
+ - '#sound-dai-cells'
+
+allOf:
+ - $ref: dai-common.yaml#
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,wsa8810
+ const: qcom,wsa8815
+ then:
+ properties:
+ reg:
+ description:
+ In case of analog mode this should be I2C address of the digital
+ part of the device. The I2C address of analog part of an amplifier
+ is expected to be located at the fixed offset.
+ maxItems: 1
+ items:
+ minimum: 0x0e
+ maximum: 0x0f
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,wsa8810
+ const: qcom,wsa8815
+ then:
+ required:
+ - clocks
+ - mclk-gpios
unevaluatedProperties: false
examples:
- |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/sound/qcom,q6afe.h>
+
soundwire@c2d0000 {
#address-cells = <2>;
#size-cells = <0>;
@@ -68,4 +113,18 @@ examples:
};
};
+ i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ amplifier@e {
+ compatible = "qcom,wsa8810";
+ reg = <0x0e>;
+ clocks = <&q6afecc LPASS_CLK_ID_MCLK_3 LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ powerdown-gpios = <&lpass_tlmm 16 GPIO_ACTIVE_LOW>;
+ mclk-gpios = <&lpass_tlmm 18 GPIO_ACTIVE_HIGH>;
+ #sound-dai-cells = <0>;
+ #thermal-sensor-cells = <0>;
+ };
+ };
...
WSA881X also supports analog mode when device is configured via i2c only. Document it, add properties, new compatibles and example. While at this, also adjust quotes. Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org> --- .../bindings/sound/qcom,wsa881x.yaml | 75 +++++++++++++++++-- 1 file changed, 67 insertions(+), 8 deletions(-)