| What is smsc-ece1099? | 
 | ---------------------- | 
 |  | 
 | The ECE1099 is a 40-Pin 3.3V Keyboard Scan Expansion | 
 | or GPIO Expansion device. The device supports a keyboard | 
 | scan matrix of 23x8. The device is connected to a Master | 
 | via the SMSC BC-Link interface or via the SMBus. | 
 | Keypad scan Input(KSI) and Keypad Scan Output(KSO) signals | 
 | are multiplexed with GPIOs. | 
 |  | 
 | Interrupt generation | 
 | -------------------- | 
 |  | 
 | Interrupts can be generated by an edge detection on a GPIO | 
 | pin or an edge detection on one of the bus interface pins. | 
 | Interrupts can also be detected on the keyboard scan interface. | 
 | The bus interrupt pin (BC_INT# or SMBUS_INT#) is asserted if | 
 | any bit in one of the Interrupt Status registers is 1 and | 
 | the corresponding Interrupt Mask bit is also 1. | 
 |  | 
 | In order for software to determine which device is the source | 
 | of an interrupt, it should first read the Group Interrupt Status Register | 
 | to determine which Status register group is a source for the interrupt. | 
 | Software should read both the Status register and the associated Mask register, | 
 | then AND the two values together. Bits that are 1 in the result of the AND | 
 | are active interrupts. Software clears an interrupt by writing a 1 to the | 
 | corresponding bit in the Status register. | 
 |  | 
 | Communication Protocol | 
 | ---------------------- | 
 |  | 
 | - SMbus slave Interface | 
 | 	The host processor communicates with the ECE1099 device | 
 | 	through a series of read/write registers via the SMBus | 
 | 	interface. SMBus is a serial communication protocol between | 
 | 	a computer host and its peripheral devices. The SMBus data | 
 | 	rate is 10KHz minimum to 400 KHz maximum | 
 |  | 
 | - Slave Bus Interface | 
 | 	The ECE1099 device SMBus implementation is a subset of the | 
 | 	SMBus interface to the host. The device is a slave-only SMBus device. | 
 | 	The implementation in the device is a subset of SMBus since it | 
 | 	only supports four protocols. | 
 |  | 
 | 	The Write Byte, Read Byte, Send Byte, and Receive Byte protocols are the | 
 | 	only valid SMBus protocols for the device. | 
 |  | 
 | - BC-LinkTM Interface | 
 | 	The BC-Link is a proprietary bus that allows communication | 
 | 	between a Master device and a Companion device. The Master | 
 | 	device uses this serial bus to read and write registers | 
 | 	located on the Companion device. The bus comprises three signals, | 
 | 	BC_CLK, BC_DAT and BC_INT#. The Master device always provides the | 
 | 	clock, BC_CLK, and the Companion device is the source for an | 
 | 	independent asynchronous interrupt signal, BC_INT#. The ECE1099 | 
 | 	supports BC-Link speeds up to 24MHz. |