mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-30 16:13:54 +08:00
baa293e954
There are lots of documents under Documentation/*.txt and a few other orphan documents elsehwere that belong to the driver-API book. Move them to their right place. Reviewed-by: Cornelia Huck <cohuck@redhat.com> # vfio-related parts Acked-by: Logan Gunthorpe <logang@deltatee.com> # switchtec Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
61 lines
2.5 KiB
ReStructuredText
61 lines
2.5 KiB
ReStructuredText
=================================================
|
|
Msc Keyboard Scan Expansion/GPIO Expansion device
|
|
=================================================
|
|
|
|
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.
|