kernel_samsung_a34x-permissive/drivers/clk/mediatek/clk-mt6877-fmeter.h
2024-04-28 15:49:01 +02:00

207 lines
5.8 KiB
C
Executable file

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2019 MediaTek Inc.
*/
#ifndef _CLK_MT6877_FMETER_H
#define _CLK_MT6877_FMETER_H
/* generate from clock_table.xlsx from TOPCKGEN DE */
/* CKGEN Part */
#define FM_AXI_CK 1
#define FM_SPM_CK 2
#define FM_SCP_CK 3
#define FM_BUS_CK 4
#define FM_DISP0_CK 5
#define FM_MDP0_CK 6
#define FM_IMG1_CK 7
#define FM_IPE_CK 8
#define FM_DPE_CK 9
#define FM_CAM_CK 10
#define FM_CCU_CK 11
#define FM_DSP_CK 12
#define FM_DSP1_CK 13
#define FM_DSP2_CK 14
#define FM_DSP4_CK 16
#define FM_DSP7_CK 19
#define FM_FCAMTG_CK 20
#define FM_FCAMTG2_CK 21
#define FM_FCAMTG3_CK 22
#define FM_FCAMTG4_CK 23
#define FM_FCAMTG5_CK 24
#define FM_FUART_CK 25
#define FM_SPI_CK 26
#define FM_MSDC5HCLK_CK 27
#define FM_MSDC50_0_CK 28
#define FM_MSDC30_1_CK 29
#define FM_AUDIO_CK 30
#define FM_AUD_INTBUS_CK 31
#define FM_FPWRAP_ULPOSC_CK 32
#define FM_ATB_CK 33
#define FM_SSPM_CK 34
#define FM_FDISP_PWM_CK 36
#define FM_FUSB_CK 37
#define FM_FSSUSB_XHCI_CK 38
#define FM_I2C_CK 41
#define FM_FSENINF_CK 42
#define FM_FSENINF1_CK 43
#define FM_FSENINF2_CK 44
#define FM_FSENINF3_CK 45
#define FM_DXCC_CK 46
#define FM_AUD_ENGEN1_CK 47
#define FM_AUD_ENGEN2_CK 48
#define FM_AES_UFSFDE_CK 49
#define FM_UFS_CK 50
#define FM_AUD_1_CK 51
#define FM_AUD_2_CK 52
#define FM_ADSP_CK 53
#define FM_DPMAIF_MAIN_CK 54
#define FM_VENC_CK 55
#define FM_VDEC_CK 56
#define FM_CAMTM_CK 57
#define FM_PWM_CK 58
#define FM_AUDIO_H_CK 59
#define FM_MCUPM_CK 60
#define FM_SPMI_M_MST_CK 62
#define FM_DVFSRC_CK 63
/* ABIST Part */
#define FM_ADSPPLL_CKDIV_CK 1
#define FM_APLL1_CKDIV_CK 2
#define FM_APLL2_CKDIV_CK 3
#define FM_APPLLGP_MON_FM_CK 4
#define FM_ARMPLL_BL_CKDIV_CK 7
#define FM_ARMPLL_LL_CKDIV_CK 9
#define FM_USBPLL_CKDIV_CK 10
#define FM_CCIPLL_CKDIV_CK 11
#define FM_CSI0A_CDPHY_DELAYCAL_CK 12
#define FM_CSI0B_CDPHY_DELAYCAL_CK 13
#define FM_CSI1A_DPHY_DELAYCAL_CK 14
#define FM_CSI1B_DPHY_DELAYCAL_CK 15
#define FM_CSI2A_DPHY_DELAYCAL_CK 16
#define FM_CSI2B_DPHY_DELAYCAL_CK 17
#define FM_CSI3A_DPHY_DELAYCAL_CK 18
#define FM_CSI3B_DPHY_DELAYCAL_CK 19
#define FM_DSI0_LNTC_DSICLK 20
#define FM_DSI0_MPPLL_TST_CK 21
#define FM_MAINPLL_CKDIV_CK 24
#define FM_MDPLL_FS26M_GUIDE 25
#define FM_MMPLL_CKDIV_CK 27
#define FM_MMPLL_D3_CK 28
#define FM_MPLL_CKDIV_CK 29
#define FM_MSDCPLL_CKDIV_CK 30
#define FM_RCLRPLL_DIV4_CK 31
#define FM_RPHYPLL_DIV4_CK 33
#define FM_EMI_CKDIV_CK 34
#define FM_TVDPLL_CKDIV_CK 35
#define FM_ULPOSC2_CK 36
#define FM_ULPOSC_CK 37
#define FM_UNIVPLL_CKDIV_CK 38
#define FM_USB20_192M_OPP_CK 39
#define FM_UFS_MP_CLK2FREQ 41
#define FM_WBG_DIG_BPLL_CK 42
#define FM_WBG_DIG_WPLL_CK960 43
#define FMEM_AFT_CH0 44
#define FMEM_AFT_CH1 45
#define FMEM_BFE_CH0 48
#define FMEM_BFE_CH1 49
#define FM_466M_FMEM_INFRASYS 50
#define FM_MCUSYS_ARM_OUT_ALL 51
#define FM_MSDC01_IN_CK 52
#define FM_MSDC02_IN_CK 53
#define FM_MSDC11_IN_CK 54
#define FM_MSDC12_IN_CK 55
#define FM_RTC32K_I 58
#define FM_CKMON1_CK 60
#define FM_CKMON2_CK 61
#define FM_CKMON3_CK 62
#define FM_CKMON4_CK 63
/* ABIST2 Part */
#define FM_APLL_I2S0_M_CK 1
#define FM_APLL_I2S1_M_CK 2
#define FM_APLL_I2S2_M_CK 3
#define FM_APLL_I2S3_M_CK 4
#define FM_APLL_I2S4_M_CK 5
#define FM_APLL_I2S4_B_CK 6
#define FM_APLL_I2S5_M_CK 7
#define FM_APLL_I2S6_M_CK 8
#define FM_APLL_I2S7_M_CK 9
#define FM_APLL_I2S8_M_CK 10
#define FM_APLL_I2S9_M_CK 11
#define FM_MEM_SUB_CK 12
#define FM_AES_MSDCFDE_CK 13
#define FM_DSI_OCC_CK 15
#define FM_UFS_MBIST_CK 16
#define FM_AP2CONN_HOST_CK 17
#define FM_MSDC_NEW_RX_CK 18
#define FM_UNIPLL_SES_CK 19
#define FM_F_ULPOSC_CK 20
#define FM_F_ULPOSC_CORE_CK 21
#define FM_SRCK_CK 22
#define FM_SPMI_MST_32K_CK 23
#define FM_MAIN_H728M_CK 24
#define FM_MAIN_H546M_CK 25
#define FM_MAIN_H436P8M_CK 26
#define FM_MAIN_H364M_CK 27
#define FM_MAIN_H312M_CK 28
#define FM_UNIV_1248M_CK 29
#define FM_UNIV_832M_CK 30
#define FM_UNIV_624M_CK 31
#define FM_UNIV_499M_CK 32
#define FM_UNIV_416M_CK 33
#define FM_UNIV_356P6M_CK 34
#define FM_MMPLL_D3_CK_2 35
#define FM_MMPLL_D4_CK 36
#define FM_MMPLL_D5_CK 37
#define FM_MMPLL_D6_CK 38
#define FM_MMPLL_D7_CK 39
#define FM_MMPLL_D9_CK 40
#define FM_ROSC_OUT_FREQ 41
#define FM_ALVTS_TO_PLLGP_MON_L1 42
#define FM_ALVTS_TO_PLLGP_MON_L2 43
#define FM_ALVTS_TO_PLLGP_MON_L3 44
#define FM_ALVTS_TO_PLLGP_MON_L4 45
#define FM_ALVTS_TO_PLLGP_MON_L5 46
#define FM_ALVTS_TO_PLLGP_MON_L6 47
#define FM_ALVTS_TO_PLLGP_MON_L7 48
#define FM_ALVTS_TO_PLLGP_MON_L8 49
enum fm_sys_id {
FM_GPU_PLL_CTRL = 0,
FM_APU_PLL_CTRL = 1,
FM_SYS_NUM = 2,
};
struct fm_pwr_sta {
unsigned int ofs;
unsigned int msk;
};
struct fm_subsys {
unsigned int id;
const char *name;
void __iomem *base;
unsigned int con0;
unsigned int con1;
struct fm_pwr_sta pwr_sta;
};
#define FM_MFGPLL1 ((FM_GPU_PLL_CTRL << 8) | 0)
#define FM_MFGPLL2 ((FM_GPU_PLL_CTRL << 8) | 1)
#define FM_MFGPLL3 ((FM_GPU_PLL_CTRL << 8) | 2)
#define FM_MFGPLL4 ((FM_GPU_PLL_CTRL << 8) | 3)
#define FM_APUPLL1 ((FM_APU_PLL_CTRL << 8) | 0)
#define FM_APUPLL2 ((FM_APU_PLL_CTRL << 8) | 1)
#define FM_APUPLL3 ((FM_APU_PLL_CTRL << 8) | 2)
#define FM_APUPLL4 ((FM_APU_PLL_CTRL << 8) | 3)
extern unsigned int mt_get_ckgen_freq(unsigned int ID);
extern unsigned int mt_get_abist_freq(unsigned int ID);
extern unsigned int mt_get_abist2_freq(unsigned int ID);
extern unsigned int mt_get_subsys_freq(unsigned int ID);
extern const struct fmeter_clk *get_fmeter_clks(void);
extern int mt_subsys_freq_register(struct fm_subsys *fm, unsigned int size);
#endif /* _CLK_MT6877_FMETER_H */