JACK_INSERT and HOLD underlying issues

Andy Green andy at openmoko.com
Thu Feb 28 14:10:13 CET 2008

Hash: SHA1

Hi folks -

1) JACK_INSERT is generated using the routing switch in the headphone
socket.  If the headphone is inserted, the level on JACK_INSERT is
simply defined by a 100K pullup to IO_3V3 via a 10K series resistor.

But (according to the schematic symbol for that jack socket) if the
headphone is not inserted, the level on JACK_INSERT is connected through
to EP_R additionally.

EP_R is the right audio amp output.  It has a 1K pulldown on it after a
1uF series capacitor which is in itself OK.  And there is a 10K series
resistor to limit current into the CPU GPIO so it is okay for blowing it
up with the negative voltages found here (although the protection diodes
in the CPU will conduct and distort the audio waveform there slightly).

But I noticed sometimes we wake immediately we sleep.  A possible
explanation seems that if the 1u cap is charged by the amp, maybe it can
discharge through the 1K to GND after a little time and give us an edge
to wake us.

In addition, the Amp can therefore be implicated in any oscillation seen
on JACK_INSERT as reported by, eg, Mickey.

2) HOLD button doesn't seem to work in the situation just the ALSA
modules are loaded, it seems that MICBIAS is needed to be high to detect
HOLD button and it is not high at that time.  I found I can see ~50mV on
the mic line and I can force that to 0V with the HOLD button, I guess
this is all we can see from the 100K pullup which is defeated by the low
resistance (900R I measured back home) across the Mic.  But to do
anything with HOLD we must have MICBIAS powered.  Even then maybe we
don't make enough high level to detect a logic '1' at CPU interrupt
input considering the load of the Mic.

- -Andy
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org


More information about the openmoko-kernel mailing list