cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

stratix10-clk.h (2353B)


      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 */