These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / clk / zte / clk.h
1 /*
2  * Copyright 2015 Linaro Ltd.
3  * Copyright (C) 2014 ZTE Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation.
8  */
9
10 #ifndef __ZTE_CLK_H
11 #define __ZTE_CLK_H
12 #include <linux/clk-provider.h>
13 #include <linux/spinlock.h>
14
15 struct zx_pll_config {
16         unsigned long rate;
17         u32 cfg0;
18         u32 cfg1;
19 };
20
21 struct clk_zx_pll {
22         struct clk_hw hw;
23         void __iomem *reg_base;
24         const struct zx_pll_config *lookup_table; /* order by rate asc */
25         int count;
26         spinlock_t *lock;
27 };
28
29 struct clk *clk_register_zx_pll(const char *name, const char *parent_name,
30         unsigned long flags, void __iomem *reg_base,
31         const struct zx_pll_config *lookup_table, int count, spinlock_t *lock);
32
33 struct clk_zx_audio {
34         struct clk_hw hw;
35         void __iomem *reg_base;
36 };
37
38 struct clk *clk_register_zx_audio(const char *name,
39                                   const char * const parent_name,
40                                   unsigned long flags, void __iomem *reg_base);
41 #endif