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

clk-pll.h (1208B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (c) 2014 MediaTek Inc.
      4 * Author: James Liao <jamesjj.liao@mediatek.com>
      5 */
      6
      7#ifndef __DRV_CLK_MTK_PLL_H
      8#define __DRV_CLK_MTK_PLL_H
      9
     10#include <linux/types.h>
     11
     12struct clk_ops;
     13struct clk_hw_onecell_data;
     14struct device_node;
     15
     16struct mtk_pll_div_table {
     17	u32 div;
     18	unsigned long freq;
     19};
     20
     21#define HAVE_RST_BAR	BIT(0)
     22#define PLL_AO		BIT(1)
     23
     24struct mtk_pll_data {
     25	int id;
     26	const char *name;
     27	u32 reg;
     28	u32 pwr_reg;
     29	u32 en_mask;
     30	u32 pd_reg;
     31	u32 tuner_reg;
     32	u32 tuner_en_reg;
     33	u8 tuner_en_bit;
     34	int pd_shift;
     35	unsigned int flags;
     36	const struct clk_ops *ops;
     37	u32 rst_bar_mask;
     38	unsigned long fmin;
     39	unsigned long fmax;
     40	int pcwbits;
     41	int pcwibits;
     42	u32 pcw_reg;
     43	int pcw_shift;
     44	u32 pcw_chg_reg;
     45	const struct mtk_pll_div_table *div_table;
     46	const char *parent_name;
     47	u32 en_reg;
     48	u8 pll_en_bit; /* Assume 0, indicates BIT(0) by default */
     49};
     50
     51int mtk_clk_register_plls(struct device_node *node,
     52			  const struct mtk_pll_data *plls, int num_plls,
     53			  struct clk_hw_onecell_data *clk_data);
     54void mtk_clk_unregister_plls(const struct mtk_pll_data *plls, int num_plls,
     55			     struct clk_hw_onecell_data *clk_data);
     56
     57#endif /* __DRV_CLK_MTK_PLL_H */