uboot/arch/arm/mach-rockchip/rk3399/clk_rk3399.c
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2016 Google, Inc
   3 * Written by Simon Glass <sjg@chromium.org>
   4 *
   5 * SPDX-License-Identifier:     GPL-2.0+
   6 */
   7
   8#include <common.h>
   9#include <dm.h>
  10#include <syscon.h>
  11#include <asm/arch/clock.h>
  12#include <asm/arch/cru_rk3399.h>
  13
  14static int rockchip_get_cruclk(struct udevice **devp)
  15{
  16        return uclass_get_device_by_driver(UCLASS_CLK,
  17                        DM_GET_DRIVER(clk_rk3399), devp);
  18}
  19
  20void *rockchip_get_cru(void)
  21{
  22        struct rk3399_clk_priv *priv;
  23        struct udevice *dev;
  24        int ret;
  25
  26        ret = rockchip_get_cruclk(&dev);
  27        if (ret)
  28                return ERR_PTR(ret);
  29
  30        priv = dev_get_priv(dev);
  31
  32        return priv->cru;
  33}
  34
  35static int rockchip_get_pmucruclk(struct udevice **devp)
  36{
  37        return uclass_get_device_by_driver(UCLASS_CLK,
  38                        DM_GET_DRIVER(rockchip_rk3399_pmuclk), devp);
  39}
  40
  41void *rockchip_get_pmucru(void)
  42{
  43        struct rk3399_pmuclk_priv *priv;
  44        struct udevice *dev;
  45        int ret;
  46
  47        ret = rockchip_get_pmucruclk(&dev);
  48        if (ret)
  49                return ERR_PTR(ret);
  50
  51        priv = dev_get_priv(dev);
  52
  53        return priv->pmucru;
  54}
  55