2 * Copyright (C) 2016 Socionext Inc.
3 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
16 #include <linux/clk-provider.h>
17 #include <linux/device.h>
19 #include "clk-uniphier.h"
21 struct clk_hw
*uniphier_clk_register_fixed_rate(struct device
*dev
,
23 const struct uniphier_clk_fixed_rate_data
*data
)
25 struct clk_fixed_rate
*fixed
;
26 struct clk_init_data init
;
29 /* allocate fixed-rate clock */
30 fixed
= devm_kzalloc(dev
, sizeof(*fixed
), GFP_KERNEL
);
32 return ERR_PTR(-ENOMEM
);
35 init
.ops
= &clk_fixed_rate_ops
;
36 init
.parent_names
= NULL
;
39 fixed
->fixed_rate
= data
->fixed_rate
;
40 fixed
->hw
.init
= &init
;
42 ret
= devm_clk_hw_register(dev
, &fixed
->hw
);