]>
Commit | Line | Data |
---|---|---|
f26c8a8e SG |
1 | /* |
2 | * Copyright (C) 2015 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 <clk.h> | |
10 | #include <dm.h> | |
11 | #include <errno.h> | |
12 | #include <dm/lists.h> | |
13 | #include <dm/root.h> | |
14 | ||
15 | ulong clk_get_rate(struct udevice *dev) | |
16 | { | |
17 | struct clk_ops *ops = clk_get_ops(dev); | |
18 | ||
19 | if (!ops->get_rate) | |
20 | return -ENOSYS; | |
21 | ||
22 | return ops->get_rate(dev); | |
23 | } | |
24 | ||
25 | ulong clk_set_rate(struct udevice *dev, ulong rate) | |
26 | { | |
27 | struct clk_ops *ops = clk_get_ops(dev); | |
28 | ||
29 | if (!ops->set_rate) | |
30 | return -ENOSYS; | |
31 | ||
32 | return ops->set_rate(dev, rate); | |
33 | } | |
34 | ||
35 | ulong clk_get_periph_rate(struct udevice *dev, int periph) | |
36 | { | |
37 | struct clk_ops *ops = clk_get_ops(dev); | |
38 | ||
39 | if (!ops->get_periph_rate) | |
40 | return -ENOSYS; | |
41 | ||
42 | return ops->get_periph_rate(dev, periph); | |
43 | } | |
44 | ||
45 | ulong clk_set_periph_rate(struct udevice *dev, int periph, ulong rate) | |
46 | { | |
47 | struct clk_ops *ops = clk_get_ops(dev); | |
48 | ||
49 | if (!ops->set_periph_rate) | |
50 | return -ENOSYS; | |
51 | ||
52 | return ops->set_periph_rate(dev, periph, rate); | |
53 | } | |
54 | ||
55 | UCLASS_DRIVER(clk) = { | |
56 | .id = UCLASS_CLK, | |
57 | .name = "clk", | |
58 | }; |