[Letux-kernel] twl gpios / headset detect on gta04a5

Andreas Kemnade andreas at kemnade.info
Sun Sep 23 20:28:39 CEST 2018


On Sun, 23 Sep 2018 19:59:39 +0200
"H. Nikolaus Schaller" <hns at goldelico.com> wrote:

> > Am 23.09.2018 um 19:41 schrieb Andreas Kemnade <andreas at kemnade.info>:
> > 
> > On Sun, 23 Sep 2018 19:32:34 +0200
> > "H. Nikolaus Schaller" <hns at goldelico.com> wrote:
> >   
> >> Hi,
> >>   
> >>> Am 23.09.2018 um 18:51 schrieb Andreas Kemnade <andreas at kemnade.info>:
> >>> 
> >>> Hi,
> >>> 
> >>> I am looking at the headset stuff.
> >>> The detection is at gpio492 on gta04a5 if I
> >>> understand everything right.
> >>> I exported that and no reaction there on plugging
> >>> And then I am wondering:
> >>> root at gta04:/sys/class/gpio/gpio492# twl-i2c.sh GPIO r 0x13
> >>> 0x00
> >>> # twl-i2c.sh GPIO r 0x14
> >>> 0x00
> >>> 
> >>> No pullups/downs enabled?!
> >>> Hmm, floating inputs there?!
> >>> 
> >>> twl-i2c.sh GPIO w 0x13 0x20
> >>> 
> >>> does the trick. the exported gpio shows values.  
> >> 
> >> Good finding!
> >>   
> >>> But are the pullup/down
> >>> values correct there?  
> >> 
> >> According to schematics:
> >> 
> >> 	http://projects.goldelico.com/p/gta04-main/downloads/48/
> >> 
> >> there is a 10k from the gpio to the switch and a 10k pull-down.
> >> 
> >> So there should be a pull-up for the gpio to provide energy.  
> > Well, that is one thing. I enabled the pullup using:
> > 
> > twl-i2c.sh GPIO w 0x13 0x20
> > 
> > More interesting are the *other* twl gpio pins. Floating stuff
> > might be there. And therefore unecessary suspend currents.
> >   
> >> 
> >> Then,
> >> - if the headset is connected, the switch is open and the gpio should read "1"
> >> - while a disconnected headset should connect the gpio to gnd through 20k which should be (note, this circuit has never been tested!) read as "0".
> >>   
> > That is wrong. It is tested be my now.  
> 
> Wrong or not working?
> 
It it wrong that it hase never been tested. Value is 0 when headset is
disconnected, 1 when it is connected,
and when there is loud sound and headset is enabled but not connected,
there are sometimes 1 in between.
So the contact seems to an opener.


we are failing here:
sound/soc/soc-jack.c:
                ret = request_any_context_irq(gpiod_to_irq(gpios[i].desc),
                                              gpio_handler,
                                              IRQF_TRIGGER_RISING |
                                              IRQF_TRIGGER_FALLING,
                                              gpios[i].name,
                                              &gpios[i]);

Maybe irq does not work for twl gpio.

Regards,
Andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.goldelico.com/pipermail/letux-kernel/attachments/20180923/9ae6feff/attachment.asc>


More information about the Letux-kernel mailing list