FreeCalypso > hg > fc-magnetite
view cdg211/cdginc/p_dio.val @ 629:3231dd9b38c1
armio.c: make GPIOs 8 & 13 outputs driving 1 on all "classic" targets
Calypso GPIOs 8 & 13 are pinmuxed with MCUEN1 & MCUEN2, respectively,
and on powerup these pins are MCUEN, i.e., outputs driving 1. TI's code
for C-Sample and earlier turns them into GPIOs configured as outputs also
driving 1 - so far, so good - but TI's code for BOARD 41 (which covers
D-Sample, Leonardo and all real world Calypso devices derived from the
latter) switches them from MCUEN to GPIOs, but then leaves them as inputs.
Given that the hardware powerup state of these two pins is outputs driving 1,
every Calypso board design MUST be compatible with such driving; typically
these GPIO signals will be either unused and unconnected or connected as
outputs driving some peripheral. Turning these pins into GPIO inputs will
result in floating inputs on every reasonably-wired board, thus I am
convinced that this configuration is nothing but a bug on the part of
whoever wrote this code at TI.
This floating input bug had already been fixed earlier for GTA modem and
FCDEV3B targets; the present change makes the fix unconditional for all
"classic" targets. The newly affected targets are D-Sample, Leonardo,
Tango and GTM900.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 02 Jan 2020 05:38:26 +0000 |
parents | 56abf6cf8a0b |
children |
line wrap: on
line source
/* +--------------------------------------------------------------------------+ | PROJECT : PROTOCOL STACK | | FILE : p_dio.val | | SOURCE : "__out__\g23m_dfile\prim\dio.pdf" | | LastModified : "2004-03-19" | | IdAndVersion : "..." | | SrcFileTime : "Tue Jul 19 13:38:38 2005" | | Generated by CCDGEN_2.5.5 on Fri Jun 08 13:59:14 2007 | | !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!! | +--------------------------------------------------------------------------+ */ /* PRAGMAS * PREFIX : NONE * COMPATIBILITY_DEFINES : NO (require PREFIX) * ALWAYS_ENUM_IN_VAL_FILE: NO * ENABLE_GROUP: NO * CAPITALIZE_TYPENAME: NO */ #ifndef P_DIO_VAL #define P_DIO_VAL #define CDG_ENTER__P_DIO_VAL #define CDG_ENTER__FILENAME _P_DIO_VAL #define CDG_ENTER__P_DIO_VAL__FILE_TYPE CDGINC #define CDG_ENTER__P_DIO_VAL__LAST_MODIFIED _2004_03_19 #define CDG_ENTER__P_DIO_VAL__ID_AND_VERSION _ #define CDG_ENTER__P_DIO_VAL__SRC_FILE_TIME _Tue_Jul_19_13_38_38_2005 #include "CDG_ENTER.h" #undef CDG_ENTER__P_DIO_VAL #undef CDG_ENTER__FILENAME /* * Value constants for VAL_baud_rate */ #define DIO4_BAUD_RESERVED (0x0) /* reserved value */ #define DIO4_BAUD_AUTO (0x1) /* Automatic detected */ #define DIO4_BAUD_75 (0x2) /* Transmission rate of 75 bits/sec */ #define DIO4_BAUD_110 (0x4) /* Transmission rate of 110 bits/sec */ #define DIO4_BAUD_150 (0x8) /* Transmission rate of 150 bits/sec */ #define DIO4_BAUD_300 (0x10) /* Transmission rate of 300 bits/sec */ #define DIO4_BAUD_600 (0x20) /* Transmission rate of 600 bits/sec */ #define DIO4_BAUD_1200 (0x40) /* Transmission rate of 1200 bits/sec */ #define DIO4_BAUD_2400 (0x80) /* Transmission rate of 2400 bits/sec */ #define DIO4_BAUD_4800 (0x100) /* Transmission rate of 4800 bits/sec */ #define DIO4_BAUD_7200 (0x200) /* Transmission rate of 7200 bits/sec */ #define DIO4_BAUD_9600 (0x400) /* Transmission rate of 9600 bits/sec */ #define DIO4_BAUD_14400 (0x800) /* Transmission rate of 14400 bits/sec */ #define DIO4_BAUD_19200 (0x1000) /* Transmission rate of 19200 bits/se */ #define DIO4_BAUD_28800 (0x2000) /* Transmission rate of 28800 bits/se */ #define DIO4_BAUD_33900 (0x4000) /* Transmission rate of 33900 bits/se */ #define DIO4_BAUD_38400 (0x8000) /* Transmission rate of 38400 bits/se */ #define DIO4_BAUD_57600 (0x10000) /* Transmission rate of 57600 bits/se */ #define DIO4_BAUD_115200 (0x20000) /* Transmission rate of 115200 bits/se */ #define DIO4_BAUD_203125 (0x40000) /* Transmission rate of 203125 bits/se */ #define DIO4_BAUD_230400 (0x80000) /* Transmission rate of 230400 bits/se */ #define DIO4_BAUD_406250 (0x100000) /* Transmission rate of 406250 bits/se */ #define DIO4_BAUD_460800 (0x200000) /* Transmission rate of460800 bits/se */ #define DIO4_BAUD_812500 (0x400000) /* Transmission rate of 812500 bits/se */ #define DIO4_BAUD_921600 (0x800000) /* Transmission rate of 921600 bits/se */ /* * Value constants for VAL_dev_type */ #define DIO_DATA_MUX (0x200000) /* device can start a multiplexer */ #define DIO_DATA_PKT (0x400000) /* device can contain packet data */ #define DIO_DATA_SER (0x800000) /* device can contain serial data */ #define DIO_DATA_SER_MUX (0xa0000) /* serial device which can start a multiplexer */ #define DIO_TYPE_ID_MASK (0xff00) /* mask for dio identifier to separate different capability structs with the same combination */ #define DIO_TYPE_DAT_MASK (0xff0000) /* mask for dio identifier to separate kind of data support */ #define DIO_TYPE_SER (0x800100) /* Type for serial devices like UART */ #define DIO_TYPE_SER_MUX (0xa00100) /* Type for serial devices like UART. It is possible to start a 27.010 multiplexer on devices of this type */ #define DIO_TYPE_PKT (0x400100) /* Type for packet devices */ /* * Value constants for VAL_char_frame */ #define DIO_CF_8N2 (0x1) /* 8 data bits; no parity bit; 2 stop bits */ #define DIO_CF_8O1 (0x2) /* 8 data bits; odd parity bit; 1 stop bits */ #define DIO_CF_8E1 (0x4) /* 8 data bits; even parity bit; 1 stop bits */ #define DIO_CF_8M1 (0x8) /* 8 data bits; mark parity bit; 1 stop bits */ #define DIO_CF_8S1 (0x10) /* 8 data bits; space parity bit; 1 stop bits */ #define DIO_CF_8N1 (0x20) /* 8 data bits; no parity bit; 1 stop bits */ #define DIO_CF_7N2 (0x40) /* 7 data bits; no parity bit; 2 stop bits */ #define DIO_CF_7O1 (0x80) /* 7 data bits; odd parity bit; 1 stop bits */ #define DIO_CF_7E1 (0x100) /* 7 data bits; even parity bit; 1 stop bits */ #define DIO_CF_7M1 (0x200) /* 7 data bits; mark parity bit; 1 stop bits */ #define DIO_CF_7S1 (0x400) /* 7 data bits; space parity bit;1 stop bits */ #define DIO_CF_7N1 (0x800) /* 7 data bits; no parity bit; 1 stop bits */ /* * Value constants for VAL_flow_control */ #define DIO_FLOW_NONE (0x1) /* Data transmit: None Data receive: None */ #define DIO_FLOW_NO_XOFF (0x2) /* Data transmit: None Data receive: XON/XOFF */ #define DIO_FLOW_NO_CTS (0x4) /* Data transmit: None Data receive: CTS */ #define DIO_FLOW_XON_NO (0x8) /* Data transmit: local XON/XOFF Data receive: None */ #define DIO_FLOW_XON_XOFF (0x10) /* Data transmit: local XON/XOFF Data receive: XON/XOFF */ #define DIO_FLOW_XON_CTS (0x20) /* Data transmit: local XON/XOFF Data receive:CTS */ #define DIO_FLOW_RTS_NO (0x40) /* Data transmit: RTS Data receive: None */ #define DIO_FLOW_RTS_XOFF (0x80) /* Data transmit: RTS Data receive: XON/XOFF */ #define DIO_FLOW_RTS_CTS (0x100) /* Data transmit: RTS Data receive: CTS */ #define DIO_FLOW_XTR_NO (0x200) /* Data transmit: transparent XON/XOFF Data receive: None */ #define DIO_FLOW_XTR_XOFF (0x400) /* Data transmit: transparent XON/XOFF Data receive: CTS */ #define DIO_FLOW_XTR_CTS (0x800) /* Data transmit: transparent XON/XOFF Data receive: CTS */ /* * Value constants for VAL_line_states */ #define LINE_STD_DCD_ON (0x1) /* b00000001 set line DCD on */ #define LINE_STD_DCD_OFF (0x2) /* b00000010 set line DCD off */ #define LINE_STD_RING_ON (0x4) /* b00000100 set line RING on */ #define LINE_STD_RING_OFF (0x8) /* b00001000 set line RING off */ #define LINE_STD_ESCD_IND (0x10) /* b00010000 escape sequence indication */ #define LINE_STD_DTR_LDR (0x20) /* b00100000 DTR line drop indication */ /* * Value constants for VAL_ser_flags */ #define DIO_FLAG_SER_ESC (0x80000000)/* device supports escape sequence detection */ /* * Value constants for VAL_device */ #define DIO_DRV_MASK (0xff000000)/* mask for driver number to identify the driver */ #define DIO_TYPE_MASK (0xffff00) /* mask for device type */ #define DIO_DEVICE_MASK (0xff) /* mask for actual device number chosen by the driver */ #define DIO_DRV_UART (0x0) /* UART driver */ #define DIO_DRV_USB (0x1000000)/* USB driver */ #define DIO_DRV_MUX (0x2000000)/* 27.010 multiplexer driver */ #define DIO_DRV_PKT (0x3000000)/* packet driver */ #define DIO_DRV_MCBSP (0x4000000)/* McBSP driver */ #define DIO_DRV_APP (0x5000000)/* Application adapter */ #define DIO_DRV_BAT (0x6000000)/* Binary Interface Adapter */ /* * Value constants for VAL_dev_flag */ #define DIO_FLAG_SLEEP (0x80000000)/* device provides the feature power saving state */ /* * Value constants for VAL_mux_mode */ #define DIO_MUX_BASIC (0x1) /* mux supports Basic option */ #define DIO_MUX_UIH (0x2) /* mux supports Advanced option with UIH frames */ #define DIO_MUX_UI (0x4) /* mux supports Advanced option with UI frames */ #define DIO_MUX_I (0x8) /* mux supports Advanced option with I frames (error recovery) */ /* * Value constants for VAL_contr_type */ #define DIO4_CTRL_LINES (0x1) /* control struct contains serial line states */ #define DIO4_CTRL_MUX (0x2) /* control struct contains mux control parameter */ /* * Value constants for VAL_dev_mode */ #define DIO_MODE_SER (0x1) /* device acts as serial device */ #define DIO_MODE_MUX (0x2) /* device acts as 27.010 mux device */ /* * Value constants for VAL_esc_char */ #define ESC_CHAR_DEFAULT (0x2b) /* default escape character ('+') */ /* * Value constants for VAL_guard_per */ #define DIO_ESC_OFF (0x0) /* turn escape sequence detection off */ #define DIO_GUARD_PER_DEFAULT (0x3e8) /* default value 1000ms */ /* * Value constants for VAL_k */ #define K_DEFAULT (0x2) /* k default value */ /* * Value constants for VAL_n1 */ #define MUX_N1_BASIC_DEFAULT (0x1f) /* default value for the basic option */ #define MUX_N1_ADVANCED_DEFAULT (0x40) /* default value for the advanced option */ /* * Value constants for VAL_n2 */ #define MUX_N2_DEFAULT (0x3) /* default number of retransmission */ /* * Value constants for VAL_sleep_mode */ #define DIO_SLEEP_ENABLE (0x1) /* enter sleep mode if possible */ #define DIO_SLEEP_DISABLE (0x2) /* do not enter sleep mode */ /* * Value constants for VAL_cb_line_state */ #define DIO_SA (0x80000000)/* read/write: device ready */ #define DIO_SB (0x40000000)/* read/write: data valid */ #define DIO_X (0x20000000)/* read/write: flow control */ #define DIO_RING (0x10000000)/* write: RING indicator */ #define DIO_ESC (0x8000000)/* read: escape seqence detected */ #define DIO_MUX_STOPPED (0x4000000)/* multiplexer stopped */ #define DIO_BRK (0x2000000)/* read/write: break received/to be send */ #define DIO_BRKLEN_MASK (0xff) /* read/write: length of break signal in character; only valid if DIO_BREAK bit is set to 1 */ /* * Value constants for VAL_t1 */ #define MUX_T1_DEFAULT (0xa) /* default acknowledgement timer (100ms) */ /* * Value constants for VAL_t2 */ #define MUX_T2_DEFAULT (0x1e) /* default response timer */ /* * Value constants for VAL_t3 */ #define MUX_T3_DEFAULT (0xa) /* default wake up response timer (100ms) */ /* * Value constants for VAL_xoff */ #define XOFF_DEFAULT (0x13) /* xoff default value */ /* * Value constants for VAL_xon */ #define XON_DEFAULT (0x11) /* xon default value */ /* * Value constants for VAL_start_mux */ #define DIO_MUX_DYNAMIC (0x0) /* Do not start the 27.010 multiplexer immediately. The multi-plexer may be started dynamically on runtime */ #define DIO_MUX_START (0x1) /* Starts the 27.010 multiplexer permanently. The multiplexer can not be turned off during runtime */ #include "CDG_LEAVE.h" #endif