Blame view
drivers/clk/clk_fixed_rate.c
1.12 KB
b21e20b25 clk: add fixed ra... |
1 2 3 4 5 6 7 |
/* * Copyright (C) 2016 Masahiro Yamada <yamada.masahiro@socionext.com> * * SPDX-License-Identifier: GPL-2.0+ */ #include <common.h> |
135aa9500 clk: convert API ... |
8 |
#include <clk-uclass.h> |
9d922450a dm: Use dm.h head... |
9 |
#include <dm.h> |
b21e20b25 clk: add fixed ra... |
10 |
|
b21e20b25 clk: add fixed ra... |
11 12 13 14 15 |
struct clk_fixed_rate { unsigned long fixed_rate; }; #define to_clk_fixed_rate(dev) ((struct clk_fixed_rate *)dev_get_platdata(dev)) |
135aa9500 clk: convert API ... |
16 |
static ulong clk_fixed_rate_get_rate(struct clk *clk) |
b21e20b25 clk: add fixed ra... |
17 |
{ |
135aa9500 clk: convert API ... |
18 19 |
if (clk->id != 0) return -EINVAL; |
b21e20b25 clk: add fixed ra... |
20 |
|
135aa9500 clk: convert API ... |
21 |
return to_clk_fixed_rate(clk->dev)->fixed_rate; |
b21e20b25 clk: add fixed ra... |
22 23 24 25 |
} const struct clk_ops clk_fixed_rate_ops = { .get_rate = clk_fixed_rate_get_rate, |
b21e20b25 clk: add fixed ra... |
26 27 28 29 |
}; static int clk_fixed_rate_ofdata_to_platdata(struct udevice *dev) { |
7423daa60 dm: clk: Add supp... |
30 |
#if !CONFIG_IS_ENABLED(OF_PLATDATA) |
e2db9e7a0 clk: clk_fixed_ra... |
31 32 |
to_clk_fixed_rate(dev)->fixed_rate = dev_read_u32_default(dev, "clock-frequency", 0); |
7423daa60 dm: clk: Add supp... |
33 |
#endif |
b21e20b25 clk: add fixed ra... |
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
return 0; } static const struct udevice_id clk_fixed_rate_match[] = { { .compatible = "fixed-clock", }, { /* sentinel */ } }; U_BOOT_DRIVER(clk_fixed_rate) = { .name = "fixed_rate_clock", .id = UCLASS_CLK, .of_match = clk_fixed_rate_match, .ofdata_to_platdata = clk_fixed_rate_ofdata_to_platdata, .platdata_auto_alloc_size = sizeof(struct clk_fixed_rate), .ops = &clk_fixed_rate_ops, }; |