On Thu, May 05, 2022 at 04:59:35PM +0200, Arnd Bergmann wrote: > On Thu, May 5, 2022 at 4:39 PM Mark Brown wrote: > > On Thu, May 05, 2022 at 04:33:06PM +0200, Linus Walleij wrote: > > > On Thu, May 5, 2022 at 8:04 AM Arnd Bergmann wrote: > > > > static struct snd_soc_jack_pin hs_jack_pin[] = { > > > > { > > > > .pin = "Headphone Jack", > > > > .mask = SND_JACK_HEADPHONE, > > > > }, > > > > { > > > > .pin = "Speaker", > > > > /* disable speaker when hp jack is inserted */ > > > > .mask = SND_JACK_HEADPHONE, > > > > .invert = 1, > > > > }, > > > Hm some ASoC thingie. No idea what that is, but I suppose another > > > place where a subsystem for legacy reasons try to do the gpiolib > > > inversion on it's own accord. That one isn't flagged as active low in the > > > descriptor so it's fine I guess. > > It's saying that when the headphone is inserted the headphone output > > should be enabled and the speaker output should be disabled, and vice > > versa. > Ok, that sounds like I should remove the flag here if I declare the > GPIO line as GPIO_ACTIVE_LOW instead of GPIO_ACTIVE_HIGH, right? If you change the sense of the GPIO you'll need to flip the invert to the headphone instead of the speaker - whichever way round the GPIO sense is each of the pins should be taking the opposite sense from the GPIO state to the other.