Unverified Commit 4b73a4cd authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: Cleanup MediaTek soundcard machine drivers

Merge series from AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>:

Changes in v5:
 - Cleaned up MT8186 soundcard migration commit which erroneously
   had leftovers from development
 - Changed the mtk_pcm_constraints_data structure to hold pointers
   to snd_pcm_hw_constraint_list, as to really reuse the const data
 - Tested again on all of the listed MTK platforms.

Changes in v4:
 - Rebased over next-20240409
 - Dropped the first 4 patches from v3 as were already picked by Mark
 - Fixed W=1 build issue

Changes in v3:
 - Added audio-routing names in enum in all yaml files
 - Added mention of disallowing old and new properties together in
   commit message of bindings patches
 - Fixed validation errors with sound-card-common.yaml inclusion
   due to missing model property in examples
 - Removed `else` enforcing headset-codec/speaker-codecs requirement
   if xxx-dai-link not present to avoid future commit noise as the
   deprecated statement will disallow deprecated properties as required

Changes in v2:
 - Bindings: Changed link-name/codec/clk-provider to remove `items`
   and leave just the enum
 - Moved .*-dai-link pattern additionalProperties after `type: object`
 - Added ref to sound-card-common.yaml
 - Fixed dai-link-xxx -> xxx-dai-link typo in example comment

This series performs a cleanup of most of the MediaTek AFE drivers and
soundcard machine drivers, reducing code duplication and setting a base
to be consistent with their devicetree bindings, as many of those are
using different properties and nodes for no good reason.

Summarizing:
 - Commonizes functions and ops where possible
 - Adds a common probe mechanism, increasing maintainability of
   soundcard drivers for older MediaTek SoCs
 - Migrates all drivers to support the new bindings
   - Obviously retains compatibility with old device trees
 - Reduces machine-specific parameters hardcoding in drivers
   - Can now set machine-specific params in device tree
   - Uses the `audio-routing` and `dai-link` nodes like some
     other non-MediaTek SoC sound drivers
 - Imposes consistency between MediaTek ASoC machine soundcard
   drivers bindings
 - Reduces code size and greatly reduces the amount of code that
   will be required for newer drivers (retaining compatibility with
   the old bindings was costly in terms of code size, otherwise
   this series would've removed ~1000 more lines, or something
   along that line).

This series was (manually) tested on MT8173, MT8192, MT8195 and MT8186
Chromebooks.

