Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.10.11.
 1/* SPDX-License-Identifier:    GPL-2.0 */
 2/*
 3 * Copyright (C) 2017, Intel Corporation
 4 */
 5
 6#ifndef	__STRATIX10_CLK_H
 7#define	__STRATIX10_CLK_H
 8
 9struct stratix10_clock_data {
10	struct clk_hw_onecell_data	clk_data;
11	void __iomem		*base;
12};
13
14struct stratix10_pll_clock {
15	unsigned int		id;
16	const char		*name;
17	const struct clk_parent_data	*parent_data;
18	u8			num_parents;
19	unsigned long		flags;
20	unsigned long		offset;
21};
22
23struct stratix10_perip_c_clock {
24	unsigned int		id;
25	const char		*name;
26	const char		*parent_name;
27	const struct clk_parent_data	*parent_data;
28	u8			num_parents;
29	unsigned long		flags;
30	unsigned long		offset;
31};
32
33struct n5x_perip_c_clock {
34	unsigned int		id;
35	const char		*name;
36	const char		*parent_name;
37	const char		*const *parent_names;
38	u8			num_parents;
39	unsigned long		flags;
40	unsigned long		offset;
41	unsigned long		shift;
42};
43
44struct stratix10_perip_cnt_clock {
45	unsigned int		id;
46	const char		*name;
47	const char		*parent_name;
48	const struct clk_parent_data	*parent_data;
49	u8			num_parents;
50	unsigned long		flags;
51	unsigned long		offset;
52	u8			fixed_divider;
53	unsigned long		bypass_reg;
54	unsigned long		bypass_shift;
55};
56
57struct stratix10_gate_clock {
58	unsigned int		id;
59	const char		*name;
60	const char		*parent_name;
61	const struct clk_parent_data	*parent_data;
62	u8			num_parents;
63	unsigned long		flags;
64	unsigned long		gate_reg;
65	u8			gate_idx;
66	unsigned long		div_reg;
67	u8			div_offset;
68	u8			div_width;
69	unsigned long		bypass_reg;
70	u8			bypass_shift;
71	u8			fixed_div;
72};
73
74struct clk_hw *s10_register_pll(const struct stratix10_pll_clock *clks,
75			     void __iomem *reg);
76struct clk_hw *agilex_register_pll(const struct stratix10_pll_clock *clks,
77				void __iomem *reg);
78struct clk_hw *n5x_register_pll(const struct stratix10_pll_clock *clks,
79			     void __iomem *reg);
80struct clk_hw *s10_register_periph(const struct stratix10_perip_c_clock *clks,
81				void __iomem *reg);
82struct clk_hw *n5x_register_periph(const struct n5x_perip_c_clock *clks,
83				void __iomem *reg);
84struct clk_hw *s10_register_cnt_periph(const struct stratix10_perip_cnt_clock *clks,
85				    void __iomem *reg);
86struct clk_hw *s10_register_gate(const struct stratix10_gate_clock *clks,
87			      void __iomem *reg);
88struct clk_hw *agilex_register_gate(const struct stratix10_gate_clock *clks,
89			      void __iomem *reg);
90#endif	/* __STRATIX10_CLK_H */