1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0
24581b717SStephen Warren /*
34581b717SStephen Warren * Copyright (c) 2016, NVIDIA CORPORATION.
44581b717SStephen Warren */
54581b717SStephen Warren
64581b717SStephen Warren #include <common.h>
74581b717SStephen Warren #include <dm.h>
84581b717SStephen Warren #include <reset.h>
94581b717SStephen Warren #include <asm/io.h>
104581b717SStephen Warren #include <asm/reset.h>
114581b717SStephen Warren
124581b717SStephen Warren struct sandbox_reset_test {
134581b717SStephen Warren struct reset_ctl ctl;
1491f5f8b7SNeil Armstrong struct reset_ctl_bulk bulk;
154581b717SStephen Warren };
164581b717SStephen Warren
sandbox_reset_test_get(struct udevice * dev)174581b717SStephen Warren int sandbox_reset_test_get(struct udevice *dev)
184581b717SStephen Warren {
194581b717SStephen Warren struct sandbox_reset_test *sbrt = dev_get_priv(dev);
204581b717SStephen Warren
214581b717SStephen Warren return reset_get_by_name(dev, "test", &sbrt->ctl);
224581b717SStephen Warren }
234581b717SStephen Warren
sandbox_reset_test_get_bulk(struct udevice * dev)2491f5f8b7SNeil Armstrong int sandbox_reset_test_get_bulk(struct udevice *dev)
2591f5f8b7SNeil Armstrong {
2691f5f8b7SNeil Armstrong struct sandbox_reset_test *sbrt = dev_get_priv(dev);
2791f5f8b7SNeil Armstrong
2891f5f8b7SNeil Armstrong return reset_get_bulk(dev, &sbrt->bulk);
2991f5f8b7SNeil Armstrong }
3091f5f8b7SNeil Armstrong
sandbox_reset_test_assert(struct udevice * dev)314581b717SStephen Warren int sandbox_reset_test_assert(struct udevice *dev)
324581b717SStephen Warren {
334581b717SStephen Warren struct sandbox_reset_test *sbrt = dev_get_priv(dev);
344581b717SStephen Warren
354581b717SStephen Warren return reset_assert(&sbrt->ctl);
364581b717SStephen Warren }
374581b717SStephen Warren
sandbox_reset_test_assert_bulk(struct udevice * dev)3891f5f8b7SNeil Armstrong int sandbox_reset_test_assert_bulk(struct udevice *dev)
3991f5f8b7SNeil Armstrong {
4091f5f8b7SNeil Armstrong struct sandbox_reset_test *sbrt = dev_get_priv(dev);
4191f5f8b7SNeil Armstrong
4291f5f8b7SNeil Armstrong return reset_assert_bulk(&sbrt->bulk);
4391f5f8b7SNeil Armstrong }
4491f5f8b7SNeil Armstrong
sandbox_reset_test_deassert(struct udevice * dev)454581b717SStephen Warren int sandbox_reset_test_deassert(struct udevice *dev)
464581b717SStephen Warren {
474581b717SStephen Warren struct sandbox_reset_test *sbrt = dev_get_priv(dev);
484581b717SStephen Warren
494581b717SStephen Warren return reset_deassert(&sbrt->ctl);
504581b717SStephen Warren }
514581b717SStephen Warren
sandbox_reset_test_deassert_bulk(struct udevice * dev)5291f5f8b7SNeil Armstrong int sandbox_reset_test_deassert_bulk(struct udevice *dev)
5391f5f8b7SNeil Armstrong {
5491f5f8b7SNeil Armstrong struct sandbox_reset_test *sbrt = dev_get_priv(dev);
5591f5f8b7SNeil Armstrong
5691f5f8b7SNeil Armstrong return reset_deassert_bulk(&sbrt->bulk);
5791f5f8b7SNeil Armstrong }
5891f5f8b7SNeil Armstrong
sandbox_reset_test_free(struct udevice * dev)594581b717SStephen Warren int sandbox_reset_test_free(struct udevice *dev)
604581b717SStephen Warren {
614581b717SStephen Warren struct sandbox_reset_test *sbrt = dev_get_priv(dev);
624581b717SStephen Warren
634581b717SStephen Warren return reset_free(&sbrt->ctl);
644581b717SStephen Warren }
654581b717SStephen Warren
sandbox_reset_test_release_bulk(struct udevice * dev)6691f5f8b7SNeil Armstrong int sandbox_reset_test_release_bulk(struct udevice *dev)
6791f5f8b7SNeil Armstrong {
6891f5f8b7SNeil Armstrong struct sandbox_reset_test *sbrt = dev_get_priv(dev);
6991f5f8b7SNeil Armstrong
7091f5f8b7SNeil Armstrong return reset_release_bulk(&sbrt->bulk);
7191f5f8b7SNeil Armstrong }
7291f5f8b7SNeil Armstrong
734581b717SStephen Warren static const struct udevice_id sandbox_reset_test_ids[] = {
744581b717SStephen Warren { .compatible = "sandbox,reset-ctl-test" },
754581b717SStephen Warren { }
764581b717SStephen Warren };
774581b717SStephen Warren
784581b717SStephen Warren U_BOOT_DRIVER(sandbox_reset_test) = {
794581b717SStephen Warren .name = "sandbox_reset_test",
804581b717SStephen Warren .id = UCLASS_MISC,
814581b717SStephen Warren .of_match = sandbox_reset_test_ids,
824581b717SStephen Warren .priv_auto_alloc_size = sizeof(struct sandbox_reset_test),
834581b717SStephen Warren };
84