AngeloGioacchino Del Regno (18):
  ASoC: mediatek: Add common machine soundcard driver probe mechanism
  ASoC: mediatek: common: Constify struct mtk_sof_priv
  ASoC: mediatek: mt8188: Migrate to mtk_soundcard_common_probe
  ASoC: mediatek: mt8195: Migrate to mtk_soundcard_common_probe
  ASoC: mediatek: mt8192: Migrate to mtk_soundcard_common_probe
  ASoC: mediatek: mt8186: Migrate to mtk_soundcard_common_probe
  ASoC: mediatek: Add common snd_soc_ops .startup() callback
  ASoC: mediatek: mt8195: Migrate to the common mtk_soundcard_startup
  ASoC: mediatek: mt8192: Migrate to the common mtk_soundcard_startup
  ASoC: mediatek: mt8186-rt1019: Migrate to the common
    mtk_soundcard_startup
  ASoC: mediatek: Add common mtk_afe_component_probe callback
  ASoC: mediatek: Use common mtk_afe_pcm_platform with common probe cb
  ASoC: mediatek: mt8186: Unify mt8186-mt6366 machine drivers
  ASoC: dt-bindings: mt8195: Document audio-routing and dai-link subnode
  ASoC: dt-bindings: mt8192: Document audio-routing and dai-link subnode
  ASoC: dt-bindings: mt8186: Document audio-routing and dai-link subnode
  arm64: dts: mediatek: mt8195-cherry: Specify sound DAI links and
    routing
  arm64: dts: mediatek: mt8186-corsola: Specify sound DAI links and
    routing

 .../sound/mt8186-mt6366-da7219-max98357.yaml  |  131 +-
 .../sound/mt8186-mt6366-rt1019-rt5682s.yaml   |  120 +-
 .../sound/mt8192-mt6359-rt1015-rt5682.yaml    |  139 +-
 .../bindings/sound/mt8195-mt6359.yaml         |  134 ++
 .../boot/dts/mediatek/mt8186-corsola.dtsi     |   42 +-
 .../boot/dts/mediatek/mt8195-cherry.dtsi      |   45 +
 sound/soc/mediatek/Kconfig                    |   24 +-
 .../mediatek/common/mtk-afe-platform-driver.c |   18 +
 .../soc/mediatek/common/mtk-dsp-sof-common.c  |   15 +-
 .../soc/mediatek/common/mtk-dsp-sof-common.h  |    1 -
 sound/soc/mediatek/common/mtk-soc-card.h      |    7 +-
 .../mediatek/common/mtk-soundcard-driver.c    |  199 +++
 .../mediatek/common/mtk-soundcard-driver.h    |   42 +
 sound/soc/mediatek/mt6797/mt6797-afe-pcm.c    |   14 +-
 sound/soc/mediatek/mt7986/mt7986-afe-pcm.c    |   14 +-
 sound/soc/mediatek/mt8183/mt8183-afe-pcm.c    |   14 +-
 sound/soc/mediatek/mt8186/Makefile            |    3 +-
 .../mt8186/mt8186-mt6366-da7219-max98357.c    | 1189 -----------------
 ...t6366-rt1019-rt5682s.c => mt8186-mt6366.c} |  578 ++++----
 sound/soc/mediatek/mt8188/mt8188-afe-pcm.c    |   21 +-
 sound/soc/mediatek/mt8188/mt8188-mt6359.c     |  203 +--
 sound/soc/mediatek/mt8192/mt8192-afe-pcm.c    |   25 +-
 .../mt8192/mt8192-mt6359-rt1015-rt5682.c      |  301 ++---
 sound/soc/mediatek/mt8195/mt8195-afe-pcm.c    |   21 +-
 sound/soc/mediatek/mt8195/mt8195-mt6359.c     |  487 +++----
 25 files changed, 1597 insertions(+), 2190 deletions(-)
 delete mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-da7219-max98357.c
 rename sound/soc/mediatek/mt8186/{mt8186-mt6366-rt1019-rt5682s.c => mt8186-mt6366.c} (72%)

--
2.44.0
parents 58300f8d 787f190c
Loading
Loading
Loading
Loading
+122 −9
Original line number Diff line number Diff line
@@ -12,17 +12,46 @@ maintainers:
description:
  This binding describes the MT8186 sound card.

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

properties:
  compatible:
    enum:
      - mediatek,mt8186-mt6366-da7219-max98357-sound

  audio-routing:
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
    description:
      A list of the connections between audio components. Each entry is a
      pair of strings, the first being the connection's sink, the second
      being the connection's source.
      Valid names could be the input or output widgets of audio components,
      power supplies, MicBias of codec and the software switch.
    minItems: 2
    items:
      enum:
        # Sinks
        - HDMI1
        - Headphones
        - Line Out
        - MIC
        - Speakers

        # Sources
        - Headset Mic
        - HPL
        - HPR
        - Speaker
        - TX

  mediatek,platform:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: The phandle of MT8186 ASoC platform.

  headset-codec:
    type: object
    deprecated: true
    additionalProperties: false
    properties:
      sound-dai:
@@ -32,6 +61,7 @@ properties:

  playback-codecs:
    type: object
    deprecated: true
    additionalProperties: false
    properties:
      sound-dai:
@@ -53,32 +83,115 @@ properties:
      A list of the desired dai-links in the sound card. Each entry is a
      name defined in the machine driver.

