1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
- * Copyright (C) 2017, Intel Corporation
- */
- #ifndef __STRATIX10_CLK_H
- #define __STRATIX10_CLK_H
- struct stratix10_clock_data {
- void __iomem *base;
- /* Must be last */
- struct clk_hw_onecell_data clk_data;
- };
- struct stratix10_pll_clock {
- unsigned int id;
- const char *name;
- const struct clk_parent_data *parent_data;
- u8 num_parents;
- unsigned long flags;
- unsigned long offset;
- };
- struct stratix10_perip_c_clock {
- unsigned int id;
- const char *name;
- const char *parent_name;
- const struct clk_parent_data *parent_data;
- u8 num_parents;
- unsigned long flags;
- unsigned long offset;
- };
- struct n5x_perip_c_clock {
- unsigned int id;
- const char *name;
- const char *parent_name;
- const char *const *parent_names;
- u8 num_parents;
- unsigned long flags;
- unsigned long offset;
- unsigned long shift;
- };
- struct stratix10_perip_cnt_clock {
- unsigned int id;
- const char *name;
- const char *parent_name;
- const struct clk_parent_data *parent_data;
- u8 num_parents;
- unsigned long flags;
- unsigned long offset;
- u8 fixed_divider;
- unsigned long bypass_reg;
- unsigned long bypass_shift;
- };
- struct stratix10_gate_clock {
- unsigned int id;
- const char *name;
- const char *parent_name;
- const struct clk_parent_data *parent_data;
- u8 num_parents;
- unsigned long flags;
- unsigned long gate_reg;
- u8 gate_idx;
- unsigned long div_reg;
- u8 div_offset;
- u8 div_width;
- unsigned long bypass_reg;
- u8 bypass_shift;
- u8 fixed_div;
- };
- struct clk_hw *s10_register_pll(const struct stratix10_pll_clock *clks,
- void __iomem *reg);
- struct clk_hw *agilex_register_pll(const struct stratix10_pll_clock *clks,
- void __iomem *reg);
- struct clk_hw *n5x_register_pll(const struct stratix10_pll_clock *clks,
- void __iomem *reg);
- struct clk_hw *s10_register_periph(const struct stratix10_perip_c_clock *clks,
- void __iomem *reg);
- struct clk_hw *n5x_register_periph(const struct n5x_perip_c_clock *clks,
- void __iomem *reg);
- struct clk_hw *s10_register_cnt_periph(const struct stratix10_perip_cnt_clock *clks,
- void __iomem *reg);
- struct clk_hw *s10_register_gate(const struct stratix10_gate_clock *clks,
- void __iomem *reg);
- struct clk_hw *agilex_register_gate(const struct stratix10_gate_clock *clks,
- void __iomem *reg);
- #endif /* __STRATIX10_CLK_H */
|