
On Wed, Sep 09, 2015 at 11:35:58AM -0400, slemieux.tyco@gmail.com wrote:
From: Sylvain Lemieux slemieux@tycoint.com
The current simplify lpc32xx gpio driver implementation assume a maximum of 32 GPIO per port; there are a total of 22 GPI, 24 GPO and 6 GPIO to managed on port 3.
Update the driver to fix the following:
When requesting GPI_xx and GPO_xx on port 3 (xx is the same number) the second call to "gpio_request" will return -EBUSY.
The status of GPO_xx pin report the status of the corresponding GPI_xx pin when using the "gpio status" command.
The gpio driver may setup the direction register for the wrong gpio when calling "gpio_direction_input" (GPI_xx) or "gpio_direction_output" (GPO_xx) on port 3; the call to the direction is require to use the "gpio status" command.
The following change were done in the driver:
- port3 GPI are cache in a separate 32 bits in the array.
- port3 direction register written only for GPIO pins.
- port3 GPO & GPIO (as output) are read using "p3_outp_state".
- LPC32XX_GPI_P3_GRP updated to match the change.
Signed-off-by: Sylvain Lemieux slemieux@tycoint.com
Applied to u-boot/master, thanks!