summaryrefslogtreecommitdiff
path: root/drivers/button/button-gpio.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2023-02-10 13:41:27 -0500
committerTom Rini <trini@konsulko.com>2023-02-10 13:41:27 -0500
commita1e6b529e57c622e862e93fa6da03d9504565089 (patch)
tree1b756fb08296e17f4edec6f4dd40c7a6e2fb9a80 /drivers/button/button-gpio.c
parent8b301102e246350a0ccedc370f7c9923b02f86f2 (diff)
parentadd396d66703c6c422353f950e584fae2a786a20 (diff)
Merge branch '2023-02-10-assorted-updates-and-additions'
- DM_SERIAL conversion for bcm7xxx, button input driver, qcom updates, environment and network related cleanup, ftmac100 update, add a IS_ENABLED conversion that was just missed.
Diffstat (limited to 'drivers/button/button-gpio.c')
-rw-r--r--drivers/button/button-gpio.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/button/button-gpio.c b/drivers/button/button-gpio.c
index dbb000622c7..7b5b3affe2d 100644
--- a/drivers/button/button-gpio.c
+++ b/drivers/button/button-gpio.c
@@ -13,6 +13,7 @@
struct button_gpio_priv {
struct gpio_desc gpio;
+ int linux_code;
};
static enum button_state_t button_gpio_get_state(struct udevice *dev)
@@ -29,6 +30,17 @@ static enum button_state_t button_gpio_get_state(struct udevice *dev)
return ret ? BUTTON_ON : BUTTON_OFF;
}
+static int button_gpio_get_code(struct udevice *dev)
+{
+ struct button_gpio_priv *priv = dev_get_priv(dev);
+ int code = priv->linux_code;
+
+ if (!code)
+ return -ENODATA;
+
+ return code;
+}
+
static int button_gpio_probe(struct udevice *dev)
{
struct button_uc_plat *uc_plat = dev_get_uclass_plat(dev);
@@ -43,7 +55,9 @@ static int button_gpio_probe(struct udevice *dev)
if (ret)
return ret;
- return 0;
+ ret = dev_read_u32(dev, "linux,code", &priv->linux_code);
+
+ return ret;
}
static int button_gpio_remove(struct udevice *dev)
@@ -92,6 +106,7 @@ static int button_gpio_bind(struct udevice *parent)
static const struct button_ops button_gpio_ops = {
.get_state = button_gpio_get_state,
+ .get_code = button_gpio_get_code,
};
static const struct udevice_id button_gpio_ids[] = {