xref: /OK3568_Linux_fs/u-boot/drivers/reset/sandbox-reset-test.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright (c) 2016, NVIDIA CORPORATION.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * SPDX-License-Identifier: GPL-2.0
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #include <common.h>
8*4882a593Smuzhiyun #include <dm.h>
9*4882a593Smuzhiyun #include <reset.h>
10*4882a593Smuzhiyun #include <asm/io.h>
11*4882a593Smuzhiyun #include <asm/reset.h>
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun struct sandbox_reset_test {
14*4882a593Smuzhiyun 	struct reset_ctl ctl;
15*4882a593Smuzhiyun 	struct reset_ctl_bulk bulk;
16*4882a593Smuzhiyun };
17*4882a593Smuzhiyun 
sandbox_reset_test_get(struct udevice * dev)18*4882a593Smuzhiyun int sandbox_reset_test_get(struct udevice *dev)
19*4882a593Smuzhiyun {
20*4882a593Smuzhiyun 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun 	return reset_get_by_name(dev, "test", &sbrt->ctl);
23*4882a593Smuzhiyun }
24*4882a593Smuzhiyun 
sandbox_reset_test_get_bulk(struct udevice * dev)25*4882a593Smuzhiyun int sandbox_reset_test_get_bulk(struct udevice *dev)
26*4882a593Smuzhiyun {
27*4882a593Smuzhiyun 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun 	return reset_get_bulk(dev, &sbrt->bulk);
30*4882a593Smuzhiyun }
31*4882a593Smuzhiyun 
sandbox_reset_test_assert(struct udevice * dev)32*4882a593Smuzhiyun int sandbox_reset_test_assert(struct udevice *dev)
33*4882a593Smuzhiyun {
34*4882a593Smuzhiyun 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun 	return reset_assert(&sbrt->ctl);
37*4882a593Smuzhiyun }
38*4882a593Smuzhiyun 
sandbox_reset_test_assert_bulk(struct udevice * dev)39*4882a593Smuzhiyun int sandbox_reset_test_assert_bulk(struct udevice *dev)
40*4882a593Smuzhiyun {
41*4882a593Smuzhiyun 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun 	return reset_assert_bulk(&sbrt->bulk);
44*4882a593Smuzhiyun }
45*4882a593Smuzhiyun 
sandbox_reset_test_deassert(struct udevice * dev)46*4882a593Smuzhiyun int sandbox_reset_test_deassert(struct udevice *dev)
47*4882a593Smuzhiyun {
48*4882a593Smuzhiyun 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun 	return reset_deassert(&sbrt->ctl);
51*4882a593Smuzhiyun }
52*4882a593Smuzhiyun 
sandbox_reset_test_deassert_bulk(struct udevice * dev)53*4882a593Smuzhiyun int sandbox_reset_test_deassert_bulk(struct udevice *dev)
54*4882a593Smuzhiyun {
55*4882a593Smuzhiyun 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
56*4882a593Smuzhiyun 
57*4882a593Smuzhiyun 	return reset_deassert_bulk(&sbrt->bulk);
58*4882a593Smuzhiyun }
59*4882a593Smuzhiyun 
sandbox_reset_test_free(struct udevice * dev)60*4882a593Smuzhiyun int sandbox_reset_test_free(struct udevice *dev)
61*4882a593Smuzhiyun {
62*4882a593Smuzhiyun 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
63*4882a593Smuzhiyun 
64*4882a593Smuzhiyun 	return reset_free(&sbrt->ctl);
65*4882a593Smuzhiyun }
66*4882a593Smuzhiyun 
sandbox_reset_test_release_bulk(struct udevice * dev)67*4882a593Smuzhiyun int sandbox_reset_test_release_bulk(struct udevice *dev)
68*4882a593Smuzhiyun {
69*4882a593Smuzhiyun 	struct sandbox_reset_test *sbrt = dev_get_priv(dev);
70*4882a593Smuzhiyun 
71*4882a593Smuzhiyun 	return reset_release_bulk(&sbrt->bulk);
72*4882a593Smuzhiyun }
73*4882a593Smuzhiyun 
74*4882a593Smuzhiyun static const struct udevice_id sandbox_reset_test_ids[] = {
75*4882a593Smuzhiyun 	{ .compatible = "sandbox,reset-ctl-test" },
76*4882a593Smuzhiyun 	{ }
77*4882a593Smuzhiyun };
78*4882a593Smuzhiyun 
79*4882a593Smuzhiyun U_BOOT_DRIVER(sandbox_reset_test) = {
80*4882a593Smuzhiyun 	.name = "sandbox_reset_test",
81*4882a593Smuzhiyun 	.id = UCLASS_MISC,
82*4882a593Smuzhiyun 	.of_match = sandbox_reset_test_ids,
83*4882a593Smuzhiyun 	.priv_auto_alloc_size = sizeof(struct sandbox_reset_test),
84*4882a593Smuzhiyun };
85