[PATCH v4 7/8] dt-bindings: sound: qcom: add Tambora WCD9378 SDCA codec

From: Srinivas Kandagatla

Date: Fri Sep 18 2026 - 09:30:02 EST


Describe the WCD9378 SoundWire peripheral which is SDCA compatible
soundwire device. It provides SDCA SimpleJack for headphone playback
headset mic capture and MBHC jack detection.

The same silicon is integrated in two ways and enumerates with the
same SoundWire class ID:

mobile mode: two slaves (tx, rx) on separate SoundWire masters.

SDCA / compute mode: one aggregated slave on a multi-lane
master.

Note: both of them have different bus toplogies 1 device vs 2 devices.

Currently only compute mode is supported by this bindings, mobile mode
will extend this binding as required.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxxxxxxxx>
---
.../bindings/sound/qcom,wcd9378-sdw.yaml | 102 ++++++++++++++++++
1 file changed, 102 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd9378-sdw.yaml

diff --git a/Documentation/devicetree/bindings/sound/qcom,wcd9378-sdw.yaml b/Documentation/devicetree/bindings/sound/qcom,wcd9378-sdw.yaml
new file mode 100644
index 000000000000..33fcd0f191ec
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/qcom,wcd9378-sdw.yaml
@@ -0,0 +1,102 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/qcom,wcd9378-sdw.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm WCD9378 (Tambora) SoundWire codec
+
+maintainers:
+ - Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxxxxxxxx>
+
+description:
+ Qualcomm WCD9378 (Tambora) SoundWire codec. The same silicon can be
+ fused for a mobile (non-SDCA) mode or an SDCA-compliant mode; the
+ qcom,sdca-compliant property selects the latter and is required by
+ this driver.
+
+properties:
+ compatible:
+ const: sdw20217011000
+
+ reg:
+ maxItems: 1
+
+ qcom,sdca-compliant:
+ description:
+ Present when the codec is fused as SDCA-compliant. The mobile
+ (non-SDCA) variant carries the same class-ID compatible and is
+ handled by a different driver.
+ type: boolean
+
+ qcom,port-mapping:
+ description:
+ Each entry maps a slave data port to a master data port.
+ Entries are in order starting from slave port 1; slave port 0
+ is reserved and not represented. SDCA-compliant mode uses 8
+ entries covering DP1..DP8.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 8
+ maxItems: 8
+
+ reset-gpios:
+ description: GPIO used to release the codec from reset.
+ maxItems: 1
+
+ vdd-buck-supply:
+ description: 1.8 V analog buck supply.
+
+ vdd-rxtx-supply:
+ description: 1.8 V RX/TX supply.
+
+ vdd-io-supply:
+ description: Digital I/O supply.
+
+ vdd-mic-bias-supply:
+ description: Mic bias supply.
+
+ '#sound-dai-cells':
+ const: 1
+
+required:
+ - compatible
+ - reg
+ - qcom,sdca-compliant
+ - qcom,port-mapping
+ - reset-gpios
+ - vdd-buck-supply
+ - vdd-rxtx-supply
+ - vdd-io-supply
+ - vdd-mic-bias-supply
+ - '#sound-dai-cells'
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ soundwire@7630000 {
+ reg = <0x07630000 0x10000>;
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ wcd9378c_sdw: audio-codec@0,3 {
+ compatible = "sdw20217011000";
+ reg = <0 3>;
+
+ qcom,sdca-compliant;
+
+ qcom,port-mapping = <2 2 3 4 5 6 7 8>;
+
+ reset-gpios = <&tlmm 191 GPIO_ACTIVE_LOW>;
+
+ vdd-buck-supply = <&vreg_l15b_1p8>;
+ vdd-rxtx-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l18b_1p2>;
+ vdd-mic-bias-supply = <&vreg_bob1>;
+
+ #sound-dai-cells = <1>;
+ };
+ };
+...
--
2.53.0