summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Almesberger <werner@almesberger.net>2016-12-26 14:40:40 (GMT)
committerWerner Almesberger <werner@almesberger.net>2016-12-26 14:40:40 (GMT)
commite6d8a699f774e78d97d3d99195e7c81f56b308ef (patch)
tree09458e4272e7c549edded74fb00c3740481dc030
parent62e454df3e533adcf3f61259155a5cd45432a2fa (diff)
downloadmisc-e6d8a699f774e78d97d3d99195e7c81f56b308ef.zip
misc-e6d8a699f774e78d97d3d99195e7c81f56b308ef.tar.gz
misc-e6d8a699f774e78d97d3d99195e7c81f56b308ef.tar.bz2
iox/iox.tex, n900.map: show signal names for BD and schematics (WIP); update HB
-rw-r--r--iox/iox.tex186
-rw-r--r--iox/n900.map17
2 files changed, 101 insertions, 102 deletions
diff --git a/iox/iox.tex b/iox/iox.tex
index e9e11e7..932f110 100644
--- a/iox/iox.tex
+++ b/iox/iox.tex
@@ -525,7 +525,7 @@ shown in grey.
The following sections contain a classification of all signals that can
connect either to an IO expander or the CPU. The names of function blocks
and signals are those used in the Neo900 block diagram \cite{BD} unless
-noted otherwise.
+noted otherwise. Signal names are given for block diagram and schematics.
We classify speed requirements in the following thee categories:
\begin{description}
@@ -567,8 +567,9 @@ signals have to be decided on a case-by-case basis.
\newenvironment{ioxgen}[2]%
- {\begin{savenotes}\begin{tabular}{llll}%
- Function#1 & Signal#2 & Type & Speed \\
+ {\begin{savenotes}\begin{tabular}{l|ll|ll}%
+ Function#1 & \multicolumn{2}{l|}{Signal#2} & Type & Speed \\
+ & (block) & (schematics) \\
\hline\rule{0pt}{12pt}\ignorespaces}%
{\end{tabular}\end{savenotes}}
@@ -577,8 +578,9 @@ signals have to be decided on a case-by-case basis.
{\end{ioxgen}}
\newenvironment{ioxaltgen}%
- {\begin{savenotes}\begin{tabular}{llll}%
- Function & Signal & Connected to $\ldots$ \\
+ {\begin{savenotes}\begin{tabular}{l|ll|l}%
+ Function & \multicolumn{2}{l|}{Signal} & Connected to $\ldots$ \\
+ & (block) & (schematics) \\
\hline\rule{0pt}{12pt}\ignorespaces}%
{\end{tabular}\end{savenotes}}
@@ -596,9 +598,9 @@ Battery charger and fuel gauge have a small number of configuration and
status signals, all of which are low-speed.
\begin{ioxdef}
- Batt charger & INT & interrupt & slow \\
- & OTG & output & slow \\
- Fuel gauge & GPOUT & input/output & slow \\
+ Batt charger & INT & CHG\_INT & interrupt & slow \\
+ & OTG & CHG\_OTG & output & slow \\
+ Fuel gauge & GPOUT & BQ\_GPOUT & input/output & slow\\
\end{ioxdef}
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -610,30 +612,30 @@ the user. Most of them should tolerate a moderate amount of latency.
Exceptions are discussed below.
\begin{ioxdef}
- Lock & SCREEN\_LCK & interrupt & slow \\
- Slide mag. sensor & SLIDE\_SW & interrupt & slow \\
- Capture & CAM\_CAP$[0]$ & interrupt & slow \\
- & CAM\_CAP$[1]$ & interrupt & medium \\
- Cam cover & cam\_d11 & interrupt & slow \\
- Stylus & stylus & interrupt & slow \\
- Kbd scan & KEYIRQ & interrupt & medium%
+ Lock & SCREEN\_LCK & SCREEN\_LOCK & interrupt & slow \\
+ Slide mag. sensor & SLIDE\_SW & SLIDE\_SW & interrupt & slow \\
+ Capture & CAM\_CAP$[0]$ & CAM\_CAP\_1 & interrupt & slow \\
+ & CAM\_CAP$[1]$ & CAM\_CAP\_2 & interrupt & medium \\
+ Cam cover & cam\_d11 & CAM\_COVER\_INT & interrupt & slow \\
+ Stylus & stylus & STYLUS\_INT & interrupt & slow \\
+ Kbd scan & KEYIRQ & KEYIRQ & interrupt & medium%
\footnote{The minimum debounce time is 25~ms (section 8.6.2.15 of
\cite{TCA818}), the maximum debounce time is 60~ms (section 6.9).} \\
- & RESET & output & slow%
+ & RESET & & output & slow%
\footnote{The minimum reset pulse duration is 120~$\mu$s, time to perform
a reset is also 120~$\mu$s (section 6.7 of \cite{TCA818}).} \\
- 3.5 mm & HEADPH\_IND & interrupt & slow \\
- & MIC\_nPRESENT\sch & interrupt & slow \\
- Batt. lid mag. & BAT\_LID & interrupt & slow \\
- uSD card & CD & interrupt & slow \\
- Touch scrn ctrl & TSC\_RST & output & slow%
+ 3.5 mm & HEADPH\_IND & HEADPH\_IND & interrupt & slow \\
+ & present & MIC\_nPRESENT & interrupt & slow \\
+ Batt. lid mag. & BAT\_LID & BATT\_LID & interrupt & slow \\
+ uSD card & CD & SD\_CD & interrupt & slow \\
+ Touch scrn ctrl & TSC\_RST & TSC\_RST & output & slow%
\footnote{Reset time is 13~ms (section A.7 of \cite{CRTOUCHDS}).
The minimum duration of the reset pulse is not specified.} \\
- & PEN\_INT & interrupt & medium%
+ & PEN\_INT & PEN\_INT & interrupt & medium%
\footnote{The highest sampling rate of the resistive touch screen is
10 points per second (section 4.2.3.4 of \cite{CRTOUCHDS}. Neo900 does not
use the chip's capacitive system.} \\
- Main flex connector & PROXY & interrupt & slow \\
+ Main flex connector & PROXY & PROXY & interrupt & slow \\
\end{ioxdef}
We consider keyboard and touch screen to be medium-speed interrupt sources.
@@ -642,9 +644,9 @@ The capture button has two levels: the first initiates camera configuration
releases the shutter, which we consider medium-speed.
\begin{ioxalt}
- Vol $+/-$ & VOL+\sch & Keyboard scanner \\
- & VOL$-$\sch & Keyboard scanner \\
- Power & POWERON & Companion chip \\
+ Vol $+/-$ & --- & VOL\_UP & Keyboard scanner \\
+ & --- & VOL\_DOWN & Keyboard scanner \\
+ Power & POWERON & POWERON & Companion chip \\
\end{ioxalt}
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -652,13 +654,13 @@ releases the shutter, which we consider medium-speed.
\subsection{Environmental sensors}
\begin{ioxdef}
- Main flex connector & ALS\_INT & interrupt & slow%
+ Main flex connector & ALS\_INT & ALS\_INT & interrupt & slow%
\footnote{Maximum interrupt rate is at most once (see page 16 of \cite{TSL2563}
per integration time (13.7, 101, or 402~ms, table 6).} \\
- Accel & INT1 & interrupt & fast \\
- & INT2 & interrupt & fast \\
- 9-Axis & INT1 & interrupt & fast \\
- & INT2 & interrupt & fast \\
+ Accel & INT1 & SENS\_INT1 & interrupt & fast \\
+ & INT2 & SENS\_INT2 & interrupt & fast \\
+ 9-Axis & INT1 & SENS\_INT1 & interrupt & fast \\
+ & INT2 & SENS\_INT2 & interrupt & fast \\
\end{ioxdef}
The accelerometer and the 9-axis sensor have a total of eight different
@@ -699,9 +701,9 @@ connected to the two interrupt lines in Neo900.
\subsection{Audio}
\begin{ioxdef}
- Mic/TV & TVOUT\_EN & output & slow \\
- Headphone amplifier & HEADPH\_EN & output & slow \\
- Stereo audio codec & CODEC\_RST & output & slow%
+ Mic/TV & TVOUT\_EN & TVOUT\_EN & output & slow \\
+ Headphone amplifier & HEADPH\_EN & HEADPH\_EN & output & slow \\
+ Stereo audio codec & CODEC\_RST & CODEC\_nRESET & output & slow%
\footnote{Minimum duration is 10 ns (page 22 of \cite{TLV320AIC34}), with
no upper limit.} \\
\end{ioxdef}
@@ -711,7 +713,7 @@ these audio-related configuration and reset signals. The chips have no
unusual or otherwise noteworthy timing requirements.
\begin{ioxalt}
- Speaker amplifier & SPEAKER\_EN\sch & Companion chip (GPIO7) \\
+ Speaker amplifier & en & SPEAKER\_EN & Companion chip (GPIO7) \\
\end{ioxalt}
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -735,10 +737,10 @@ in the TWL5031 chip.%
No further public information about ACI on TWL5031 or TPS65951 seems to exist.
\begin{ioxdef}
- ECI & ECI$[0]$ & input & fast \\
- & ECI$[1]$ & input & fast \\
- & ECI$[2]$ & output & fast \\
- & ECI\_EN & output & slow \\
+ ECI & ECI$[0]$ & ECI0 & input & fast \\
+ & ECI$[1]$ & ECI1 & input & fast \\
+ & ECI$[2]$ & ECI\_OUT & output & fast \\
+ & ECI\_EN & ECI\_EN & output & slow \\
\end{ioxdef}
Given that \cite{ECI-Thesis} mentions a close similarity between \iic\ and
@@ -762,14 +764,14 @@ microseconds, it is safe to consider interrupt latency requirements of
the WLAN/BT module to be in the ``fast'' category.
\begin{ioxdef}
- WLAN/BT & WLAN\_EN & output & slow%
+ WLAN/BT & WLAN\_EN & WLAN\_EN & output & slow%
\footnote{WLAN\_EN acts as reset signal, with a power-up time of 5~ms
(figure 5.3 in section 5.22.3 of \cite{WL1837}. WLAN\_EN also needs to
be deasserted at least 10~$\mu$s before the VBAT and VIO voltage rails
drop, lest the device be damaged (section 5.22.2). This timing requirement
requires dedicated hardware and is outside the scope of this document.} \\
- & WLAN\_IRQ & interrupt & fast \\
- & BT\_EN & output & slow%
+ & WLAN\_IRQ & WLAN\_IRQ & interrupt & fast \\
+ & BT\_EN & BT\_EN & output & slow%
\footnote{BT\_EN acts as reset signal, with a maximum initialization time
of 100~ms (figure 5-5 in section 5.22.5 of \cite{WL1837}.} \\
\end{ioxdef}
@@ -779,8 +781,8 @@ of 100~ms (figure 5-5 in section 5.22.5 of \cite{WL1837}.} \\
\subsection{FM}
\begin{ioxdef}
- FM/TX & FM\_nINT & interrupt & medium \\
- & FM\_nRST & output & slow \\
+ FM/TX & FM\_nINT & FM\_nINT & interrupt & medium \\
+ & FM\_nRST & FM\_nRST & output & slow \\
\end{ioxdef}
The Si4721 uses interrupts mainly to indicate the following types of events:
@@ -815,28 +817,28 @@ diagram and has no individual signal name in the schematics.}
\subsection{Modem}
\begin{ioxdef}
- Modem monitor & ALERT & interrupt & fast \\
- & EN & output & fast \\
- Modem & EMERG\_OFF & output & fast \\
- & RING & interrupt & slow \\
- & PWR\_IND & interrupt & slow \\
- & LC\_IND & interrupt & slow%
+ Modem monitor & ALERT & INA231\_INT & interrupt & fast \\
+ & EN & MODEM\_EN & output & fast \\
+ Modem & EMERG\_OFF & MODEM\_EMERG & outpu & fast \\
+ & RING & RING & interrupt & slow \\
+ & PWR\_IND & PWR\_IND & interrupt & slow \\
+ & LC\_IND & LC\_IND & interrupt & slow%
\footnote{Use case is unclear -- we already have independent current
monitoring through the modem monitor.} \\
- & STATUS & interrupt & slow%
+ & STATUS & STATUS & interrupt & slow%
\footnote{STATUS is not only an on/off indication but can also indicate
additional details by blinking at 1 Hz with duty cycles ranging from
1\% (10~ms) to 50\% (section 18.5 of \cite{PHS8P-AT}).} \\
- & 3G\_WOE & interrupt & medium \\
- & MODEM\_IGT & output & slow%
+ & 3G\_WOE & MODEM\_WAKEUP & interrupt & medium \\
+ & MODEM\_IGT & MODEM\_IGT & output & slow%
\footnote{Minimum pulse width is 100~ms for activation (section 3.3.1 of
\cite{PHS8E-HW}), 2.1~s if used for deactivation (section 3.3.4).
Figure 7 of section 3.3.4 seems to suggest that the impulse used for
activation should not exceed one second, but there is no mention of
such a limit elsewhere.} \\
- & MODEM\_VMIC\_SENSE\sch& interrupt & slow \\
- Modem TX monitor & CELL\_DETECT\_IRQ\sch & interrupt & fast \\
- USB PHY & RESETB & output & slow \\
+ & --- & MODEM\_VMIC\_SENSE & interrupt & slow \\
+ Modem TX monitor & --- & CELL\_DETECT\_IRQ & interrupt & fast \\
+ USB PHY & RESETB & --- & output & slow \\
\end{ioxdef}
We classify all modem monitor signals and EMERG\_OFF as ``fast'',
@@ -846,8 +848,8 @@ may be initiated without delay, even if not all of these signals may
cause immediate cessation of a potentially undesired operation.
\begin{ioxalt}
- Modem TX monitor & ADC1\sch (analog) & Companion chip \\
- & ADC2\sch (analog) & Companion chip \\
+ Modem TX monitor & --- & ADC1 (analog) & Companion chip \\
+ & --- & ADC2 (analog) & Companion chip \\
\end{ioxalt}
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -883,8 +885,8 @@ Neither detection nor intervention are particularly timing-critical
since VGNSS\_override can simply be kept low unless GPS use is authorized.
\begin{ioxdef}
- GPS kill & VGNSS\_sense & interrupt & slow \\
- & VGNSS\_override & output & slow \\
+ GPS kill & --- & VGNSS\_SENSE & interrupt & slow \\
+ & --- & VGNSS\_OVERRIDE & output & slow \\
\end{ioxdef}
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -894,8 +896,8 @@ since VGNSS\_override can simply be kept low unless GPS use is authorized.
\begin{ioxdef}
Basic RGB LED drivers & NRST & output & slow \\
Fancy RGB LED driver & NRST & output & slow \\
- & RGB\_INT & interrupt & slow \\
- & RGB\_CTRL\_EN & output & slow \\
+ & RGB\_INT & RGB\_INT & interrupt & slow \\
+ & RGB\_CTRL\_EN & RGB\_CTRL\_EN & output & slow \\
\end{ioxdef}
The minimum delay after activating RGB\_CTRL\_EN is 500~$\mu$s
@@ -914,8 +916,8 @@ EN \&\& CHIP\_EN (section 7.4.1).
\subsection{NFC}
\begin{ioxdef}
- NFC & rst & output & slow \\
- & int & interrupt & fast \\
+ NFC & rst & NFC\_nRESET & output & slow \\
+ & int & NFC\_INT & interrupt & fast \\
\end{ioxdef}
NFC operates at data rates of up to 848~kbps.%
@@ -930,17 +932,17 @@ CPU, the ability to respond rapidly to NFC events may still be desirable.
\begin{ioxgen}{}{%
\footnote{Names as defined in sections 3.1 and 3.2 of \cite{Neo900-SIMSW}.}}
- SIM switch & STROBE & output & slow%
+ SIM switch & STROBE & MUX\_STROBE & output & slow%
\footnote{The SIM switch circuit stretches the STROBE signal to at least
500~ms.} \\
- & SEL & output & slow \\
- & CPU\_nMODEM & output & slow \\
- & CPU\_3V\_n1V8 & output & slow \\
- & CPU\_PWR\_EN & output & medium \\
- & CPU\_SIM(RST) & output & medium \\
- & CPU\_SIM(CLK) & output & fast \\
- & CPU\_SIM(IO) & input/output & fast \\
- SIM \#2 & CPU\_CD\_2 & interrupt & medium \\
+ & SEL & MUX\_SEL & output & slow \\
+ & CPU\_nMODEM & MUX\_CPU\_nMODEM & output & slow \\
+ & CPU\_3V\_n1V8 & CPU\_3V\_n1V8 & output & slow \\
+ & CPU\_PWR\_EN & CPU\_PWR\_EN & output & medium \\
+ & CPU\_SIM(RST) & CPU\_SIM\_RST & output & medium \\
+ & CPU\_SIM(CLK) & CPU\_SIM\_CLK & output & fast \\
+ & CPU\_SIM(IO) & CPU\_SIM\_IO & input/output & fast\\
+ SIM \#2 & CPU\_CD\_2 & CPU\_CD\_2 & interrupt & medium \\
\end{ioxgen}
According to sections 5.2.3 and 8.3 of \cite{ISO7816-3}, the
@@ -957,18 +959,18 @@ speed in order to facilitate clean shutdown on card removal.
\subsection{Main camera}
\begin{ioxdef}
- Main cam conn & cam\_d3 & output & slow%
+ Main cam conn & cam\_d3 & CAM\_MAIN\_SHDN & output & slow%
\footnote{cam\_d3 connects to the XSHUTDOWN pin of the camera module:
\url{http://natisbad.org/N900/ref/VS6555.pdf}} \\
- Cam switch & CAM\_B\_EN & output & slow \\
- Flash LED driver & en & output & slow \\
+ Cam switch & CAM\_B\_EN & CAM\_B\_EN & output & slow \\
+ Flash LED driver & en & FLASH\_EN & output & slow \\
\end{ioxdef}
The following two signals connect to the CPU but are not used as GPIOs:
\begin{ioxaltgen}
- Flash LED driver & int & Camera function block of CPU \\
- & strobe & Camera function block of CPU \\
+ Flash LED driver & int & FLASH\_INT & Camera function block of CPU\\
+ & strobe & FLASH\_STROBE& Camera function block of CPU\\
\end{ioxaltgen}
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -977,14 +979,11 @@ The following two signals connect to the CPU but are not used as GPIOs:
\begin{ioxgen}{}{\footnote{Names are either from the Hackerbus
white paper \cite{Neo900-HB} or the block diagram \cite{BD}.}}
- Hackerbus & GPIO\_a & input/output & fast \\
- & GPIO\_b & input/output & fast \\
- & GPIO\_c & input/output & fast \\
- & GPIO\_d/2V7 & input/output & fast \\
- & GPIO\_e & input/output & fast \\
- & GPIO\_f & input/output & fast \\
- & Control (2V7) & output & slow \\
- HB USB PHY & RST & output & slow \\
+ Hackerbus & --- & HB\_A & input/output & fast \\
+ & --- & HB\_B & input/output & fast \\
+ & --- & HB\_C & input/output & fast \\
+ & --- & HB\_D & input/output & fast \\
+ HB USB PHY & RST & --- & output & slow \\
\end{ioxgen}
For a maximum of flexibility, all Hackerbus GPIOs are connected --~through
@@ -1004,8 +1003,9 @@ blocks in Neo900 are shown in parentheses.
\subsection{UPPER board}
-\begin{longtable}[l]{lllll}
- Function & Signal & Type & Speed & N900 \\
+\begin{longtable}[l]{l|ll|lll}
+ Function & \multicolumn{2}{l|}{Signal} & Type & Speed & N900 \\
+ & (block) & (schematics) \\
\hline
\endhead
\input upper.inc
@@ -1014,8 +1014,9 @@ blocks in Neo900 are shown in parentheses.
\subsection{LOWER board}
-\begin{longtable}[l]{lllll}
- Function & Signal & Type & Speed & N900 \\
+\begin{longtable}[l]{l|ll|lll}
+ Function & \multicolumn{2}{l|}{Signal} & Type & Speed & N900 \\
+ & (block) & (schematics) \\
\hline
\endhead
\input lower.inc
@@ -1024,8 +1025,9 @@ blocks in Neo900 are shown in parentheses.
\subsection{BOB}
-\begin{longtable}[l]{lllll}
- Function & Signal & Type & Speed & N900 \\
+\begin{longtable}[l]{l|ll|lll}
+ Function & \multicolumn{2}{l|}{Signal} & Type & Speed & N900 \\
+ & (block) & (schematics) \\
\hline
\endhead
\input bob.inc
diff --git a/iox/n900.map b/iox/n900.map
index 704ecc7..e33cc8f 100644
--- a/iox/n900.map
+++ b/iox/n900.map
@@ -34,7 +34,7 @@ Lock SCREEN_LCK gpio_113
Capture CAM_CAP[0] gpio_68 # cam driver
CAM_CAP[1] gpio_69 # cam driver
3.5 mm HEADPH_IND taken gpio_177 # PED
- MIC_nPRESENT -
+ present -
Mic/TV TVOUT_EN gpio_40 # PED
Headphone amplifier HEADPH_EN gpio_98 # PED
Stereo audio codec CODEC_RST gpio_58 # PED
@@ -62,8 +62,8 @@ Modem EMERG_OFF -
MODEM_IGT -
MODEM_VMIC_SENSE -
Modem TX monitor CELL_DETECT_IRQ -
-GPS kill VGNSS_sense -
- VGNSS_override -
+GPS kill VGNSS_SENSE -
+ VGNSS_OVERRIDE -
NFC rst -
int -
SIM switch STROBE -
@@ -82,13 +82,10 @@ Flash LED driver en taken gpio_88 # cam driver
Cam cover cam_d11 gpio_110 # cam driver
Batt. lid mag. BAT_LID gpio_160 # ?
uSD card CD -
-Hackerbus GPIO_a -
- GPIO_b -
- GPIO_c -
- GPIO_d/2V7 -
- GPIO_e -
- GPIO_f -
- Control(2V7) -
+Hackerbus HB_A -
+ HB_B -
+ HB_C -
+ HB_D -
#
# N900 things that exist in Neo900 but are implemented very differently: