xref: /rk3399_rockchip-uboot/drivers/power/domain/sandbox-power-domain-test.c (revision fe34b6a4845476208ca7d19a35179e56bebf3877)
1*61f5ddcbSStephen Warren /*
2*61f5ddcbSStephen Warren  * Copyright (c) 2016, NVIDIA CORPORATION.
3*61f5ddcbSStephen Warren  *
4*61f5ddcbSStephen Warren  * SPDX-License-Identifier: GPL-2.0
5*61f5ddcbSStephen Warren  */
6*61f5ddcbSStephen Warren 
7*61f5ddcbSStephen Warren #include <common.h>
8*61f5ddcbSStephen Warren #include <dm.h>
9*61f5ddcbSStephen Warren #include <power-domain.h>
10*61f5ddcbSStephen Warren #include <asm/io.h>
11*61f5ddcbSStephen Warren #include <asm/power-domain.h>
12*61f5ddcbSStephen Warren 
13*61f5ddcbSStephen Warren struct sandbox_power_domain_test {
14*61f5ddcbSStephen Warren 	struct power_domain pd;
15*61f5ddcbSStephen Warren };
16*61f5ddcbSStephen Warren 
sandbox_power_domain_test_get(struct udevice * dev)17*61f5ddcbSStephen Warren int sandbox_power_domain_test_get(struct udevice *dev)
18*61f5ddcbSStephen Warren {
19*61f5ddcbSStephen Warren 	struct sandbox_power_domain_test *sbrt = dev_get_priv(dev);
20*61f5ddcbSStephen Warren 
21*61f5ddcbSStephen Warren 	return power_domain_get(dev, &sbrt->pd);
22*61f5ddcbSStephen Warren }
23*61f5ddcbSStephen Warren 
sandbox_power_domain_test_on(struct udevice * dev)24*61f5ddcbSStephen Warren int sandbox_power_domain_test_on(struct udevice *dev)
25*61f5ddcbSStephen Warren {
26*61f5ddcbSStephen Warren 	struct sandbox_power_domain_test *sbrt = dev_get_priv(dev);
27*61f5ddcbSStephen Warren 
28*61f5ddcbSStephen Warren 	return power_domain_on(&sbrt->pd);
29*61f5ddcbSStephen Warren }
30*61f5ddcbSStephen Warren 
sandbox_power_domain_test_off(struct udevice * dev)31*61f5ddcbSStephen Warren int sandbox_power_domain_test_off(struct udevice *dev)
32*61f5ddcbSStephen Warren {
33*61f5ddcbSStephen Warren 	struct sandbox_power_domain_test *sbrt = dev_get_priv(dev);
34*61f5ddcbSStephen Warren 
35*61f5ddcbSStephen Warren 	return power_domain_off(&sbrt->pd);
36*61f5ddcbSStephen Warren }
37*61f5ddcbSStephen Warren 
sandbox_power_domain_test_free(struct udevice * dev)38*61f5ddcbSStephen Warren int sandbox_power_domain_test_free(struct udevice *dev)
39*61f5ddcbSStephen Warren {
40*61f5ddcbSStephen Warren 	struct sandbox_power_domain_test *sbrt = dev_get_priv(dev);
41*61f5ddcbSStephen Warren 
42*61f5ddcbSStephen Warren 	return power_domain_free(&sbrt->pd);
43*61f5ddcbSStephen Warren }
44*61f5ddcbSStephen Warren 
45*61f5ddcbSStephen Warren static const struct udevice_id sandbox_power_domain_test_ids[] = {
46*61f5ddcbSStephen Warren 	{ .compatible = "sandbox,power-domain-test" },
47*61f5ddcbSStephen Warren 	{ }
48*61f5ddcbSStephen Warren };
49*61f5ddcbSStephen Warren 
50*61f5ddcbSStephen Warren U_BOOT_DRIVER(sandbox_power_domain_test) = {
51*61f5ddcbSStephen Warren 	.name = "sandbox_power_domain_test",
52*61f5ddcbSStephen Warren 	.id = UCLASS_MISC,
53*61f5ddcbSStephen Warren 	.of_match = sandbox_power_domain_test_ids,
54*61f5ddcbSStephen Warren 	.priv_auto_alloc_size = sizeof(struct sandbox_power_domain_test),
55*61f5ddcbSStephen Warren };
56