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 Warrenint 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 Warrenint 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 Warrenint 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 Warrenint 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