xref: /rk3399_rockchip-uboot/drivers/reset/sandbox-reset-test.c (revision 4581b717b1bf0fb04e7d9fcaf3d4c23d357154ac)
1*4581b717SStephen Warren /*
2*4581b717SStephen Warren  * Copyright (c) 2016, NVIDIA CORPORATION.
3*4581b717SStephen Warren  *
4*4581b717SStephen Warren  * SPDX-License-Identifier: GPL-2.0
5*4581b717SStephen Warren  */
6*4581b717SStephen Warren 
7*4581b717SStephen Warren #include <common.h>
8*4581b717SStephen Warren #include <dm.h>
9*4581b717SStephen Warren #include <reset.h>
10*4581b717SStephen Warren #include <asm/io.h>
11*4581b717SStephen Warren #include <asm/reset.h>
12*4581b717SStephen Warren 
13*4581b717SStephen Warren struct sandbox_reset_test {
14*4581b717SStephen Warren 	struct reset_ctl ctl;
15*4581b717SStephen Warren };
16*4581b717SStephen Warren 
17*4581b717SStephen Warren int sandbox_reset_test_get(struct udevice *dev)
18*4581b717SStephen Warren {
19*4581b717SStephen Warren 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
20*4581b717SStephen Warren 
21*4581b717SStephen Warren 	return reset_get_by_name(dev, "test", &sbrt->ctl);
22*4581b717SStephen Warren }
23*4581b717SStephen Warren 
24*4581b717SStephen Warren int sandbox_reset_test_assert(struct udevice *dev)
25*4581b717SStephen Warren {
26*4581b717SStephen Warren 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
27*4581b717SStephen Warren 
28*4581b717SStephen Warren 	return reset_assert(&sbrt->ctl);
29*4581b717SStephen Warren }
30*4581b717SStephen Warren 
31*4581b717SStephen Warren int sandbox_reset_test_deassert(struct udevice *dev)
32*4581b717SStephen Warren {
33*4581b717SStephen Warren 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
34*4581b717SStephen Warren 
35*4581b717SStephen Warren 	return reset_deassert(&sbrt->ctl);
36*4581b717SStephen Warren }
37*4581b717SStephen Warren 
38*4581b717SStephen Warren int sandbox_reset_test_free(struct udevice *dev)
39*4581b717SStephen Warren {
40*4581b717SStephen Warren 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
41*4581b717SStephen Warren 
42*4581b717SStephen Warren 	return reset_free(&sbrt->ctl);
43*4581b717SStephen Warren }
44*4581b717SStephen Warren 
45*4581b717SStephen Warren static const struct udevice_id sandbox_reset_test_ids[] = {
46*4581b717SStephen Warren 	{ .compatible = "sandbox,reset-ctl-test" },
47*4581b717SStephen Warren 	{ }
48*4581b717SStephen Warren };
49*4581b717SStephen Warren 
50*4581b717SStephen Warren U_BOOT_DRIVER(sandbox_reset_test) = {
51*4581b717SStephen Warren 	.name = "sandbox_reset_test",
52*4581b717SStephen Warren 	.id = UCLASS_MISC,
53*4581b717SStephen Warren 	.of_match = sandbox_reset_test_ids,
54*4581b717SStephen Warren 	.priv_auto_alloc_size = sizeof(struct sandbox_reset_test),
55*4581b717SStephen Warren };
56