In previous discussion[1], Mark thinks we should have something general pinctrl integration with DAPM. SND_SOC_DAPM_PINCTRL is exactly what we want but I failed to find existing usage (maybe in topology files?).
To be equivalent to mt8183-da7219's original implementation, the 1st patch selects sleep-state at the beginning. The 2nd patch attaches the DAPM widget to playback stream. When the stream is about to start, the power on sequence selects the active-state. When the stream is about to stop, the power off sequence selects the sleep-state.
Note: the DAI links will connect to hdmi-codec, that's why the playback stream name is "I2S Playback". Note: this is a RFC series. If it makes sense, will also apply to mt8183-mt6358.
[1]: https://patchwork.kernel.org/patch/11379735/
Tzung-Bi Shih (2): ASoC: dapm: select sleep_state when initializing PINCTRL widget ASoC: mediatek: mt8183-da7219: use SND_SOC_DAPM_PINCTRL in TDM out
.../mediatek/mt8183/mt8183-da7219-max98357.c | 98 ++----------------- sound/soc/soc-dapm.c | 3 + 2 files changed, 13 insertions(+), 88 deletions(-)