SMSC LAN9311 User Manual

Page of 460
Two Port 10/100 Managed Ethernet Switch with 16-Bit Non-PCI CPU Interface
Datasheet
SMSC LAN9311/LAN9311i
163
Revision 1.4 (08-19-08)
DATASHEET
 
Chapter 13 GPIO/LED Controller
13.1
  Functional Overview
The GPIO/LED Controller provides 12 configurable general purpose input/output pins, GPIO[11:0].
These pins can be individually configured to function as inputs, push-pull outputs, or open drain outputs
and each is capable of interrupt generation with configurable polarity. Two of the GPIO pins (GPIO[9:8])
can be used for IEEE 1588 timestamp functions, allowing GPIO driven 1588 time clock capture when
configured as an input, or GPIO output generation based on an IEEE 1588 clock target compare event.
In addition, 8 of the GPIO pins can be alternatively configured as LED outputs. These pins, GPIO[7:0]
(nP1LED[3:0] and nP2LED[3:0]), may be enabled to drive Ethernet status LEDs for external indication
of various attributes of the switch ports.
GPIO and LED functionality is configured via the GPIO/LED System Control and Status Registers
(CSRs), accessible through the Host Bus Interface (HBI). These registers are defined in 
.
13.2
  GPIO Operation
The GPIO controller is comprised of 12 programmable input/output pins. These pins are individually
configurable via the GPIO CSRs. On application of a chip-level reset:
„
All GPIOs are set as inputs (GPDIR[11:0] cleared in 
„
All GPIO interrupts are disabled (GPIO[11:0]_INT_EN cleared in 
„
All GPIO interrupts are configured to low logic level triggering (GPIO_INT_POL[11:0] cleared in 
Note:
GPIO[7:0] may be configured as LED outputs by default, dependant on the LED_en_stap[7:0]
configuration straps. Refer to 
 for additional information.
The direction and buffer type of all 12 GPIOs are configured via the 
 an
direction of each GPIO, input or output, should be configured first via its respective GPIO direction bit
(GPDIR[11:0]) in the 
. When
configured as an output, the output buffer type for each GPIO is selected by the GPIOBUF[11:0] bits
in the 
. Push/pull and open-drain output
buffers are supported for each GPIO. When functioning as an open-drain driver, the GPIO output pin
is driven low when the corresponding data register bit (GPIOD in the 
) is cleared to 0, and is not driven when set to 1.
When a GPIO is enabled as an output, the value output to the GPIO pin is set via the corresponding
GPIOD[11:0] bit in the 
. For GPIOs
configured as inputs, the corresponding GPIOD[11:0] bit reflects the current state of the GPIO input.
Note:
For GPIO[9:8], the pin direction is a function of both the GPDIR[9:8] bits of the 
 and the 1588_GPIO_OE[9:8] bits in
the