aboutsummaryrefslogtreecommitdiff
path: root/package/boot/uboot-d1/patches/0053-gpio-axp-Report-the-correct-value-for-outputs.patch
blob: a6d0eb4526e8bdf4b2cb4c53bb92a95046e2670d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
From 52c172782d659750b447572281cd11835d1edf58 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sun, 31 Jul 2022 18:19:39 -0500
Subject: [PATCH 53/90] gpio: axp: Report the correct value for outputs

Signed-off-by: Samuel Holland <samuel@sholland.org>
---
 drivers/gpio/axp_gpio.c | 9 +++++++++
 1 file changed, 9 insertions(+)

--- a/drivers/gpio/axp_gpio.c
+++ b/drivers/gpio/axp_gpio.c
@@ -33,6 +33,15 @@ static int axp_gpio_get_value(struct ude
 	const struct axp_gpio_desc *desc = dev_get_priv(dev);
 	int ret;
 
+	ret = pmic_reg_read(dev->parent, desc->pins[pin]);
+	if (ret < 0)
+		return ret;
+
+	if (ret == AXP_GPIO_CTRL_OUTPUT_LOW)
+		return 0;
+	if (ret == AXP_GPIO_CTRL_OUTPUT_HIGH)
+		return 1;
+
 	ret = pmic_reg_read(dev->parent, desc->status_reg);
 	if (ret < 0)
 		return ret;