Documentation / devicetree / bindings / sound / google,sc7280-herobrine.yaml


Based on kernel version 6.10. Page generated on 2024-07-16 09:00 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 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/google,sc7280-herobrine.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Google SC7280-Herobrine ASoC sound card driver

maintainers:
  - Judy Hsiao <judyhsiao@chromium.org>

description:
  This binding describes the SC7280 sound card which uses LPASS for audio.

allOf:
  - $ref: sound-card-common.yaml#

properties:
  compatible:
    enum:
      - google,sc7280-herobrine
 
  "#address-cells":
    const: 1
 
  "#size-cells":
    const: 0

patternProperties:
  "^dai-link@[0-9a-f]$":
    description:
      Each subnode represents a dai link. Subnodes of each dai links would be
      cpu/codec dais.

    type: object

    properties:
      link-name:
        description: Indicates dai-link name and PCM stream name.
        $ref: /schemas/types.yaml#/definitions/string
        maxItems: 1

      reg:
        maxItems: 1
        description: dai link address.

      cpu:
        description: Holds subnode which indicates cpu dai.
        type: object
        properties:
          sound-dai: true

        required:
          - sound-dai

        additionalProperties: false

      codec:
        description: Holds subnode which indicates codec dai.
        type: object
        properties:
          sound-dai: true

        required:
          - sound-dai

        additionalProperties: false

      platform:
        description: Holds subnode which includes the phandle of q6apm platform device.
        type: object
        properties:
          sound-dai:
            maxItems: 1

        required:
          - sound-dai

        additionalProperties: false

    required:
      - link-name
      - cpu
      - codec
      - reg

    additionalProperties: false

required:
  - compatible
  - "#address-cells"
  - "#size-cells"

unevaluatedProperties: false

examples:

  - |
    #include <dt-bindings/sound/qcom,lpass.h>
    sound {
        compatible = "google,sc7280-herobrine";
        model = "sc7280-wcd938x-max98360a-4dmic";
 
        audio-routing =
            "IN1_HPHL", "HPHL_OUT",
            "IN2_HPHR", "HPHR_OUT",
            "AMIC1", "MIC BIAS1",
            "AMIC2", "MIC BIAS2",
            "VA DMIC0", "MIC BIAS3",
            "VA DMIC1", "MIC BIAS3",
            "VA DMIC2", "MIC BIAS4",
            "VA DMIC3", "MIC BIAS4",
            "TX SWR_ADC0", "ADC1_OUTPUT",
            "TX SWR_ADC1", "ADC2_OUTPUT",
            "TX SWR_ADC2", "ADC3_OUTPUT",
            "TX SWR_DMIC0", "DMIC1_OUTPUT",
            "TX SWR_DMIC1", "DMIC2_OUTPUT",
            "TX SWR_DMIC2", "DMIC3_OUTPUT",
            "TX SWR_DMIC3", "DMIC4_OUTPUT";
 
        #address-cells = <1>;
        #size-cells = <0>;
 
        dai-link@0 {
            link-name = "WCD Playback";
            reg = <LPASS_CDC_DMA_RX0>;
            cpu {
                sound-dai = <&lpass_cpu LPASS_CDC_DMA_RX0>;
            };
 
            codec {
                sound-dai = <&wcd938x 0>, <&swr0 0>, <&rxmacro 0>;
            };
        };
        dai-link@1 {
            link-name = "WCD Capture";
            reg = <LPASS_CDC_DMA_TX3>;
            cpu {
                sound-dai = <&lpass_cpu LPASS_CDC_DMA_TX3>;
            };
 
            codec {
                sound-dai = <&wcd938x 1>, <&swr1 0>, <&txmacro 0>;
            };
        };
 
        dai-link@2 {
            link-name = "MI2S Playback";
            reg = <MI2S_SECONDARY>;
            cpu {
                sound-dai = <&lpass_cpu MI2S_SECONDARY>;
            };
 
            codec {
                sound-dai = <&max98360a>;
            };
        };
 
        dai-link@3 {
            link-name = "DMIC Capture";
            reg = <LPASS_CDC_DMA_VA_TX0>;
            cpu {
                sound-dai = <&lpass_cpu LPASS_CDC_DMA_VA_TX0>;
            };
 
            codec {
                sound-dai = <&vamacro 0>;
            };
        };
 
        dai-link@5 {
            link-name = "DP Playback";
            reg = <LPASS_DP_RX>;
            cpu {
                sound-dai = <&lpass_cpu LPASS_DP_RX>;
            };
 
            codec {
                sound-dai = <&mdss_dp>;
            };
        };
    };