mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-25 04:23:46 +00:00
7ca2850cbc
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>
33 lines
643 B
C
33 lines
643 B
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* Core driver model support for ACPI table generation
|
|
*
|
|
* Copyright 2019 Google LLC
|
|
* Written by Simon Glass <sjg@chromium.org>
|
|
*/
|
|
|
|
#define LOG_CATEOGRY LOGC_ACPI
|
|
|
|
#include <common.h>
|
|
#include <dm.h>
|
|
#include <dm/acpi.h>
|
|
#include <dm/root.h>
|
|
|
|
int acpi_copy_name(char *out_name, const char *name)
|
|
{
|
|
strncpy(out_name, name, ACPI_NAME_LEN);
|
|
out_name[ACPI_NAME_LEN] = '\0';
|
|
|
|
return 0;
|
|
}
|
|
|
|
int acpi_get_name(const struct udevice *dev, char *out_name)
|
|
{
|
|
struct acpi_ops *aops;
|
|
|
|
aops = device_get_acpi_ops(dev);
|
|
if (aops && aops->get_name)
|
|
return aops->get_name(dev, out_name);
|
|
|
|
return -ENOSYS;
|
|
}
|