patternProperties:
  ".*-dai-link$":
    type: object
    additionalProperties: false
    description:
      Container for dai-link level properties and CODEC sub-nodes.

    properties:
      link-name:
        description: Indicates dai-link name and PCM stream name
        items:
          enum:
            - I2S0
            - I2S1
            - I2S2
            - I2S3

      codec:
        description: Holds subnode which indicates codec dai.
        type: object
        additionalProperties: false
        properties:
          sound-dai:
            minItems: 1
            maxItems: 2
        required:
          - sound-dai

      dai-format:
        description: audio format
        items:
          enum:
            - i2s
            - right_j
            - left_j
            - dsp_a
            - dsp_b

      mediatek,clk-provider:
        $ref: /schemas/types.yaml#/definitions/string
        description: Indicates dai-link clock master.
        items:
          enum:
            - cpu
            - codec

    required:
      - link-name

unevaluatedProperties: false

required:
  - compatible
  - mediatek,platform
  - headset-codec
  - playback-codecs

# Disallow legacy properties if xxx-dai-link nodes are specified
if:
  not:
    patternProperties:
      ".*-dai-link$": false
then:
  properties:
    headset-codec: false
    speaker-codecs: false

examples:
  - |

    sound: mt8186-sound {
        compatible = "mediatek,mt8186-mt6366-da7219-max98357-sound";
        mediatek,platform = <&afe>;
        model = "mt8186_da7219_m98357";
        pinctrl-names = "aud_clk_mosi_off",
                        "aud_clk_mosi_on";
        pinctrl-0 = <&aud_clk_mosi_off>;
        pinctrl-1 = <&aud_clk_mosi_on>;
        mediatek,platform = <&afe>;

        headset-codec {
        audio-routing =
                "Headphones", "HPL",
                "Headphones", "HPR",
                "MIC", "Headset Mic",
                "Speakers", "Speaker",
                "HDMI1", "TX";

        hs-playback-dai-link {
                link-name = "I2S0";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&da7219>;
                };
        };

        playback-codecs {
            sound-dai = <&anx_bridge_dp>,
                        <&max98357a>;
        hs-capture-dai-link {
                link-name = "I2S1";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&da7219>;
                };
        };

        spk-dp-playback-dai-link {
                link-name = "I2S3";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&anx_bridge_dp>, <&max98357a>;
                };
        };
    };

+111 −9
Original line number Diff line number Diff line
@@ -12,6 +12,9 @@ maintainers:
description:
  This binding describes the MT8186 sound card.

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

properties:
  compatible:
    enum:
@@ -19,6 +22,34 @@ properties:
      - mediatek,mt8186-mt6366-rt5682s-max98360-sound
      - mediatek,mt8186-mt6366-rt5650-sound

  audio-routing:
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
    description:
      A list of the connections between audio components. Each entry is a
      pair of strings, the first being the connection's sink, the second
      being the connection's source.
      Valid names could be the input or output widgets of audio components,
      power supplies, MicBias of codec and the software switch.
    minItems: 2
    items:
      enum:
        # Sinks
        - HDMI1
        - Headphone
        - IN1P
        - IN1N
        - Line Out
        - Speakers

        # Sources
        - Headset Mic
        - HPOL
        - HPOR
        - Speaker
        - SPOL
        - SPOR
        - TX

  mediatek,platform:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: The phandle of MT8186 ASoC platform.
@@ -32,6 +63,7 @@ properties:

  headset-codec:
    type: object
    deprecated: true
    additionalProperties: false
    properties:
      sound-dai:
@@ -41,6 +73,7 @@ properties:

  playback-codecs:
    type: object
    deprecated: true
    additionalProperties: false
    properties:
      sound-dai:
@@ -62,13 +95,56 @@ properties:
      A list of the desired dai-links in the sound card. Each entry is a
      name defined in the machine driver.

patternProperties:
  ".*-dai-link$":
    type: object
    additionalProperties: false
    description:
      Container for dai-link level properties and CODEC sub-nodes.

    properties:
      link-name:
        description: Indicates dai-link name and PCM stream name
        enum: [ I2S0, I2S1, I2S2, I2S3 ]

      codec:
        description: Holds subnode which indicates codec dai.
        type: object
        additionalProperties: false
        properties:
          sound-dai:
            minItems: 1
            maxItems: 2
        required:
          - sound-dai

      dai-format:
        description: audio format
        enum: [ i2s, right_j, left_j, dsp_a, dsp_b ]

      mediatek,clk-provider:
        $ref: /schemas/types.yaml#/definitions/string
        description: Indicates dai-link clock master.
        enum: [ cpu, codec ]

    required:
      - link-name

