gpio: Add a method to convert a GPIO to ACPI
When generating ACPI tables we need to convert GPIOs in U-Boot to the ACPI structures required by ACPI. This is a SoC-specific conversion and cannot be handled by generic code, so add a new GPIO method to do the conversion. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include <dm/ofnode.h>
|
||||
#include <linux/bitops.h>
|
||||
|
||||
struct acpi_gpio;
|
||||
struct ofnode_phandle_args;
|
||||
|
||||
/*
|
||||
@@ -329,6 +330,20 @@ struct dm_gpio_ops {
|
||||
*/
|
||||
int (*get_dir_flags)(struct udevice *dev, unsigned int offset,
|
||||
ulong *flags);
|
||||
|
||||
#if CONFIG_IS_ENABLED(ACPIGEN)
|
||||
/**
|
||||
* get_acpi() - Get the ACPI info for a GPIO
|
||||
*
|
||||
* This converts a GPIO to an ACPI structure for adding to the ACPI
|
||||
* tables.
|
||||
*
|
||||
* @desc: GPIO description to convert
|
||||
* @gpio: Output ACPI GPIO information
|
||||
* @return ACPI pin number or -ve on error
|
||||
*/
|
||||
int (*get_acpi)(const struct gpio_desc *desc, struct acpi_gpio *gpio);
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -674,4 +689,16 @@ int dm_gpio_get_dir_flags(struct gpio_desc *desc, ulong *flags);
|
||||
*/
|
||||
int gpio_get_number(const struct gpio_desc *desc);
|
||||
|
||||
/**
|
||||
* gpio_get_acpi() - Get the ACPI pin for a GPIO
|
||||
*
|
||||
* This converts a GPIO to an ACPI pin number for adding to the ACPI
|
||||
* tables. If the GPIO is invalid, the pin_count and pins[0] are set to 0
|
||||
*
|
||||
* @desc: GPIO description to convert
|
||||
* @gpio: Output ACPI GPIO information
|
||||
* @return ACPI pin number or -ve on error
|
||||
*/
|
||||
int gpio_get_acpi(const struct gpio_desc *desc, struct acpi_gpio *gpio);
|
||||
|
||||
#endif /* _ASM_GENERIC_GPIO_H_ */
|
||||
|
Reference in New Issue
Block a user