![]() |
The IXP420 CPU has 16 General Purpose Input/Output (GPIO) pins which are used to interface to external hardware. In the case of the NSLU2, the GPIO pins are used to monitor the buttons, control the LEDs, connect to the RTC and USB 2.0 controller.
GPIO(8) should actually be assigned as INTD on the PCI bus but it's been set as an output instead of tristate. It is connected to the power circuitry and is used to power down the NSLU2. GPIO(15) is GPIO_CLK1 and is running at 33MHz. It is required to access the Flash memory on the expansion bus. After power-up the IXP420 is configured to provide a clock on this GPIO pin. If the clock output on this pin is disabled, access to the Flash is impossible. The USB 2.0 controller can be configured to only use INTA which would free up GPIO(9) and GPIO(10). If the USB 2.0 controller tristates the INTB0 and INTC0 pins when they are disabled then we may reuse the GPIOs without cutting traces. If the USB 2.0 controller however actively pulls the pin high or low even when disabled then we must cut traces to allow reuse of the GPIOs. A much safer and easier option to add extra IO pins is to use a I²C IO extender. Please see PinoutOfI2CPort for more details on the I²C connection. --tman |