Here is the train of thought that led me to the inverted EAPD conclusion:
(Assume for the sake of discussion that we want to use EAPD, not an
external GPIO)
a) There is a period of time after power up when EAPD is going to be at
the logic low level, because that is the hardware default value, and it
takes absolute minimum 8 mS (longer than the pop time) for me to get the
CPU into a state where it could even think about talking to the CODEC.
b) To eliminate the pop, the amplifier shutdown pin must be in the
shutdown state while power is stabilizing. That is the opposite state
from the EAPD default.
c) Therefore, in order to eliminate the pop yet preserve the normal
sense of EAPD, it would be necessary to have an additional control to
force the amp shutdown state despite the fact that EAPD is telling the
amp to be on. And that control would then have to be turned off after
the software is certain that the EAPD pin has been driven to the
power-down state. Which might require more driver complexity than
inverting.
Jim Gettys wrote:
Let's see if Jaya Kumar has a heart attack ;-).
He can tell us if we're on thin ice, or whether there is infrastructure
in the audio subsystem that will avoid any heartburn.
Jaya? This is best from a hardware standpoint.
- Jim
On Fri, 2007-03-16 at 09:46 -1000, Mitch Bradley wrote:
I have a simple hardware fix for the popping sound that happens on power
up, suspend, and resume. The net component impact is the removal of one
transistor. I have tested this fix and it works.
Details are in http://dev.laptop.org/ticket/977#comment:5
There is a software impact. With this change, in order to get sound
out, it is necessary to assert the EAPD pin on the CODEC. That pin,
deasserted by default, is nominally used to turn off the amp when
asserted. With the change, asserting that pin turns the amp on, not
off. Hardware engineers from Quanta and Analog Devices considered,
without success, several other hardware changes to eliminate that pop.
It boils down to the fact that we have either invert the sense of that
pin, or switch the amp control to an entirely separate GPIO pin on
another device (which are in short supply).
To assert that pin, write 0x8000 to codec register 0x26.
_______________________________________________
Devel mailing list
[email protected]
http://mailman.laptop.org/mailman/listinfo/devel
_______________________________________________
Devel mailing list
[email protected]
http://mailman.laptop.org/mailman/listinfo/devel