24 Nov
2023
24 Nov
'23
9:33 a.m.
On 23/11/2023 15:49, Neil Armstrong wrote:
- Qualcomm WCD9390/WCD9395 Codec is a standalone Hi-Fi audio codec IC.
- It has RX and TX Soundwire slave devices.
- The WCD9390/WCD9395 IC has a functionally separate USB-C Mux subsystem
- accessible over an I2C interface.
- The Audio Headphone and Microphone data path between the Codec and the USB-C Mux
- subsystems are external to the IC, thus requiring DT port-endpoint graph description
- to handle USB-C altmode & orientation switching for Audio Accessory Mode.
+allOf:
- $ref: dai-common.yaml#
- $ref: qcom,wcd93xx-common.yaml#
+properties:
- compatible:
- enum:
- qcom,wcd9390-codec
- qcom,wcd9395-codec
9395 should be compatible with 9390, so please express it with a list using fallback. I know that earlier wcd93xx do not follow that concept, but maybe we will fix them some point as well.
- mode-switch:
- description: Flag the port as possible handle of altmode switching
- type: boolean
- orientation-switch:
- description: Flag the port as possible handler of orientation switching
- type: boolean
- port:
- $ref: /schemas/graph.yaml#/properties/port
- description:
A port node to link the WCD939x Codec node to USB MUX subsystems for the
purpose of handling altmode muxing and orientation switching to detecte and
enable Audio Accessory Mode.
+required:
- compatible
+unevaluatedProperties: false
+examples:
- |
- codec {
compatible = "qcom,wcd9390-codec";
reset-gpios = <&tlmm 32 0>;
Please define for the GPIO flag.
#sound-dai-cells = <1>;
qcom,tx-device = <&wcd939x_tx>;
qcom,rx-device = <&wcd939x_rx>;
qcom,micbias1-microvolt = <1800000>;
qcom,micbias2-microvolt = <1800000>;
qcom,micbias3-microvolt = <1800000>;
qcom,micbias4-microvolt = <1800000>;
qcom,hphl-jack-type-normally-closed;
qcom,ground-jack-type-normally-closed;
qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
- };
- /* ... */
- soundwire@3210000 {
#address-cells = <2>;
#size-cells = <0>;
reg = <0x03210000 0x2000>;
wcd939x_rx: codec@0,4 {
compatible = "sdw20217010e00";
reg = <0 4>;
Just one space before '='
qcom,rx-port-mapping = <1 2 3 4 5 6>;
};
- };
- soundwire@3230000 {
#address-cells = <2>;
#size-cells = <0>;
reg = <0x03230000 0x2000>;
wcd938x_tx: codec@0,3 {
compatible = "sdw20217010e00";
reg = <0 3>;
Ditto
Best regards, Krzysztof