unevaluatedProperties: false

required:
  - compatible
  - mediatek,platform
  - headset-codec
  - playback-codecs

# Disallow legacy properties if xxx-dai-link nodes are specified
if:
  not:
    patternProperties:
      ".*-dai-link$": false
then:
  properties:
    headset-codec: false
    speaker-codecs: false

examples:
  - |
@@ -76,23 +152,49 @@ examples:

    sound: mt8186-sound {
        compatible = "mediatek,mt8186-mt6366-rt1019-rt5682s-sound";
        mediatek,platform = <&afe>;
        model = "mt8186_rt1019_rt5682s";
        pinctrl-names = "aud_clk_mosi_off",
                        "aud_clk_mosi_on",
                        "aud_gpio_dmic_sec";
        pinctrl-0 = <&aud_clk_mosi_off>;
        pinctrl-1 = <&aud_clk_mosi_on>;
        pinctrl-2 = <&aud_gpio_dmic_sec>;
        mediatek,platform = <&afe>;

        dmic-gpios = <&pio 23 GPIO_ACTIVE_HIGH>;

        headset-codec {
            sound-dai = <&rt5682s>;
        audio-routing =
                "Headphone", "HPOL",
                "Headphone", "HPOR",
                "IN1P", "Headset Mic",
                "Speakers", "Speaker",
                "HDMI1", "TX";

        hs-playback-dai-link {
                link-name = "I2S0";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&rt5682s 0>;
                };
        };

        playback-codecs {
             sound-dai = <&it6505dptx>,
                         <&rt1019p>;
        hs-capture-dai-link {
                link-name = "I2S1";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&rt5682s 0>;
                };
        };

        spk-hdmi-playback-dai-link {
                link-name = "I2S3";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&it6505dptx>, <&rt1019p>;
                };
        };
    };

+129 −10
Original line number Diff line number Diff line
@@ -13,6 +13,9 @@ maintainers:
description:
  This binding describes the MT8192 sound card.

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

properties:
  compatible:
    enum:
@@ -20,6 +23,31 @@ properties:
      - mediatek,mt8192_mt6359_rt1015p_rt5682
      - mediatek,mt8192_mt6359_rt1015p_rt5682s

  audio-routing:
    description:
      A list of the connections between audio components. Each entry is a
      pair of strings, the first being the connection's sink, the second
      being the connection's source.
      Valid names could be the input or output widgets of audio components,
      power supplies, MicBias of codec and the software switch.
    minItems: 2
    items:
      enum:
        # Sinks
        - Speakers
        - Headphone Jack
        - IN1P
        - Left Spk
        - Right Spk

        # Sources
        - Headset Mic
        - HPOL
        - HPOR
        - Left SPO
        - Right SPO
        - Speaker

  mediatek,platform:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: The phandle of MT8192 ASoC platform.
@@ -27,10 +55,12 @@ properties:
  mediatek,hdmi-codec:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: The phandle of HDMI codec.
    deprecated: true

  headset-codec:
    type: object
    additionalProperties: false
    deprecated: true

    properties:
      sound-dai:
@@ -41,6 +71,7 @@ properties:
  speaker-codecs:
    type: object
    additionalProperties: false
    deprecated: true

    properties:
      sound-dai:
@@ -51,33 +82,121 @@ properties:
    required:
      - sound-dai

patternProperties:
  ".*-dai-link$":
    type: object
    additionalProperties: false

    description:
      Container for dai-link level properties and CODEC sub-nodes.

    properties:
      link-name:
        description: Indicates dai-link name and PCM stream name
        enum:
          - I2S0
          - I2S1
          - I2S2
          - I2S3
          - I2S4
          - I2S5
          - I2S6
          - I2S7
          - I2S8
          - I2S9
          - TDM

      codec:
        description: Holds subnode which indicates codec dai.
        type: object
        additionalProperties: false
        properties:
          sound-dai:
            minItems: 1
            maxItems: 2
        required:
          - sound-dai

      dai-format:
        description: audio format
        enum: [ i2s, right_j, left_j, dsp_a, dsp_b ]

      mediatek,clk-provider:
        $ref: /schemas/types.yaml#/definitions/string
        description: Indicates dai-link clock master.
        enum: [ cpu, codec ]

    required:
      - link-name

