Merge "pm8921: Adds support to read power key status"
diff --git a/dev/pmic/pm8921/include/dev/pm8921.h b/dev/pmic/pm8921/include/dev/pm8921.h
index bff76e9..2a41690 100644
--- a/dev/pmic/pm8921/include/dev/pm8921.h
+++ b/dev/pmic/pm8921/include/dev/pm8921.h
@@ -77,7 +77,8 @@
 
 #define PM_GPIO_BLOCK_ID(gpio)         (PM_IRQ_BLOCK_GPIO_START + (gpio)/8)
 #define PM_GPIO_ID_TO_BIT_MASK(gpio)   (1 << ((gpio)%8))
-
+#define PM_PWRKEY_BLOCK_ID		6
+#define PM_PWRKEY_PRESS_BIT		(1 << 3)
 
 typedef int (*pm8921_read_func)(uint8_t *data, uint32_t length, uint32_t addr);
 typedef int (*pm8921_write_func)(uint8_t *data, uint32_t length, uint32_t addr);
@@ -110,6 +111,7 @@
 int  pm8921_ldo_set_voltage(uint32_t ldo_id, uint32_t voltage);
 int  pm8921_config_reset_pwr_off(unsigned reset);
 int  pm8921_gpio_get(uint8_t gpio, uint8_t *status);
+int  pm8921_pwrkey_status(uint8_t *status);
 int pm8921_config_led_current(enum pm8921_leds led_num,
 	uint8_t current,
 	enum led_mode sink,
@@ -118,4 +120,5 @@
 	unsigned int flash_logic,
 	unsigned int flash_ensel);
 
+
 #endif
diff --git a/dev/pmic/pm8921/pm8921.c b/dev/pmic/pm8921/pm8921.c
index c6ee438..3200c47 100644
--- a/dev/pmic/pm8921/pm8921.c
+++ b/dev/pmic/pm8921/pm8921.c
@@ -203,6 +203,23 @@
 	return ret;
 }
 
+int pm8921_pwrkey_status(uint8_t *is_pwrkey_pressed)
+{
+	int ret = 0;
+	uint8_t block_status;
+
+	ret = pm8921_irq_get_block_status(PM_PWRKEY_BLOCK_ID, &block_status);
+
+	if (!ret)
+	{
+		if(block_status & PM_PWRKEY_PRESS_BIT)
+			*is_pwrkey_pressed = 1;
+		else
+			*is_pwrkey_pressed = 0;
+	}
+	return ret;
+}
+
 int pm8921_ldo_set_voltage(uint32_t ldo_id, uint32_t voltage)
 {
 	uint8_t mult;