Documentation / devicetree / bindings / sound / qcom,wcd937x-sdw.yaml


Based on kernel version 6.15. Page generated on 2025-05-29 09:09 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/qcom,wcd937x-sdw.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm SoundWire Slave devices on WCD9370/WCD9375

maintainers:
  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

description: |
  Qualcomm WCD9370/WCD9375 Codec is a standalone Hi-Fi audio codec IC.
  It has RX and TX Soundwire slave devices. This bindings is for the
  slave devices.

properties:
  compatible:
    const: sdw20217010a00

  reg:
    maxItems: 1

  qcom,tx-port-mapping:
    description: |
      Specifies static port mapping between device and host tx ports.
      In the order of the device port index which are adc1_port, adc23_port,
      dmic03_mbhc_port, dmic46_port.
      Supports maximum 4 tx soundwire ports.
 
      WCD9370 TX Port 1 (ADC1)               <=> SWR2 Port 2
      WCD9370 TX Port 2 (ADC2, 3)            <=> SWR2 Port 2
      WCD9370 TX Port 3 (DMIC0,1,2,3 & MBHC) <=> SWR2 Port 3
      WCD9370 TX Port 4 (DMIC4,5,6,7)        <=> SWR2 Port 4

    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 4
    maxItems: 4
    items:
      enum: [1, 2, 3, 4]

  qcom,rx-port-mapping:
    description: |
      Specifies static port mapping between device and host rx ports.
      In the order of device port index which are hph_port, clsh_port,
      comp_port, lo_port, dsd port.
      Supports maximum 5 rx soundwire ports.
 
      WCD9370 RX Port 1 (HPH_L/R)       <==>    SWR1 Port 1 (HPH_L/R)
      WCD9370 RX Port 2 (CLSH)          <==>    SWR1 Port 2 (CLSH)
      WCD9370 RX Port 3 (COMP_L/R)      <==>    SWR1 Port 3 (COMP_L/R)
      WCD9370 RX Port 4 (LO)            <==>    SWR1 Port 4 (LO)
      WCD9370 RX Port 5 (DSD_L/R)       <==>    SWR1 Port 5 (DSD)

    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 5
    maxItems: 5
    items:
      enum: [1, 2, 3, 4, 5]

  qcom,tx-channel-mapping:
    description: |
      Specifies static channel mapping between slave and master tx port
      channels.
      In the order of slave port channels which is adc1, adc2, adc3,
      dmic0, dmic1, mbhc, dmic2, dmic3, dmci4, dmic5, dmic6, dmic7.
    $ref: /schemas/types.yaml#/definitions/uint8-array
    minItems: 12
    maxItems: 12
    additionalItems: false
    items:
      enum:
        - 1  # WCD9370_SWRM_CH1
        - 2  # WCD9370_SWRM_CH2
        - 3  # WCD9370_SWRM_CH3
        - 4  # WCD9370_SWRM_CH4

  qcom,rx-channel-mapping:
    description: |
      Specifies static channels mapping between slave and master rx port
      channels.
      In the order of slave port channels, which is
      hph_l, hph_r, clsh, comp_l, comp_r, lo, dsd_r, dsd_l.
    $ref: /schemas/types.yaml#/definitions/uint8-array
    minItems: 8
    maxItems: 8
    additionalItems: false
    items:
      enum:
        - 1  # WCD9370_SWRM_CH1
        - 2  # WCD9370_SWRM_CH2
        - 3  # WCD9370_SWRM_CH3
        - 4  # WCD9370_SWRM_CH4

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    soundwire@3210000 {
        reg = <0x03210000 0x2000>;
        #address-cells = <2>;
        #size-cells = <0>;
        wcd937x_rx: codec@0,4 {
            compatible = "sdw20217010a00";
            reg = <0 4>;
            qcom,rx-port-mapping = <1 2 3 4 5>;
            qcom,rx-channel-mapping = /bits/ 8 <1 2 1 1 2 1 1 2>;
        };
    };
 
    soundwire@3230000 {
        reg = <0x03230000 0x2000>;
        #address-cells = <2>;
        #size-cells = <0>;
        wcd937x_tx: codec@0,3 {
            compatible = "sdw20217010a00";
            reg = <0 3>;
            qcom,tx-port-mapping = <2 2 3 4>;
            qcom,tx-channel-mapping = /bits/ 8 <1 2 1 1 2 3 3 4 1 2 3 4>;
        };
    };

...