unevaluatedProperties: false

required:
  - compatible
  - mediatek,platform
  - headset-codec
  - speaker-codecs

# Disallow legacy properties if xxx-dai-link nodes are specified
if:
  not:
    patternProperties:
      ".*-dai-link$": false
then:
  properties:
    headset-codec: false
    speaker-codecs: false
    mediatek,hdmi-codec: false

examples:
  - |

    sound: mt8192-sound {
        compatible = "mediatek,mt8192_mt6359_rt1015_rt5682";
        mediatek,platform = <&afe>;
        mediatek,hdmi-codec = <&anx_bridge_dp>;
        model = "mt8192_mt6359_rt1015_rt5682";
        pinctrl-names = "aud_clk_mosi_off",
                        "aud_clk_mosi_on";
        pinctrl-0 = <&aud_clk_mosi_off>;
        pinctrl-1 = <&aud_clk_mosi_on>;
        mediatek,platform = <&afe>;

        headset-codec {
            sound-dai = <&rt5682>;
        audio-routing =
                "Headphone Jack", "HPOL",
                "Headphone Jack", "HPOR",
                "IN1P", "Headset Mic",
                "Speakers", "Speaker";

        spk-playback-dai-link {
                link-name = "I2S3";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&rt1015p>;
                };
        };

        hs-playback-dai-link {
                link-name = "I2S8";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&rt5682 0>;
                };
        };

        speaker-codecs {
            sound-dai = <&rt1015_l>,
                        <&rt1015_r>;
        hs-capture-dai-link {
                link-name = "I2S9";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&rt5682 0>;
                };
        };

        displayport-dai-link {
                link-name = "TDM";
                dai-format = "dsp_a";
                codec {
                        sound-dai = <&anx_bridge_dp>;
                };
        };
    };

+134 −0
Original line number Diff line number Diff line
@@ -12,6 +12,9 @@ maintainers:
description:
  This binding describes the MT8195 sound card.

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

properties:
  compatible:
    enum:
@@ -23,6 +26,33 @@ properties:
    $ref: /schemas/types.yaml#/definitions/string
    description: User specified audio sound card name

  audio-routing:
    description:
      A list of the connections between audio components. Each entry is a
      pair of strings, the first being the connection's sink, the second
      being the connection's source.
      Valid names could be the input or output widgets of audio components,
      power supplies, MicBias of codec and the software switch.
    minItems: 2
    items:
      enum:
        # Sinks
        - Ext Spk
        - Headphone
        - IN1P
        - Left Spk
        - Right Spk

        # Sources
        - Headset Mic
        - HPOL
        - HPOR
        - Left BE_OUT
        - Left SPO
        - Right BE_OUT
        - Right SPO
        - Speaker

  mediatek,platform:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: The phandle of MT8195 ASoC platform.
@@ -30,10 +60,12 @@ properties:
  mediatek,dptx-codec:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: The phandle of MT8195 Display Port Tx codec node.
    deprecated: true

  mediatek,hdmi-codec:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: The phandle of MT8195 HDMI codec node.
    deprecated: true

  mediatek,adsp:
    $ref: /schemas/types.yaml#/definitions/phandle
@@ -45,20 +77,122 @@ properties:
      A list of the desired dai-links in the sound card. Each entry is a
      name defined in the machine driver.

