mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-30 00:21:06 +00:00
4af0d7e870
It is good practice to include common.h as the first header. This ensures that required features like the DECLARE_GLOBAL_DATA_PTR macro, configuration options and common types are available. Fix up some files which currently don't do this. This is necessary because driver model will soon start using global data and configuration in the dm/read.h header file, included via dm.h. The gd->fdt_blob value will be used to access the device tree and CONFIG options will be used to determine whether to support inline functions in the header file. Signed-off-by: Simon Glass <sjg@chromium.org>
42 lines
813 B
C
42 lines
813 B
C
/*
|
|
* Copyright (C) 2017 Masahiro Yamada <yamada.masahiro@socionext.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <dm.h>
|
|
#include <sysreset.h>
|
|
#include <linux/errno.h>
|
|
#include <linux/psci.h>
|
|
|
|
static int psci_sysreset_request(struct udevice *dev, enum sysreset_t type)
|
|
{
|
|
unsigned long function_id;
|
|
|
|
switch (type) {
|
|
case SYSRESET_WARM:
|
|
case SYSRESET_COLD:
|
|
function_id = PSCI_0_2_FN_SYSTEM_RESET;
|
|
break;
|
|
case SYSRESET_POWER:
|
|
function_id = PSCI_0_2_FN_SYSTEM_OFF;
|
|
break;
|
|
default:
|
|
return -ENOSYS;
|
|
}
|
|
|
|
invoke_psci_fn(function_id, 0, 0, 0);
|
|
|
|
return -EINPROGRESS;
|
|
}
|
|
|
|
static struct sysreset_ops psci_sysreset_ops = {
|
|
.request = psci_sysreset_request,
|
|
};
|
|
|
|
U_BOOT_DRIVER(psci_sysreset) = {
|
|
.name = "psci-sysreset",
|
|
.id = UCLASS_SYSRESET,
|
|
.ops = &psci_sysreset_ops,
|
|
};
|