ipq806x: implement GPIO API
Add implementation of the GPIO API defined in src/include/gpiolib.h. Also, clean up the GPIO driver, make it use pointers instead of integers for register address. This requires a touch in the SPI driver, where the CS GPIO is toggled and in the board function where it enables USB interface. BUG=chrome-os-partner:30489 TEST=tested with the following patches, observed proto0 properly read the board ID. Original-Change-Id: I0962947c6bb32a854ca300752d259a48e9e7b4eb Original-Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/210115 Original-Reviewed-by: David Hendricks <dhendrix@chromium.org> (cherry picked from commit e951f735001509d135cc61530ed0eecb5fc31a85) Signed-off-by: Marc Jones <marc.jones@se-eng.com> Change-Id: I8a612dce000931835054086c1b02ebfc43dc57d2 Reviewed-on: http://review.coreboot.org/8718 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
committed by
Patrick Georgi
parent
9c9c336464
commit
d36ef6a51d
@@ -279,13 +279,13 @@ static int check_qup_clk_state(unsigned int core_num, int enable)
|
||||
static void CS_change(int port_num, int cs_num, int enable)
|
||||
{
|
||||
unsigned int cs_gpio = cs_gpio_array[port_num][cs_num];
|
||||
uint32_t addr = GPIO_IN_OUT_ADDR(cs_gpio);
|
||||
void *addr = GPIO_IN_OUT_ADDR(cs_gpio);
|
||||
uint32_t val = readl_i(addr);
|
||||
|
||||
val &= (~(1 << GPIO_OUTPUT));
|
||||
if (!enable)
|
||||
val |= (1 << GPIO_OUTPUT);
|
||||
writel_i(val, addr);
|
||||
writel(val, addr);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user