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-core.h (2120B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Purna Chandra Mandal,<purna.mandal@microchip.com>
      4 * Copyright (C) 2015 Microchip Technology Inc.  All rights reserved.
      5 */
      6#ifndef __MICROCHIP_CLK_PIC32_H_
      7#define __MICROCHIP_CLK_PIC32_H_
      8
      9#include <linux/clk-provider.h>
     10
     11/* PIC32 clock data */
     12struct pic32_clk_common {
     13	struct device *dev;
     14	void __iomem *iobase;
     15	spinlock_t reg_lock; /* clock lock */
     16};
     17
     18/* System PLL clock */
     19struct pic32_sys_pll_data {
     20	struct clk_init_data init_data;
     21	const u32 ctrl_reg;
     22	const u32 status_reg;
     23	const u32 lock_mask;
     24};
     25
     26/* System clock */
     27struct pic32_sys_clk_data {
     28	struct clk_init_data init_data;
     29	const u32 mux_reg;
     30	const u32 slew_reg;
     31	const u32 *parent_map;
     32	const u32 slew_div;
     33};
     34
     35/* Reference Oscillator clock */
     36struct pic32_ref_osc_data {
     37	struct clk_init_data init_data;
     38	const u32 ctrl_reg;
     39	const u32 *parent_map;
     40};
     41
     42/* Peripheral Bus clock */
     43struct pic32_periph_clk_data {
     44	struct clk_init_data init_data;
     45	const u32 ctrl_reg;
     46};
     47
     48/* External Secondary Oscillator clock  */
     49struct pic32_sec_osc_data {
     50	struct clk_init_data init_data;
     51	const u32 enable_reg;
     52	const u32 status_reg;
     53	const u32 enable_mask;
     54	const u32 status_mask;
     55	const unsigned long fixed_rate;
     56};
     57
     58extern const struct clk_ops pic32_pbclk_ops;
     59extern const struct clk_ops pic32_sclk_ops;
     60extern const struct clk_ops pic32_sclk_no_div_ops;
     61extern const struct clk_ops pic32_spll_ops;
     62extern const struct clk_ops pic32_roclk_ops;
     63extern const struct clk_ops pic32_sosc_ops;
     64
     65struct clk *pic32_periph_clk_register(const struct pic32_periph_clk_data *data,
     66				      struct pic32_clk_common *core);
     67struct clk *pic32_refo_clk_register(const struct pic32_ref_osc_data *data,
     68				    struct pic32_clk_common *core);
     69struct clk *pic32_sys_clk_register(const struct pic32_sys_clk_data *data,
     70				   struct pic32_clk_common *core);
     71struct clk *pic32_spll_clk_register(const struct pic32_sys_pll_data *data,
     72				    struct pic32_clk_common *core);
     73struct clk *pic32_sosc_clk_register(const struct pic32_sec_osc_data *data,
     74				    struct pic32_clk_common *core);
     75
     76#endif /* __MICROCHIP_CLK_PIC32_H_*/