root/drivers/clk/loongson1/clk.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. clk_hw_register_pll

   1 // SPDX-License-Identifier: GPL-2.0-or-later
   2 /*
   3  * Copyright (c) 2012-2016 Zhang, Keguang <keguang.zhang@gmail.com>
   4  */
   5 
   6 #include <linux/clk-provider.h>
   7 #include <linux/slab.h>
   8 
   9 #include "clk.h"
  10 
  11 struct clk_hw *__init clk_hw_register_pll(struct device *dev,
  12                                           const char *name,
  13                                           const char *parent_name,
  14                                           const struct clk_ops *ops,
  15                                           unsigned long flags)
  16 {
  17         int ret;
  18         struct clk_hw *hw;
  19         struct clk_init_data init;
  20 
  21         /* allocate the divider */
  22         hw = kzalloc(sizeof(*hw), GFP_KERNEL);
  23         if (!hw)
  24                 return ERR_PTR(-ENOMEM);
  25 
  26         init.name = name;
  27         init.ops = ops;
  28         init.flags = flags;
  29         init.parent_names = parent_name ? &parent_name : NULL;
  30         init.num_parents = parent_name ? 1 : 0;
  31         hw->init = &init;
  32 
  33         /* register the clock */
  34         ret = clk_hw_register(dev, hw);
  35         if (ret) {
  36                 kfree(hw);
  37                 hw = ERR_PTR(ret);
  38         }
  39 
  40         return hw;
  41 }

/* [<][>][^][v][top][bottom][index][help] */