blob: b42485da704eaa495ab56d976668e063dd9f8dde [file] [log] [blame]
Ulf Hansson3b01f872012-08-27 15:45:50 +02001/*
2 * Clocks for ux500 platforms
3 *
4 * Copyright (C) 2012 ST-Ericsson SA
5 * Author: Ulf Hansson <ulf.hansson@linaro.org>
6 *
7 * License terms: GNU General Public License (GPL) version 2
8 */
9
10#ifndef __UX500_CLK_H
11#define __UX500_CLK_H
12
Ulf Hansson5b82d032013-04-03 14:26:57 +020013#include <linux/device.h>
Mike Turquettec7008352013-04-22 11:46:10 -070014#include <linux/types.h>
Ulf Hansson3b01f872012-08-27 15:45:50 +020015
Stephen Boyda162ca92015-06-19 15:00:46 -070016struct clk;
17
Ulf Hansson3b01f872012-08-27 15:45:50 +020018struct clk *clk_reg_prcc_pclk(const char *name,
19 const char *parent_name,
Mike Turquettec7008352013-04-22 11:46:10 -070020 resource_size_t phy_base,
Ulf Hansson3b01f872012-08-27 15:45:50 +020021 u32 cg_sel,
22 unsigned long flags);
23
24struct clk *clk_reg_prcc_kclk(const char *name,
25 const char *parent_name,
Mike Turquettec7008352013-04-22 11:46:10 -070026 resource_size_t phy_base,
Ulf Hansson3b01f872012-08-27 15:45:50 +020027 u32 cg_sel,
28 unsigned long flags);
29
30struct clk *clk_reg_prcmu_scalable(const char *name,
31 const char *parent_name,
32 u8 cg_sel,
33 unsigned long rate,
34 unsigned long flags);
35
36struct clk *clk_reg_prcmu_gate(const char *name,
37 const char *parent_name,
38 u8 cg_sel,
39 unsigned long flags);
40
Ulf Hanssona816d252012-10-10 13:42:27 +020041struct clk *clk_reg_prcmu_scalable_rate(const char *name,
42 const char *parent_name,
43 u8 cg_sel,
44 unsigned long rate,
45 unsigned long flags);
46
Ulf Hansson70b1fce2012-08-31 14:21:29 +020047struct clk *clk_reg_prcmu_rate(const char *name,
48 const char *parent_name,
49 u8 cg_sel,
50 unsigned long flags);
51
Ulf Hansson3b01f872012-08-27 15:45:50 +020052struct clk *clk_reg_prcmu_opp_gate(const char *name,
53 const char *parent_name,
54 u8 cg_sel,
55 unsigned long flags);
56
Ulf Hanssonb0ea0fc2012-09-24 16:43:18 +020057struct clk *clk_reg_prcmu_opp_volt_scalable(const char *name,
58 const char *parent_name,
59 u8 cg_sel,
60 unsigned long rate,
61 unsigned long flags);
62
Ulf Hansson5b82d032013-04-03 14:26:57 +020063struct clk *clk_reg_sysctrl_gate(struct device *dev,
64 const char *name,
65 const char *parent_name,
66 u16 reg_sel,
67 u8 reg_mask,
68 u8 reg_bits,
69 unsigned long enable_delay_us,
70 unsigned long flags);
71
72struct clk *clk_reg_sysctrl_gate_fixed_rate(struct device *dev,
73 const char *name,
74 const char *parent_name,
75 u16 reg_sel,
76 u8 reg_mask,
77 u8 reg_bits,
78 unsigned long rate,
79 unsigned long enable_delay_us,
80 unsigned long flags);
81
82struct clk *clk_reg_sysctrl_set_parent(struct device *dev,
83 const char *name,
84 const char **parent_names,
85 u8 num_parents,
86 u16 *reg_sel,
87 u8 *reg_mask,
88 u8 *reg_bits,
89 unsigned long flags);
90
Ulf Hansson3b01f872012-08-27 15:45:50 +020091#endif /* __UX500_CLK_H */