Lines Matching +full:codec +full:- +full:gpio1

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 // Realtek ALC260 codec
10 static int alc260_parse_auto_config(struct hda_codec *codec) in alc260_parse_auto_config() argument
14 return alc_parse_auto_config(codec, alc260_ignore, alc260_ssids); in alc260_parse_auto_config()
34 static void alc260_gpio1_automute(struct hda_codec *codec) in alc260_gpio1_automute() argument
36 struct alc_spec *spec = codec->spec; in alc260_gpio1_automute()
38 alc_update_gpio_data(codec, 0x01, spec->gen.hp_jack_present); in alc260_gpio1_automute()
41 static void alc260_fixup_gpio1_toggle(struct hda_codec *codec, in alc260_fixup_gpio1_toggle() argument
44 struct alc_spec *spec = codec->spec; in alc260_fixup_gpio1_toggle()
47 * toggle GPIO1 according to the jack state in alc260_fixup_gpio1_toggle()
49 spec->gen.automute_hook = alc260_gpio1_automute; in alc260_fixup_gpio1_toggle()
50 spec->gen.detect_hp = 1; in alc260_fixup_gpio1_toggle()
51 spec->gen.automute_speaker = 1; in alc260_fixup_gpio1_toggle()
52 spec->gen.autocfg.hp_pins[0] = 0x0f; /* copy it for automute */ in alc260_fixup_gpio1_toggle()
53 snd_hda_jack_detect_enable_callback(codec, 0x0f, in alc260_fixup_gpio1_toggle()
55 alc_setup_gpio(codec, 0x01); in alc260_fixup_gpio1_toggle()
59 static void alc260_fixup_kn1(struct hda_codec *codec, in alc260_fixup_kn1() argument
62 struct alc_spec *spec = codec->spec; in alc260_fixup_kn1()
81 snd_hda_apply_pincfgs(codec, pincfgs); in alc260_fixup_kn1()
82 spec->init_amp = ALC_INIT_NONE; in alc260_fixup_kn1()
87 static void alc260_fixup_fsc_s7020(struct hda_codec *codec, in alc260_fixup_fsc_s7020() argument
90 struct alc_spec *spec = codec->spec; in alc260_fixup_fsc_s7020()
92 spec->init_amp = ALC_INIT_NONE; in alc260_fixup_fsc_s7020()
95 static void alc260_fixup_fsc_s7020_jwse(struct hda_codec *codec, in alc260_fixup_fsc_s7020_jwse() argument
98 struct alc_spec *spec = codec->spec; in alc260_fixup_fsc_s7020_jwse()
100 spec->gen.add_jack_modes = 1; in alc260_fixup_fsc_s7020_jwse()
101 spec->gen.hp_mic = 1; in alc260_fixup_fsc_s7020_jwse()
205 {.id = ALC260_FIXUP_GPIO1, .name = "gpio1"},
208 {.id = ALC260_FIXUP_FSC_S7020_JWSE, .name = "fujitsu-jwse"},
214 static int alc260_probe(struct hda_codec *codec, const struct hda_device_id *id) in alc260_probe() argument
219 err = alc_alloc_spec(codec, 0x07); in alc260_probe()
223 spec = codec->spec; in alc260_probe()
228 spec->gen.prefer_hp_amp = 1; in alc260_probe()
229 spec->gen.beep_nid = 0x01; in alc260_probe()
231 spec->shutup = alc_eapd_shutup; in alc260_probe()
233 alc_pre_init(codec); in alc260_probe()
235 snd_hda_pick_fixup(codec, alc260_fixup_models, alc260_fixup_tbl, in alc260_probe()
237 snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); in alc260_probe()
240 err = alc260_parse_auto_config(codec); in alc260_probe()
244 if (!spec->gen.no_analog) { in alc260_probe()
250 snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE); in alc260_probe()
255 snd_hda_gen_remove(codec); in alc260_probe()
282 MODULE_DESCRIPTION("Realtek ALC260 HD-audio codec");