Add mediatek codec (MT6359) driver MT6359 support playback and capture feature. On downlink path, it includes three DACs for handset, headset, and lineout path. On unlink path, it includeds three ADCs for main mic, second mic, 3rd mic, and headset mic. By scenario, select *_MUX widget to create damp path. And by select mic_type_mux to choose DMIC/AMIC/.... For example, select these MUX widget to create headset path (1) DAC In Mux --> "Normal Path" (2) HPL Mux --> "Audio Playback" (3) HPR Mux --> "Audio Playback" v2 changes: 1. Move playback_gpio/capture_gpio to the machine driver. 2. Fix mic_type(ACC/DMIC/DCC/DCC_*) at init stage. 3. Move devm_regulor_get to mt6359_platform_driver_probe. 4. Add relulator_disable in remove function. 5. Use stereo controls to the volume control. 6. Use SOC_ENUM_SINGLE_DECL instead of SOC_VALUE_ENUM_SINGLE_DECL. 7. Cleanup unused code. v1 changes: 1.lkml link: https://lkml.org/lkml/2020/3/5/1257 Jiaxin Yu (2): ASoC: mediatek: mt6359: add codec driver dt-bindings: mediatek: mt6359: add codec document .../devicetree/bindings/sound/mt6359.yaml | 68 + sound/soc/codecs/Kconfig | 8 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/mt6359.c | 2966 ++++++++++++++++++++ sound/soc/codecs/mt6359.h | 2653 +++++++++++++++++ 5 files changed, 5697 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/mt6359.yaml create mode 100644 sound/soc/codecs/mt6359.c create mode 100644 sound/soc/codecs/mt6359.h -- 1.8.1.1.dirty