summaryrefslogtreecommitdiffstats
path: root/include/dm/device.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2020-04-09 10:27:38 -0600
committerBin Meng <bmeng.cn@gmail.com>2020-04-16 14:36:28 +0800
commit7ca2850cbcb2adca4f6927d9bf77626091ab5c3e (patch)
treea84c7bbd42198a146e59f6bd8b62e113b18b3978 /include/dm/device.h
parentb2c386846332e9fc1571aa1eed3ac47b903bd32c (diff)
downloadu-boot-7ca2850cbcb2adca4f6927d9bf77626091ab5c3e.tar.gz
u-boot-7ca2850cbcb2adca4f6927d9bf77626091ab5c3e.tar.xz
u-boot-7ca2850cbcb2adca4f6927d9bf77626091ab5c3e.zip
dm: core: Add basic ACPI support
ACPI (Advanced Configuration and Power Interface) is a standard for specifying information about a platform. It is a little like device tree but the bindings are part of the specification and it supports an interpreted bytecode language. Driver model does not use ACPI for U-Boot's configuration, but it is convenient to have it support generation of ACPI tables for passing to Linux, etc. As a starting point, add an optional set of ACPI operations to each device. Initially only a single operation is available, to obtain the ACPI name for the device. More operations are added later. Enable ACPI for sandbox to ensure build coverage and so that we can add tests. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Diffstat (limited to 'include/dm/device.h')
-rw-r--r--include/dm/device.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/dm/device.h b/include/dm/device.h
index a56164b19b..35e19d8700 100644
--- a/include/dm/device.h
+++ b/include/dm/device.h
@@ -245,6 +245,8 @@ struct udevice_id {
* pointers defined by the driver, to implement driver functions required by
* the uclass.
* @flags: driver flags - see DM_FLAGS_...
+ * @acpi_ops: Advanced Configuration and Power Interface (ACPI) operations,
+ * allowing the device to add things to the ACPI tables passed to Linux
*/
struct driver {
char *name;
@@ -264,6 +266,9 @@ struct driver {
int per_child_platdata_auto_alloc_size;
const void *ops; /* driver-specific operations */
uint32_t flags;
+#if CONFIG_IS_ENABLED(ACPIGEN)
+ struct acpi_ops *acpi_ops;
+#endif
};
/* Declare a new U-Boot driver */