Commit c6167e10 authored by David Lin's avatar David Lin Committed by Mark Brown

ASoC: nau8825: add set_jack coponment support

Use set_jack ops to set jack for new machine drivers. Meanwhile,
the old machine drivers can still call previous export function
"nau8825_enable_jack_detect".
Signed-off-by: default avatarDavid Lin <CTLIN0@nuvoton.com>
Signed-off-by: default avatarMac Chiang <mac.chiang@intel.com>
Link: https://lore.kernel.org/r/20211025113857.3860951-2-CTLIN0@nuvoton.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 1198ff12
...@@ -1434,6 +1434,12 @@ int nau8825_enable_jack_detect(struct snd_soc_component *component, ...@@ -1434,6 +1434,12 @@ int nau8825_enable_jack_detect(struct snd_soc_component *component,
nau8825->jack = jack; nau8825->jack = jack;
if (!nau8825->jack) {
regmap_update_bits(regmap, NAU8825_REG_HSD_CTRL,
NAU8825_HSD_AUTO_MODE | NAU8825_SPKR_DWN1R |
NAU8825_SPKR_DWN1L, 0);
return 0;
}
/* Ground HP Outputs[1:0], needed for headset auto detection /* Ground HP Outputs[1:0], needed for headset auto detection
* Enable Automatic Mic/Gnd switching reading on insert interrupt[6] * Enable Automatic Mic/Gnd switching reading on insert interrupt[6]
*/ */
...@@ -2416,6 +2422,12 @@ static int __maybe_unused nau8825_resume(struct snd_soc_component *component) ...@@ -2416,6 +2422,12 @@ static int __maybe_unused nau8825_resume(struct snd_soc_component *component)
return 0; return 0;
} }
static int nau8825_set_jack(struct snd_soc_component *component,
struct snd_soc_jack *jack, void *data)
{
return nau8825_enable_jack_detect(component, jack);
}
static const struct snd_soc_component_driver nau8825_component_driver = { static const struct snd_soc_component_driver nau8825_component_driver = {
.probe = nau8825_component_probe, .probe = nau8825_component_probe,
.remove = nau8825_component_remove, .remove = nau8825_component_remove,
...@@ -2430,6 +2442,7 @@ static const struct snd_soc_component_driver nau8825_component_driver = { ...@@ -2430,6 +2442,7 @@ static const struct snd_soc_component_driver nau8825_component_driver = {
.num_dapm_widgets = ARRAY_SIZE(nau8825_dapm_widgets), .num_dapm_widgets = ARRAY_SIZE(nau8825_dapm_widgets),
.dapm_routes = nau8825_dapm_routes, .dapm_routes = nau8825_dapm_routes,
.num_dapm_routes = ARRAY_SIZE(nau8825_dapm_routes), .num_dapm_routes = ARRAY_SIZE(nau8825_dapm_routes),
.set_jack = nau8825_set_jack,
.suspend_bias_off = 1, .suspend_bias_off = 1,
.idle_bias_on = 1, .idle_bias_on = 1,
.use_pmdown_time = 1, .use_pmdown_time = 1,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment