]> git.ipfire.org Git - people/ms/u-boot.git/commit - arch/powerpc/cpu/ppc4xx/gpio.c
ppc4xx: Add functionality to GPIO support
authorLawrence R. Johnson <lrj@acm.org>
Thu, 3 Jan 2008 23:54:00 +0000 (18:54 -0500)
committerStefan Roese <sr@denx.de>
Fri, 4 Jan 2008 10:38:45 +0000 (11:38 +0100)
commit5ab884b254ca2e707ab50545cd705f30108cf491
treefa6a58b9ed000c496f2b4fc77f9605eaebcfe3b0
parent196404cdc1de495d6182e84731c200fc5748df15
ppc4xx: Add functionality to GPIO support

This patch makes two additions to GPIO support:

First, it adds function gpio_read_in_bit() to read the a bit from the
GPIO Input Register (GPIOx_IR) in the same way that function
gpio_read_out_bit() reads a bit from the GPIO Output Register
(GPIOx_OR).

Second, it modifies function gpio_set_chip_configuration() to provide
an additional option for configuring the GPIO from the
"CFG_4xx_GPIO_TABLE".

According to the 440EPx User's Manual, when an alternate output is used,
the three-state control is configured in one of two ways, depending on
the particular output.  The first option is to select the corresponding
alternate three-state control in the GPIOx_TRSH/L registers.  The second
option is to select the GPIO Three-State Control Register (GPIOx_TCR) in
the GPIOx_TRSH/L registers, and set the corresponding bit in the
GPIOx_TCR register to enable the output.  For example, the Manual
specifies configuring the GPIO00 Alternate 1 Signal (PreAddr07) to use
the alternate three-state control (first option), and specifies
configuring the GPIO32 Alternate 1 Signal (USB2OM0) with the output
enabled in the GPIOx_TCR register (second option).

Currently, gpio_set_chip_configuration() configures all alternate signal
outputs to use the first option.  This patch allow the second option to
be selected by setting the "out_val" element in the table entry to
"GPIO_OUT_1".  The first option is used when the "out_val" element is
set to "GPIO_OUT_0".  Because "out_val" is not currently used when an
alternate signal is selected, and because all current GPIO tables set
"out_val" to "GPIO_OUT_0" for all alternate signals, this patch should
not change any existing configurations.

Signed-off-by: Larry Johnson <lrj@acm.org>
cpu/ppc4xx/gpio.c
include/asm-ppc/gpio.h