platform: msm8226: Add api to query GPIO status.
Change-Id: Ic2e494ae8c84987d990620e40f1c7648eb2cb2b6
diff --git a/platform/msm8226/gpio.c b/platform/msm8226/gpio.c
index b869367..f184fb0 100644
--- a/platform/msm8226/gpio.c
+++ b/platform/msm8226/gpio.c
@@ -50,6 +50,11 @@
return;
}
+uint32_t gpio_status(uint32_t gpio)
+{
+ return readl(GPIO_IN_OUT_ADDR(gpio)) & GPIO_IN;
+}
+
/* Configure gpio for blsp uart 2 */
void gpio_config_uart_dm(uint8_t id)
{
diff --git a/platform/msm8226/include/platform/gpio.h b/platform/msm8226/include/platform/gpio.h
index 51a1ce0..ac554da 100644
--- a/platform/msm8226/include/platform/gpio.h
+++ b/platform/msm8226/include/platform/gpio.h
@@ -29,6 +29,8 @@
#ifndef __PLATFORM_MSM8226_GPIO_H
#define __PLATFORM_MSM8226_GPIO_H
+#include <bits.h>
+
/* GPIO TLMM: Direction */
#define GPIO_INPUT 0
#define GPIO_OUTPUT 1
@@ -53,6 +55,17 @@
#define GPIO_ENABLE 0
#define GPIO_DISABLE 1
+/* GPIO_IN_OUT register shifts. */
+#define GPIO_IN BIT(0)
+#define GPIO_OUT BIT(1)
+
void gpio_config_uart_dm(uint8_t id);
+uint32_t gpio_status(uint32_t gpio);
+void gpio_tlmm_config(uint32_t gpio,
+ uint8_t func,
+ uint8_t dir,
+ uint8_t pull,
+ uint8_t drvstr,
+ uint32_t enable);
#endif