mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-07 05:13:21 +09:00
![Stephen Warren](/assets/img/avatar_default.png)
The current reset API implements a method to reset the entire system. In the near future, I'd like to introduce code that implements the device tree reset bindings; i.e. the equivalent of the Linux kernel's reset API. This controls resets to individual HW blocks or external chips with reset signals. It doesn't make sense to merge the two APIs into one since they have different semantic purposes. Resolve the naming conflict by renaming the existing reset API to sysreset instead, so the new reset API can be called just reset. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
41 lines
805 B
C
41 lines
805 B
C
/*
|
|
* Qualcomm APQ8016 reset controller driver
|
|
*
|
|
* (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <dm.h>
|
|
#include <errno.h>
|
|
#include <sysreset.h>
|
|
#include <asm/io.h>
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
static int msm_sysreset_request(struct udevice *dev, enum sysreset_t type)
|
|
{
|
|
phys_addr_t addr = dev_get_addr(dev);
|
|
if (!addr)
|
|
return -EINVAL;
|
|
writel(0, addr);
|
|
return -EINPROGRESS;
|
|
}
|
|
|
|
static struct sysreset_ops msm_sysreset_ops = {
|
|
.request = msm_sysreset_request,
|
|
};
|
|
|
|
static const struct udevice_id msm_sysreset_ids[] = {
|
|
{ .compatible = "qcom,pshold" },
|
|
{ }
|
|
};
|
|
|
|
U_BOOT_DRIVER(msm_reset) = {
|
|
.name = "msm_sysreset",
|
|
.id = UCLASS_SYSRESET,
|
|
.of_match = msm_sysreset_ids,
|
|
.ops = &msm_sysreset_ops,
|
|
};
|