summaryrefslogtreecommitdiff
path: root/src/soc/qualcomm/ipq806x/include
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2014-07-25 17:34:42 -0700
committerPatrick Georgi <pgeorgi@google.com>2015-03-23 17:20:07 +0100
commitd36ef6a51df0d9bb840f091adee8b7bf3424b331 (patch)
tree9fb86d06b177b6580283944c92a0baf027f234e8 /src/soc/qualcomm/ipq806x/include
parent9c9c3364643d9b8e138f503c391163475c9dfffc (diff)
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>
Diffstat (limited to 'src/soc/qualcomm/ipq806x/include')
-rw-r--r--src/soc/qualcomm/ipq806x/include/gpio.h5
-rw-r--r--src/soc/qualcomm/ipq806x/include/iomap.h4
2 files changed, 4 insertions, 5 deletions
diff --git a/src/soc/qualcomm/ipq806x/include/gpio.h b/src/soc/qualcomm/ipq806x/include/gpio.h
index 1f35aa7061..276022c0af 100644
--- a/src/soc/qualcomm/ipq806x/include/gpio.h
+++ b/src/soc/qualcomm/ipq806x/include/gpio.h
@@ -64,8 +64,8 @@
#define GPIO_16MA 7
/* GPIO TLMM: Status */
-#define GPIO_ENABLE 0
-#define GPIO_DISABLE 1
+#define GPIO_DISABLE 0
+#define GPIO_ENABLE 1
/* GPIO MAX Valid # */
#define GPIO_MAX_NUM 68
@@ -99,7 +99,6 @@ void gpio_tlmm_config_get(gpio_t gpio, unsigned int *func,
unsigned int *enable);
void gpio_io_config_set(gpio_t gpio, unsigned int out);
-void gpio_io_config_get(gpio_t gpio, unsigned int *in, unsigned int *out);
/* Keep this to maintain backwards compatibility with the vendor API. */
static inline void gpio_tlmm_config(unsigned int gpio, unsigned int func,
diff --git a/src/soc/qualcomm/ipq806x/include/iomap.h b/src/soc/qualcomm/ipq806x/include/iomap.h
index 69744bcd51..c9c8fc413a 100644
--- a/src/soc/qualcomm/ipq806x/include/iomap.h
+++ b/src/soc/qualcomm/ipq806x/include/iomap.h
@@ -81,9 +81,9 @@
#define DGT_CLEAR DGT_REG(0x000C)
#define DGT_CLK_CTL DGT_REG(0x0010)
-#define TLMM_BASE_ADDR 0x00800000
+#define TLMM_BASE_ADDR ((char *)0x00800000)
#define GPIO_CONFIG_ADDR(x) (TLMM_BASE_ADDR + 0x1000 + (x)*0x10)
-#define GPIO_IN_OUT_ADDR(x) (TLMM_BASE_ADDR + 0x1004 + (x)*0x10)
+#define GPIO_IN_OUT_ADDR(x) (GPIO_CONFIG_ADDR(x) + 4)
/* Yes, this is not a typo... host2 is actually mapped before host1. */
#define USB_HOST2_XHCI_BASE 0x10000000