[PATCH v9 0/8] ASoC: mediatek: Add support for MT8186 SoC

From: Jiaxin Yu
Date: Tue Jul 12 2022 - 11:11:33 EST


This series of patches adds support for Mediatek AFE of MT8186 Soc.
Patches are based on broonie tree "for-next" branch.

Changes since v8:
- Remove unnecessary comments and blank line.
- Use devm_add_action_or_reset to ease error handling when dev probe.
- Remove .remove callback in plaform driver.

Changes since v7:
- Optimize the code logic, such as the return value and position of a
function.
- Use devm_pm_runtime_enable() instead of pm_runtime_enable().
- Use pm_runtime_resume_and_get() instead of pm_runtime_get_sync().

Changes since v6:
- The Makefile and Kconfig updates are moved into the driver patches so that can
keep independence of each patch.

Changes since v5:
- fix build error about function snd_soc_card_jack_new that modified by:
Link: https://lore.kernel.org/r/20220408041114.6024-1-akihiko.odaki@xxxxxxxxx
- some have been accepted, details are in the link below:
Link: https://lore.kernel.org/all/165459931885.399031.2621579592368573898.b4-ty@xxxxxxxxxx/

Changes since v4:
- [v5 07/20]
- remove unsusd controls
- [v5 09/20]
- correct indent error
- [v5 10/20]
- [v5 13/20]
- [v5 14/20]
- fix the return value if the value is different from the previous
value in mixer controls
- [v5 17/20]
- [v5 19/20]
- correct the compatible name with '_' instead of '-'
- [v5 18/20]
- [v5 20/20]
- correct the yaml after 'pip3 install dtschema --upgrade'

Changes since v3:
- [v4 09/18]
- remove DEBUG_COEFF debugging code
- [v4 10/18]
- simplify the logic of the code
- [v4 13/18]
- split out the MT6366 bits into mt8186-mt6366-commom.c
- fix build error of "error: 'struct dev_pm_info' has no member named 'runtime_error'"
- fix bug of adda dai driver
- add route for pcm interface channel 2.
- [v4 15/18]
- [v4 17/18]
- commonize the configuration of the codec
- move MT6366 common bits into mt8186-mt6366-common.c

Changes since v2:
- add a new compatible string "mediatek,mt6366-sound"
- modify the log level for simplicity
- use dev_err_probe(...) instead of dev_err(...) in dev probe()
- optimized the logic of some code
- use BIT() and GENMASK() macros to descript the registers

Thanks for AngeloGioacchino's careful reviews.

Changes since v1:
[v2 01/17]
- add a new ID to the existing mt6358 codec driver
[v2 03/17]
- modify log level in DAPM events
- use standard numeric control with name ending in Switch
- return 1 when the value changed in mixer control's .get callback
[v2 05/17]
- ending in Switch to the standard on/off controls
- change to "HW Gain 1 Volume" and "HW Gain 2 Volume"
[v2 09/17]
- return an error in the default case rather than just picking one of
the behaviours when do .set_fmt
- use the new defines that are _PROVIDER_MASK, _DAIFMT_CBP_CFP and
_DAIFMT_CBC_CFC
[v2 10/17]
[v2 11/17]
- the clock and gpio are aplit out into separate patches

The source file's GPL comment use c++ style, and the header fils's GPL
comment use c style. We have added "Switch" after the names of all the
controls that just are simple on/off.

Jiaxin Yu (8):
dt-bindings: mediatek: mt6358: add new compatible for using mt6366
ASoC: mediatek: mt8186: add platform driver
ASoC: mediatek: mt8186: add mt8186-mt6366 common driver
dt-bindings: mediatek: mt8186: add audio afe document
ASoC: mediatek: mt8186: add machine driver with mt6366, da7219 and
max98357
dt-bindings: mediatek: mt8186: add mt8186-mt6366-da7219-max98357
document
ASoC: mediatek: mt8186: add machine driver with mt6366, rt1019 and
rt5682s
dt-bindings: mediatek: mt8186: add mt8186-mt6366-rt1019-rt5682s
document

.../devicetree/bindings/sound/mt6358.txt | 4 +-
.../bindings/sound/mt8186-afe-pcm.yaml | 175 +
.../sound/mt8186-mt6366-da7219-max98357.yaml | 75 +
.../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 75 +
sound/soc/mediatek/Kconfig | 44 +
sound/soc/mediatek/Makefile | 1 +
sound/soc/mediatek/mt8186/Makefile | 22 +
sound/soc/mediatek/mt8186/mt8186-afe-clk.c | 3 +-
sound/soc/mediatek/mt8186/mt8186-afe-clk.h | 2 +-
sound/soc/mediatek/mt8186/mt8186-afe-common.h | 235 ++
.../soc/mediatek/mt8186/mt8186-afe-control.c | 255 ++
sound/soc/mediatek/mt8186/mt8186-afe-pcm.c | 3000 +++++++++++++++++
.../mediatek/mt8186/mt8186-mt6366-common.c | 57 +
.../mediatek/mt8186/mt8186-mt6366-common.h | 17 +
.../mt8186/mt8186-mt6366-da7219-max98357.c | 1002 ++++++
.../mt8186/mt8186-mt6366-rt1019-rt5682s.c | 978 ++++++
16 files changed, 5942 insertions(+), 3 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/mt8186-afe-pcm.yaml
create mode 100644 Documentation/devicetree/bindings/sound/mt8186-mt6366-da7219-max98357.yaml
create mode 100644 Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
create mode 100644 sound/soc/mediatek/mt8186/Makefile
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-common.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-control.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-pcm.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-common.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-common.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-da7219-max98357.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c

--
2.18.0