diff options
Diffstat (limited to 'zephyr/subsys/ap_pwrseq/signal_gpio.c')
-rw-r--r-- | zephyr/subsys/ap_pwrseq/signal_gpio.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/zephyr/subsys/ap_pwrseq/signal_gpio.c b/zephyr/subsys/ap_pwrseq/signal_gpio.c index a130bc8abf..c2df5e56c5 100644 --- a/zephyr/subsys/ap_pwrseq/signal_gpio.c +++ b/zephyr/subsys/ap_pwrseq/signal_gpio.c @@ -23,6 +23,7 @@ DT_FOREACH_STATUS_OKAY(MY_COMPAT, INIT_GPIO_SPEC) */ struct ps_gpio_int { gpio_flags_t flags; + uint8_t signal; unsigned output : 1; unsigned no_enable : 1; }; @@ -30,6 +31,7 @@ struct ps_gpio_int { #define INIT_GPIO_CONFIG(id) \ { \ .flags = DT_PROP_OR(id, interrupt_flags, 0), \ + .signal = PWR_SIGNAL_ENUM(id), \ .no_enable = DT_PROP(id, no_enable), \ .output = DT_PROP(id, output), \ }, @@ -89,7 +91,10 @@ void power_signal_gpio_interrupt(const struct device *port, struct gpio_callback *cb, gpio_port_pins_t pins) { - power_signal_interrupt(); + int index = cb - int_cb; + + power_signal_interrupt(gpio_config[index].signal, + gpio_pin_get_dt(&spec[index])); } int power_signal_gpio_get(enum pwr_sig_gpio index) |