xref: /openbmc/u-boot/drivers/clk/at91/clk-slow.c (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+
29e5935c0SWenyou Yang /*
39e5935c0SWenyou Yang  * Copyright (C) 2016 Atmel Corporation
49e5935c0SWenyou Yang  *               Wenyou.Yang <wenyou.yang@atmel.com>
59e5935c0SWenyou Yang  */
69e5935c0SWenyou Yang 
79e5935c0SWenyou Yang #include <common.h>
89e5935c0SWenyou Yang #include <clk-uclass.h>
99d922450SSimon Glass #include <dm.h>
109e5935c0SWenyou Yang 
at91_slow_clk_enable(struct clk * clk)119e5935c0SWenyou Yang static int at91_slow_clk_enable(struct clk *clk)
129e5935c0SWenyou Yang {
139e5935c0SWenyou Yang 	return 0;
149e5935c0SWenyou Yang }
159e5935c0SWenyou Yang 
at91_slow_clk_get_rate(struct clk * clk)169e5935c0SWenyou Yang static ulong at91_slow_clk_get_rate(struct clk *clk)
179e5935c0SWenyou Yang {
189e5935c0SWenyou Yang 	return CONFIG_SYS_AT91_SLOW_CLOCK;
199e5935c0SWenyou Yang }
209e5935c0SWenyou Yang 
219e5935c0SWenyou Yang static struct clk_ops at91_slow_clk_ops = {
229e5935c0SWenyou Yang 	.enable = at91_slow_clk_enable,
239e5935c0SWenyou Yang 	.get_rate = at91_slow_clk_get_rate,
249e5935c0SWenyou Yang };
259e5935c0SWenyou Yang 
269e5935c0SWenyou Yang static const struct udevice_id at91_slow_clk_match[] = {
279e5935c0SWenyou Yang 	{ .compatible = "atmel,at91sam9x5-clk-slow" },
289e5935c0SWenyou Yang 	{}
299e5935c0SWenyou Yang };
309e5935c0SWenyou Yang 
319e5935c0SWenyou Yang U_BOOT_DRIVER(at91_slow_clk) = {
329e5935c0SWenyou Yang 	.name = "at91-slow-clk",
339e5935c0SWenyou Yang 	.id = UCLASS_CLK,
349e5935c0SWenyou Yang 	.of_match = at91_slow_clk_match,
359e5935c0SWenyou Yang 	.ops = &at91_slow_clk_ops,
369e5935c0SWenyou Yang };
37