diff --git a/src/include/gpio.h b/src/include/gpio.h index 4627e4412c..3f462df295 100644 --- a/src/include/gpio.h +++ b/src/include/gpio.h @@ -31,6 +31,15 @@ void gpio_input(gpio_t gpio); void gpio_output(gpio_t gpio, int value); int _gpio_base3_value(gpio_t gpio[], int num_gpio, int binary_first); +/* + * This function may be implemented by SoC/board code to provide + * a mapping from a GPIO pin to controller by returning the ACPI + * path for the controller that owns this GPIO. + * + * If not implemented the default handler will return NULL. + */ +const char *gpio_acpi_path(gpio_t gpio); + /* * Read the value presented by the set of GPIOs, when each pin is interpreted * as a base-2 digit (LOW = 0, HIGH = 1). diff --git a/src/lib/gpio.c b/src/lib/gpio.c index 2e345956f8..b0a5f4dfc3 100644 --- a/src/lib/gpio.c +++ b/src/lib/gpio.c @@ -139,3 +139,9 @@ int _gpio_base3_value(gpio_t gpio[], int num_gpio, int binary_first) return result; } + +/* Default handler for ACPI path is to return NULL */ +__attribute__((weak)) const char *gpio_acpi_path(gpio_t gpio) +{ + return NULL; +}