#ifndef __SIFIVE_CLK_SIFIVE_PRCI_H
#define __SIFIVE_CLK_SIFIVE_PRCI_H
#include <linux/clk/analogbits-wrpll-cln28hpc.h>
#include <linux/clk-provider.h>
#include <linux/reset/reset-simple.h>
#include <linux/platform_device.h>
#define EXPECTED_CLK_PARENT_COUNT …
#define PRCI_COREPLLCFG0_OFFSET …
#define PRCI_COREPLLCFG0_DIVR_SHIFT …
#define PRCI_COREPLLCFG0_DIVR_MASK …
#define PRCI_COREPLLCFG0_DIVF_SHIFT …
#define PRCI_COREPLLCFG0_DIVF_MASK …
#define PRCI_COREPLLCFG0_DIVQ_SHIFT …
#define PRCI_COREPLLCFG0_DIVQ_MASK …
#define PRCI_COREPLLCFG0_RANGE_SHIFT …
#define PRCI_COREPLLCFG0_RANGE_MASK …
#define PRCI_COREPLLCFG0_BYPASS_SHIFT …
#define PRCI_COREPLLCFG0_BYPASS_MASK …
#define PRCI_COREPLLCFG0_FSE_SHIFT …
#define PRCI_COREPLLCFG0_FSE_MASK …
#define PRCI_COREPLLCFG0_LOCK_SHIFT …
#define PRCI_COREPLLCFG0_LOCK_MASK …
#define PRCI_COREPLLCFG1_OFFSET …
#define PRCI_COREPLLCFG1_CKE_SHIFT …
#define PRCI_COREPLLCFG1_CKE_MASK …
#define PRCI_DDRPLLCFG0_OFFSET …
#define PRCI_DDRPLLCFG0_DIVR_SHIFT …
#define PRCI_DDRPLLCFG0_DIVR_MASK …
#define PRCI_DDRPLLCFG0_DIVF_SHIFT …
#define PRCI_DDRPLLCFG0_DIVF_MASK …
#define PRCI_DDRPLLCFG0_DIVQ_SHIFT …
#define PRCI_DDRPLLCFG0_DIVQ_MASK …
#define PRCI_DDRPLLCFG0_RANGE_SHIFT …
#define PRCI_DDRPLLCFG0_RANGE_MASK …
#define PRCI_DDRPLLCFG0_BYPASS_SHIFT …
#define PRCI_DDRPLLCFG0_BYPASS_MASK …
#define PRCI_DDRPLLCFG0_FSE_SHIFT …
#define PRCI_DDRPLLCFG0_FSE_MASK …
#define PRCI_DDRPLLCFG0_LOCK_SHIFT …
#define PRCI_DDRPLLCFG0_LOCK_MASK …
#define PRCI_DDRPLLCFG1_OFFSET …
#define PRCI_DDRPLLCFG1_CKE_SHIFT …
#define PRCI_DDRPLLCFG1_CKE_MASK …
#define PRCI_PCIE_AUX_OFFSET …
#define PRCI_PCIE_AUX_EN_SHIFT …
#define PRCI_PCIE_AUX_EN_MASK …
#define PRCI_GEMGXLPLLCFG0_OFFSET …
#define PRCI_GEMGXLPLLCFG0_DIVR_SHIFT …
#define PRCI_GEMGXLPLLCFG0_DIVR_MASK …
#define PRCI_GEMGXLPLLCFG0_DIVF_SHIFT …
#define PRCI_GEMGXLPLLCFG0_DIVF_MASK …
#define PRCI_GEMGXLPLLCFG0_DIVQ_SHIFT …
#define PRCI_GEMGXLPLLCFG0_DIVQ_MASK …
#define PRCI_GEMGXLPLLCFG0_RANGE_SHIFT …
#define PRCI_GEMGXLPLLCFG0_RANGE_MASK …
#define PRCI_GEMGXLPLLCFG0_BYPASS_SHIFT …
#define PRCI_GEMGXLPLLCFG0_BYPASS_MASK …
#define PRCI_GEMGXLPLLCFG0_FSE_SHIFT …
#define PRCI_GEMGXLPLLCFG0_FSE_MASK …
#define PRCI_GEMGXLPLLCFG0_LOCK_SHIFT …
#define PRCI_GEMGXLPLLCFG0_LOCK_MASK …
#define PRCI_GEMGXLPLLCFG1_OFFSET …
#define PRCI_GEMGXLPLLCFG1_CKE_SHIFT …
#define PRCI_GEMGXLPLLCFG1_CKE_MASK …
#define PRCI_CORECLKSEL_OFFSET …
#define PRCI_CORECLKSEL_CORECLKSEL_SHIFT …
#define PRCI_CORECLKSEL_CORECLKSEL_MASK …
#define PRCI_DEVICESRESETREG_OFFSET …
#define PRCI_DEVICESRESETREG_DDR_CTRL_RST_N_SHIFT …
#define PRCI_DEVICESRESETREG_DDR_CTRL_RST_N_MASK …
#define PRCI_DEVICESRESETREG_DDR_AXI_RST_N_SHIFT …
#define PRCI_DEVICESRESETREG_DDR_AXI_RST_N_MASK …
#define PRCI_DEVICESRESETREG_DDR_AHB_RST_N_SHIFT …
#define PRCI_DEVICESRESETREG_DDR_AHB_RST_N_MASK …
#define PRCI_DEVICESRESETREG_DDR_PHY_RST_N_SHIFT …
#define PRCI_DEVICESRESETREG_DDR_PHY_RST_N_MASK …
#define PRCI_DEVICESRESETREG_GEMGXL_RST_N_SHIFT …
#define PRCI_DEVICESRESETREG_GEMGXL_RST_N_MASK …
#define PRCI_DEVICESRESETREG_CHIPLINK_RST_N_SHIFT …
#define PRCI_DEVICESRESETREG_CHIPLINK_RST_N_MASK …
#define PRCI_RST_NR …
#define PRCI_CLKMUXSTATUSREG_OFFSET …
#define PRCI_CLKMUXSTATUSREG_TLCLKSEL_STATUS_SHIFT …
#define PRCI_CLKMUXSTATUSREG_TLCLKSEL_STATUS_MASK …
#define PRCI_CLTXPLLCFG0_OFFSET …
#define PRCI_CLTXPLLCFG0_DIVR_SHIFT …
#define PRCI_CLTXPLLCFG0_DIVR_MASK …
#define PRCI_CLTXPLLCFG0_DIVF_SHIFT …
#define PRCI_CLTXPLLCFG0_DIVF_MASK …
#define PRCI_CLTXPLLCFG0_DIVQ_SHIFT …
#define PRCI_CLTXPLLCFG0_DIVQ_MASK …
#define PRCI_CLTXPLLCFG0_RANGE_SHIFT …
#define PRCI_CLTXPLLCFG0_RANGE_MASK …
#define PRCI_CLTXPLLCFG0_BYPASS_SHIFT …
#define PRCI_CLTXPLLCFG0_BYPASS_MASK …
#define PRCI_CLTXPLLCFG0_FSE_SHIFT …
#define PRCI_CLTXPLLCFG0_FSE_MASK …
#define PRCI_CLTXPLLCFG0_LOCK_SHIFT …
#define PRCI_CLTXPLLCFG0_LOCK_MASK …
#define PRCI_CLTXPLLCFG1_OFFSET …
#define PRCI_CLTXPLLCFG1_CKE_SHIFT …
#define PRCI_CLTXPLLCFG1_CKE_MASK …
#define PRCI_DVFSCOREPLLCFG0_OFFSET …
#define PRCI_DVFSCOREPLLCFG1_OFFSET …
#define PRCI_DVFSCOREPLLCFG1_CKE_SHIFT …
#define PRCI_DVFSCOREPLLCFG1_CKE_MASK …
#define PRCI_COREPLLSEL_OFFSET …
#define PRCI_COREPLLSEL_COREPLLSEL_SHIFT …
#define PRCI_COREPLLSEL_COREPLLSEL_MASK …
#define PRCI_HFPCLKPLLCFG0_OFFSET …
#define PRCI_HFPCLKPLL_CFG0_DIVR_SHIFT …
#define PRCI_HFPCLKPLL_CFG0_DIVR_MASK …
#define PRCI_HFPCLKPLL_CFG0_DIVF_SHIFT …
#define PRCI_HFPCLKPLL_CFG0_DIVF_MASK …
#define PRCI_HFPCLKPLL_CFG0_DIVQ_SHIFT …
#define PRCI_HFPCLKPLL_CFG0_DIVQ_MASK …
#define PRCI_HFPCLKPLL_CFG0_RANGE_SHIFT …
#define PRCI_HFPCLKPLL_CFG0_RANGE_MASK …
#define PRCI_HFPCLKPLL_CFG0_BYPASS_SHIFT …
#define PRCI_HFPCLKPLL_CFG0_BYPASS_MASK …
#define PRCI_HFPCLKPLL_CFG0_FSE_SHIFT …
#define PRCI_HFPCLKPLL_CFG0_FSE_MASK …
#define PRCI_HFPCLKPLL_CFG0_LOCK_SHIFT …
#define PRCI_HFPCLKPLL_CFG0_LOCK_MASK …
#define PRCI_HFPCLKPLLCFG1_OFFSET …
#define PRCI_HFPCLKPLLCFG1_CKE_SHIFT …
#define PRCI_HFPCLKPLLCFG1_CKE_MASK …
#define PRCI_HFPCLKPLLSEL_OFFSET …
#define PRCI_HFPCLKPLLSEL_HFPCLKPLLSEL_SHIFT …
#define PRCI_HFPCLKPLLSEL_HFPCLKPLLSEL_MASK …
#define PRCI_HFPCLKPLLDIV_OFFSET …
#define PRCI_PRCIPLL_OFFSET …
#define PRCI_PROCMONCFG_OFFSET …
struct __prci_data { … };
struct __prci_wrpll_data { … };
struct __prci_clock { … };
#define clk_hw_to_prci_clock(pwd) …
struct prci_clk_desc { … };
void sifive_prci_coreclksel_use_hfclk(struct __prci_data *pd);
void sifive_prci_coreclksel_use_corepll(struct __prci_data *pd);
void sifive_prci_coreclksel_use_final_corepll(struct __prci_data *pd);
void sifive_prci_corepllsel_use_dvfscorepll(struct __prci_data *pd);
void sifive_prci_corepllsel_use_corepll(struct __prci_data *pd);
void sifive_prci_hfpclkpllsel_use_hfclk(struct __prci_data *pd);
void sifive_prci_hfpclkpllsel_use_hfpclkpll(struct __prci_data *pd);
long sifive_prci_wrpll_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *parent_rate);
int sifive_prci_wrpll_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate);
int sifive_clk_is_enabled(struct clk_hw *hw);
int sifive_prci_clock_enable(struct clk_hw *hw);
void sifive_prci_clock_disable(struct clk_hw *hw);
unsigned long sifive_prci_wrpll_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate);
unsigned long sifive_prci_tlclksel_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate);
unsigned long sifive_prci_hfpclkplldiv_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate);
int sifive_prci_pcie_aux_clock_is_enabled(struct clk_hw *hw);
int sifive_prci_pcie_aux_clock_enable(struct clk_hw *hw);
void sifive_prci_pcie_aux_clock_disable(struct clk_hw *hw);
#endif