patternProperties:
  ".*-dai-link$":
    type: object
    additionalProperties: false
    description:
      Container for dai-link level properties and CODEC sub-nodes.

    properties:
      link-name:
        description: Indicates dai-link name and PCM stream name
        enum:
          - DPTX_BE
          - ETDM1_IN_BE
          - ETDM2_IN_BE
          - ETDM1_OUT_BE
          - ETDM2_OUT_BE
          - ETDM3_OUT_BE
          - PCM1_BE

      codec:
        description: Holds subnode which indicates codec dai.
        type: object
        additionalProperties: false
        properties:
          sound-dai:
            minItems: 1
            maxItems: 2
        required:
          - sound-dai

      dai-format:
        description: audio format
        enum: [ i2s, right_j, left_j, dsp_a, dsp_b ]

      mediatek,clk-provider:
        $ref: /schemas/types.yaml#/definitions/string
        description: Indicates dai-link clock master.
        enum: [ cpu, codec ]

    required:
      - link-name

additionalProperties: false

required:
  - compatible
  - mediatek,platform

# Disallow legacy properties if xxx-dai-link nodes are specified
if:
  not:
    patternProperties:
      ".*-dai-link$": false
then:
  properties:
    mediatek,dptx-codec: false
    mediatek,hdmi-codec: false

examples:
  - |

    sound: mt8195-sound {
        compatible = "mediatek,mt8195_mt6359_rt1019_rt5682";
        model = "mt8195_r1019_5682";
        mediatek,platform = <&afe>;
        pinctrl-names = "default";
        pinctrl-0 = <&aud_pins_default>;

        audio-routing =
                "Headphone", "HPOL",
                "Headphone", "HPOR",
                "IN1P", "Headset Mic",
                "Ext Spk", "Speaker";

        mm-dai-link {
                link-name = "ETDM1_IN_BE";
                mediatek,clk-provider = "cpu";
        };

        hs-playback-dai-link {
                link-name = "ETDM1_OUT_BE";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&headset_codec>;
                };
        };

        hs-capture-dai-link {
                link-name = "ETDM2_IN_BE";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&headset_codec>;
                };
        };

        spk-playback-dai-link {
                link-name = "ETDM2_OUT_BE";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&spk_amplifier>;
                };
        };

        hdmi-dai-link {
                link-name = "ETDM3_OUT_BE";
                codec {
                        sound-dai = <&hdmi_tx>;
                };
        };

        displayport-dai-link {
                link-name = "DPTX_BE";
                codec {
                        sound-dai = <&dp_tx>;
                };
        };
    };

...
+4 −20
Original line number Diff line number Diff line
@@ -185,27 +185,11 @@ config SND_SOC_MT8186
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8186_MT6366_DA7219_MAX98357
	tristate "ASoC Audio driver for MT8186 with DA7219 MAX98357A codec"
config SND_SOC_MT8186_MT6366
	tristate "ASoC Audio driver for MT8186 with MT6366 and I2S codecs"
	depends on I2C && GPIOLIB
	depends on SND_SOC_MT8186 && MTK_PMIC_WRAP
	select SND_SOC_MT6358
	select SND_SOC_MAX98357A
	select SND_SOC_DA7219
	select SND_SOC_BT_SCO
	select SND_SOC_DMIC
	select SND_SOC_HDMI_CODEC
	help
	  This adds ASoC driver for Mediatek MT8186 boards
	  with the MT6366(MT6358) DA7219 MAX98357A codecs.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8186_MT6366_RT1019_RT5682S
	tristate "ASoC Audio driver for MT8186 with RT1019 RT5682S MAX98357A/MAX98360 codec"
	depends on I2C && GPIOLIB
	depends on SND_SOC_MT8186 && MTK_PMIC_WRAP
	select SND_SOC_MAX98357A
	select SND_SOC_MT6358
	select SND_SOC_MAX98357A
	select SND_SOC_RT1015P
@@ -215,8 +199,8 @@ config SND_SOC_MT8186_MT6366_RT1019_RT5682S
	select SND_SOC_DMIC
	select SND_SOC_HDMI_CODEC
	help
	  This adds ASoC driver for Mediatek MT8186 boards
	  with the MT6366(MT6358) RT1019 RT5682S codecs.
	  This adds the ASoC machine driver for Mediatek MT8186 boards
	  with the MT6366(MT6358) and other I2S audio codecs.
	  Select Y if you have such device.
	  If unsure select "N".

Loading