1 /* 2 * (C) Copyright 2020 Rockchip Electronics Co., Ltd. 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7 #include <common.h> 8 #include <dm.h> 9 #include <syscon.h> 10 #include <asm/arch/clock.h> 11 #include <asm/arch/cru_rk3588.h> 12 rockchip_get_clk(struct udevice ** devp)13int rockchip_get_clk(struct udevice **devp) 14 { 15 return uclass_get_device_by_driver(UCLASS_CLK, 16 DM_GET_DRIVER(rockchip_rk3588_cru), devp); 17 } 18 19 #if CONFIG_IS_ENABLED(CLK_SCMI) rockchip_get_scmi_clk(struct udevice ** devp)20int rockchip_get_scmi_clk(struct udevice **devp) 21 { 22 return uclass_get_device_by_driver(UCLASS_CLK, 23 DM_GET_DRIVER(scmi_clock), devp); 24 } 25 #endif 26 rockchip_get_cru(void)27void *rockchip_get_cru(void) 28 { 29 struct rk3588_clk_priv *priv; 30 struct udevice *dev; 31 int ret; 32 33 ret = rockchip_get_clk(&dev); 34 if (ret) 35 return ERR_PTR(ret); 36 37 priv = dev_get_priv(dev); 38 39 return priv->cru; 40 } 41 42