r5491 - trunk/gta02-core/docs/ecn
werner at docs.openmoko.org
werner at docs.openmoko.org
Thu Aug 20 07:14:38 CEST 2009
Author: werner
Date: 2009-08-20 07:14:37 +0200 (Thu, 20 Aug 2009)
New Revision: 5491
Modified:
trunk/gta02-core/docs/ecn/STATUS
trunk/gta02-core/docs/ecn/ecn0015.txt
trunk/gta02-core/docs/ecn/ecn0031.txt
Log:
- ECN0031 (codec interrupt): added details of the conversion
- ECN0031: moved to "Discuss"
- ECN0015 (Calypso backdoor removal): we remove(d) R4405, not R4408
- ECN0015: "to do", removal of remaining bits, has been done as well
- ECN0015: clarified that R4405/7 aren't dead yet, just 0R.
Modified: trunk/gta02-core/docs/ecn/STATUS
===================================================================
--- trunk/gta02-core/docs/ecn/STATUS 2009-08-19 22:13:47 UTC (rev 5490)
+++ trunk/gta02-core/docs/ecn/STATUS 2009-08-20 05:14:37 UTC (rev 5491)
@@ -30,7 +30,7 @@
0028 Cancel Remove USB "charge path" power switch U4905
0029 Discuss Move 0R resistors next to PMU after caps
0030 Edit Replace Calypso with Telit GE865
-0031 Edit Use codec to detect jack insertion and HOLD button
+0031 Discuss Use codec to detect jack insertion and HOLD button
Open ECNs
Modified: trunk/gta02-core/docs/ecn/ecn0015.txt
===================================================================
--- trunk/gta02-core/docs/ecn/ecn0015.txt 2009-08-19 22:13:47 UTC (rev 5490)
+++ trunk/gta02-core/docs/ecn/ecn0015.txt 2009-08-20 05:14:37 UTC (rev 5491)
@@ -5,13 +5,13 @@
Changes:
- removed U4401
-- removed R4407 and R4408, these resistors probably keept the input signal from
- shorting through the amplifier, so there is no need for them anymore.
+- changed R4407 and R4405 from 33 Ohm to 0 Ohm. These resistors probably kept
+ the input signal from shorting through the amplifier, so there is no need
+ for them anymore. (Remove them completely ?)
- removed TP4405/4406
- removed R4403, pulldown resistor for U4401 enable lines
+- remove R4411 and TP4402/4401 as well
-To do:
-- depending on Calypso replacement we might want to keep/remove R4411 and TP4402/4401 as well
-
Author: Rene Harder <rehar at saweb.de>
+Review: Werner Almesberger <werner at openmoko.org>, SVN 5490
Modified: trunk/gta02-core/docs/ecn/ecn0031.txt
===================================================================
--- trunk/gta02-core/docs/ecn/ecn0031.txt 2009-08-19 22:13:47 UTC (rev 5490)
+++ trunk/gta02-core/docs/ecn/ecn0031.txt 2009-08-20 05:14:37 UTC (rev 5491)
@@ -4,14 +4,43 @@
The Wolfson WM8753L has the ability to detect jack insertion and pressing
the HOLD button (MIC bias short-circuit).
-Rough outline:
-- HOLD seems to be internal, ok
-- route JACK_INSERT to the codec (GPIO4), not the CPU
+Outline (based on Joerg's "mega-ECN"):
+
+- HOLD is detected inside the codec:
+ - remove R4410, R1531
+ - remove nHOLD net
+ - free EINT7
+- route JACK_INSERT to the codec, not the CPU:
+ - remove R4406
+ - disconnect R1532 from the JACK_INSERT net
+ - connect JACK_INSERT to a new 10 kOhm series resistor (To protect codec
+ against negative transients from the output capacitors. The name R4402
+ is available.)
+ - connect the other end of R4402 to the codec's GPIO4
- route codec IRQ (GP1) to CPU
+ - name net CODEC_IRQ
+ - connect codec GP1 to R1532
+ - EINT4 is now CODEC_IRQ, not JACK_INSERT
-Q: how do we distinguish multiple interrupt sources ? Mask and see if
-the interrupt persists ? Or would we have to upgrade to a 3-wire interface
-so that we could read data back ? (Seems too intrusive.)
+Q: how do we distinguish multiple interrupt sources ?
+A: Mask and see if the interrupt persists.
+again:
+ HPSWIEN = 0; /* mask jack insert */
+ /* assume active-low */
+ if (gpio_get_value(CODEC_INT)) {
+ /* interrupt went away - it's JACK_INSERT */
+ HPSWIPOL = !HPSWIPOL;
+ } else {
+ /* interrupt is still pending - it's HOLD */
+ MICSHTEN = 0;
+ MICSHTPOL = !MICSHTPOL;
+ MICSHTEN = 1;
+ }
+ HPSWIEN = 1;
+ /* more than one source or new interrupt */
+ if (!gpio_get_value(CODEC_INT))
+ goto again;
+
Author: Werner Almesberger <werner at openmoko.org>
More information about the commitlog
mailing list