target: Modify API for detecting volume up key in timer callback
Modify function for detecting volume up key in timer callback
Change-Id: I54eccca8c9429fe66745592cc01089e3e7c05bd7
diff --git a/target/apq8084/init.c b/target/apq8084/init.c
index 543951e..de4ef9f 100755
--- a/target/apq8084/init.c
+++ b/target/apq8084/init.c
@@ -134,21 +134,27 @@
}
/* Return 1 if vol_up pressed */
-static int target_volume_up()
+int target_volume_up()
{
+ static uint8_t first_time = 0;
uint8_t status = 0;
struct pm8x41_gpio gpio;
- /* Configure the GPIO */
- gpio.direction = PM_GPIO_DIR_IN;
- gpio.function = 0;
- gpio.pull = PM_GPIO_PULL_UP_30;
- gpio.vin_sel = 2;
+ if (!first_time) {
+ /* Configure the GPIO */
+ gpio.direction = PM_GPIO_DIR_IN;
+ gpio.function = 0;
+ gpio.pull = PM_GPIO_PULL_UP_30;
+ gpio.vin_sel = 2;
- pm8x41_gpio_config(2, &gpio);
+ pm8x41_gpio_config(2, &gpio);
- /* Wait for the pmic gpio config to take effect */
- thread_sleep(1);
+ /* Wait for the pmic gpio config to take effect */
+ udelay(10000);
+
+ first_time = 1;
+
+ }
/* Get status of P_GPIO_2 */
pm8x41_gpio_get(2, &status);
diff --git a/target/msm8909/init.c b/target/msm8909/init.c
index b115bf8..5db6e08 100644
--- a/target/msm8909/init.c
+++ b/target/msm8909/init.c
@@ -205,14 +205,19 @@
}
/* Return 1 if vol_up pressed */
-static int target_volume_up()
+int target_volume_up()
{
+ static uint8_t first_time = 0;
uint8_t status = 0;
- gpio_tlmm_config(TLMM_VOL_UP_BTN_GPIO, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE);
+ if (!first_time) {
+ gpio_tlmm_config(TLMM_VOL_UP_BTN_GPIO, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE);
- /* Wait for the gpio config to take effect - debounce time */
- thread_sleep(10);
+ /* Wait for the gpio config to take effect - debounce time */
+ udelay(10000);
+
+ first_time = 1;
+ }
/* Get status of GPIO */
status = gpio_status(TLMM_VOL_UP_BTN_GPIO);
diff --git a/target/msm8916/init.c b/target/msm8916/init.c
index dba1ed3..7502bc5 100644
--- a/target/msm8916/init.c
+++ b/target/msm8916/init.c
@@ -132,14 +132,19 @@
}
/* Return 1 if vol_up pressed */
-static int target_volume_up()
+int target_volume_up()
{
+ static uint8_t first_time = 0;
uint8_t status = 0;
- gpio_tlmm_config(TLMM_VOL_UP_BTN_GPIO, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE);
+ if (!first_time) {
+ gpio_tlmm_config(TLMM_VOL_UP_BTN_GPIO, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE);
- /* Wait for the gpio config to take effect - debounce time */
- thread_sleep(10);
+ /* Wait for the gpio config to take effect - debounce time */
+ udelay(10000);
+
+ first_time = 1;
+ }
/* Get status of GPIO */
status = gpio_status(TLMM_VOL_UP_BTN_GPIO);
diff --git a/target/msm8952/init.c b/target/msm8952/init.c
index 41ff356..2f1ea36 100644
--- a/target/msm8952/init.c
+++ b/target/msm8952/init.c
@@ -174,6 +174,7 @@
/* Return 1 if vol_up pressed */
int target_volume_up()
{
+ static uint8_t first_time = 0;
uint8_t status = 0;
uint32_t vol_up_gpio;
@@ -183,10 +184,14 @@
else
vol_up_gpio = TLMM_VOL_UP_BTN_GPIO;
- gpio_tlmm_config(vol_up_gpio, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE);
+ if (!first_time) {
+ gpio_tlmm_config(vol_up_gpio, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE);
- /* Wait for the gpio config to take effect - debounce time */
- thread_sleep(10);
+ /* Wait for the gpio config to take effect - debounce time */
+ udelay(10000);
+
+ first_time = 1;
+ }
/* Get status of GPIO */
status = gpio_status(vol_up_gpio);
diff --git a/target/msm8974/init.c b/target/msm8974/init.c
index a7e0ca8..35b17bd 100644
--- a/target/msm8974/init.c
+++ b/target/msm8974/init.c
@@ -115,8 +115,9 @@
}
/* Return 1 if vol_up pressed */
-static int target_volume_up()
+int target_volume_up()
{
+ static uint8_t first_time = 0;
uint8_t status = 0;
struct pm8x41_gpio gpio;
@@ -127,16 +128,20 @@
if (board_hardware_id() == HW_PLATFORM_SURF)
return 0;
- /* Configure the GPIO */
- gpio.direction = PM_GPIO_DIR_IN;
- gpio.function = 0;
- gpio.pull = PM_GPIO_PULL_UP_30;
- gpio.vin_sel = 2;
+ if (!first_time) {
+ /* Configure the GPIO */
+ gpio.direction = PM_GPIO_DIR_IN;
+ gpio.function = 0;
+ gpio.pull = PM_GPIO_PULL_UP_30;
+ gpio.vin_sel = 2;
- pm8x41_gpio_config(5, &gpio);
+ pm8x41_gpio_config(5, &gpio);
- /* Wait for the pmic gpio config to take effect */
- thread_sleep(1);
+ /* Wait for the pmic gpio config to take effect */
+ udelay(10000);
+
+ first_time = 1;
+ }
/* Get status of P_GPIO_5 */
pm8x41_gpio_get(5, &status);
diff --git a/target/msm8994/init.c b/target/msm8994/init.c
index 6a80901..f2d0feb 100644
--- a/target/msm8994/init.c
+++ b/target/msm8994/init.c
@@ -110,19 +110,24 @@
/* Return 1 if vol_up pressed */
int target_volume_up()
{
+ static uint8_t first_time = 0;
uint8_t status = 0;
struct pm8x41_gpio gpio;
- /* Configure the GPIO */
- gpio.direction = PM_GPIO_DIR_IN;
- gpio.function = 0;
- gpio.pull = PM_GPIO_PULL_UP_30;
- gpio.vin_sel = 2;
+ if (!first_time) {
+ /* Configure the GPIO */
+ gpio.direction = PM_GPIO_DIR_IN;
+ gpio.function = 0;
+ gpio.pull = PM_GPIO_PULL_UP_30;
+ gpio.vin_sel = 2;
- pm8x41_gpio_config(3, &gpio);
+ pm8x41_gpio_config(3, &gpio);
- /* Wait for the pmic gpio config to take effect */
- thread_sleep(1);
+ /* Wait for the pmic gpio config to take effect */
+ udelay(10000);
+
+ first_time = 1;
+ }
/* Get status of P_GPIO_5 */
pm8x41_gpio_get(3, &status);
diff --git a/target/msm8996/init.c b/target/msm8996/init.c
index 63c3b2d..a67c3da 100644
--- a/target/msm8996/init.c
+++ b/target/msm8996/init.c
@@ -99,19 +99,24 @@
/* Return 1 if vol_up pressed */
int target_volume_up()
{
+ static uint8_t first_time = 0;
uint8_t status = 0;
struct pm8x41_gpio gpio;
- /* Configure the GPIO */
- gpio.direction = PM_GPIO_DIR_IN;
- gpio.function = 0;
- gpio.pull = PM_GPIO_PULL_UP_30;
- gpio.vin_sel = 2;
+ if (!first_time) {
+ /* Configure the GPIO */
+ gpio.direction = PM_GPIO_DIR_IN;
+ gpio.function = 0;
+ gpio.pull = PM_GPIO_PULL_UP_30;
+ gpio.vin_sel = 2;
- pm8x41_gpio_config(2, &gpio);
+ pm8x41_gpio_config(2, &gpio);
- /* Wait for the pmic gpio config to take effect */
- thread_sleep(1);
+ /* Wait for the pmic gpio config to take effect */
+ udelay(10000);
+
+ first_time = 1;
+ }
/* Get status of P_GPIO_5 */
pm8x41_gpio_get(2, &status);