blob: c7b081fbc44b0866aa4ac1009bc5492d837df0b0 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0
//
// Copyright (c) 2018 MediaTek Inc.
// Author: Weiyi Lu <weiyi.lu@mediatek.com>
#include <linux/module.h>
#include "clkchk.h"
static const char * const off_pll_names[] = {
"univ2pll",
"msdcpll",
"mmpll",
"mfgpll",
"tvdpll",
"apll1",
"apll2",
NULL
};
static const char * const all_clk_names[] = {
"univ2pll",
"msdcpll",
"mmpll",
"mfgpll",
"tvdpll",
"apll1",
"apll2",
"apmixed_ssusb26m",
"apmixed_mipic026m",
"apmixed_mdpll26m",
"apmixed_mmsys26m",
"apmixed_ufs26m",
"apmixed_mipic126m",
"apmixed_mempll26m",
"apmixed_lvpll26m",
"apmixed_mipid026m",
"apmixed_mipid126m",
"syspll_d3",
"syspll_d5",
"syspll_d2_d2",
"syspll_d2_d4",
"syspll_d2_d16",
"syspll_d3_d2",
"syspll_d3_d4",
"syspll_d3_d8",
"syspll_d5_d2",
"syspll_d5_d4",
"syspll_d7_d2",
"syspll_d7_d4",
"univpll_ck",
"univpll_d2",
"univpll_d3",
"univpll_d5",
"univpll_d7",
"univpll_d2_d2",
"univpll_d2_d4",
"univpll_d2_d8",
"univpll_d3_d2",
"univpll_d3_d4",
"univpll_d3_d8",
"univpll_d5_d2",
"univpll_d5_d4",
"univpll_d5_d8",
"apll1_ck",
"apll1_d2",
"apll1_d4",
"apll1_d8",
"apll2_ck",
"apll2_d2",
"apll2_d4",
"apll2_d8",
"tvdpll_ck",
"tvdpll_d2",
"tvdpll_d4",
"tvdpll_d8",
"tvdpll_d16",
"msdcpll_ck",
"msdcpll_d2",
"msdcpll_d4",
"msdcpll_d8",
"msdcpll_d16",
"ad_osc_ck",
"osc_d2",
"osc_d4",
"osc_d8",
"osc_d16",
"csw_f26m_ck_d2",
"mfgpll_ck",
"univ_192m_ck",
"univ_192m_d2",
"univ_192m_d4",
"univ_192m_d8",
"univ_192m_d16",
"univ_192m_d32",
"mmpll_ck",
"mmpll_d4",
"mmpll_d4_d2",
"mmpll_d4_d4",
"mmpll_d5",
"mmpll_d5_d2",
"mmpll_d5_d4",
"mmpll_d6",
"mmpll_d7",
"osc",
"univpll_192m",
"apll_i2s0_sel",
"apll_i2s1_sel",
"apll_i2s2_sel",
"apll_i2s3_sel",
"apll_i2s4_sel",
"apll_i2s5_sel",
"apll12_div0",
"apll12_div1",
"apll12_div2",
"apll12_div3",
"apll12_div4",
"apll12_divb",
"univpll",
"armpll_div_pll2",
"mm_sel",
"cam_sel",
"mfg_sel",
"camtg_sel",
"spi_sel",
"msdc50_hclk_sel",
"msdc50_0_sel",
"msdc30_1_sel",
"msdc30_2_sel",
"audio_sel",
"aud_intbus_sel",
"fpwrap_ulposc_sel",
"scp_sel",
"atb_sel",
"sspm_sel",
"dpi0_sel",
"scam_sel",
"aud_1_sel",
"aud_2_sel",
"disppwm_sel",
"ssusb_top_xhci_sel",
"usb_top_sel",
"i2c_sel",
"f52m_mfg_sel",
"seninf_sel",
"dxcc_sel",
"camtg2_sel",
"aud_eng1_sel",
"aud_eng2_sel",
"faes_ufsfde_sel",
"fufs_sel",
"img_sel",
"dsp_sel",
"dsp1_sel",
"dsp2_sel",
"ipu_if_sel",
"camtg3_sel",
"camtg4_sel",
"mcu_mp0_sel",
"mcu_mp2_sel",
"mcu_bus_sel",
"infra_pmic_tmr",
"infra_pmic_md",
"infra_pmic_conn",
"infra_scp",
"infra_sej",
"infra_apxgpt",
"infra_icusb",
"infra_gce",
"infra_therm",
"infra_i2c0",
"infra_i2c1",
"infra_i2c2",
"infra_i2c3",
"infra_pwm_hclk",
"infra_pwm1",
"infra_pwm2",
"infra_pwm3",
"infra_pwm4",
"infra_pwm",
"infra_uart1",
"infra_uart2",
"infra_uart3",
"infra_gce_26m",
"infra_cqdma_fpc",
"infra_btif",
"infra_spi0",
"infra_msdc0",
"infra_msdc1",
"infra_msdc2",
"infra_msdc0_sck",
"infra_dvfsrc",
"infra_gcpu",
"infra_trng",
"infra_auxadc",
"infra_cpum",
"infra_ccif1_ap",
"infra_ccif1_md",
"infra_auxadc_md",
"infra_msdc1_sck",
"infra_msdc2_sck",
"infra_apdma",
"infra_xiu",
"infra_device_apc",
"infra_ccif_ap",
"infra_debugsys",
"infra_audio",
"infra_ccif_md",
"infra_dxcc_sec_core",
"infra_dxcc_ao",
"infra_dramc_f26m",
"infra_irtx",
"infra_disppwm",
"infra_cldma_bclk",
"infra_audio_26m_bclk",
"infra_spi1",
"infra_i2c4",
"infra_md_tmp_share",
"infra_spi2",
"infra_spi3",
"infra_unipro_sck",
"infra_unipro_tick",
"infra_ufs_mp_sap_bck",
"infra_md32_bclk",
"infra_sspm",
"infra_unipro_mbist",
"infra_sspm_bus_hclk",
"infra_i2c5",
"infra_i2c5_arbiter",
"infra_i2c5_imm",
"infra_i2c1_arbiter",
"infra_i2c1_imm",
"infra_i2c2_arbiter",
"infra_i2c2_imm",
"infra_spi4",
"infra_spi5",
"infra_cqdma",
"infra_ufs",
"infra_aes_ufsfde",
"infra_ufs_tick",
"infra_msdc0_self",
"infra_msdc1_self",
"infra_msdc2_self",
"infra_sspm_26m_self",
"infra_sspm_32k_self",
"infra_ufs_axi",
"infra_i2c6",
"infra_ap_msdc0",
"infra_md_msdc0",
"infra_usb",
"infra_devmpu_bclk",
"infra_ccif2_ap",
"infra_ccif2_md",
"infra_ccif3_ap",
"infra_ccif3_md",
"infra_sej_f13m",
"infra_aes_bclk",
"infra_i2c7",
"infra_i2c8",
"infra_fbist2fpc",
"aud_tml",
"aud_dac_predis",
"aud_dac",
"aud_adc",
"aud_apll_tuner",
"aud_apll2_tuner",
"aud_24m",
"aud_22m",
"aud_afe",
"aud_i2s4",
"aud_i2s3",
"aud_i2s2",
"aud_i2s1",
"aud_pdn_adda6_adc",
"aud_tdm",
"mfg_bg3d",
"mm_smi_common",
"mm_smi_larb0",
"mm_smi_larb1",
"mm_gals_comm0",
"mm_gals_comm1",
"mm_gals_ccu2mm",
"mm_gals_ipu12mm",
"mm_gals_img2mm",
"mm_gals_cam2mm",
"mm_gals_ipu2mm",
"mm_mdp_dl_txck",
"mm_ipu_dl_txck",
"mm_mdp_rdma0",
"mm_mdp_rdma1",
"mm_mdp_rsz0",
"mm_mdp_rsz1",
"mm_mdp_tdshp",
"mm_mdp_wrot0",
"mm_fake_eng",
"mm_disp_ovl0",
"mm_disp_ovl0_2l",
"mm_disp_ovl1_2l",
"mm_disp_rdma0",
"mm_disp_rdma1",
"mm_disp_wdma0",
"mm_disp_color0",
"mm_disp_ccorr0",
"mm_disp_aal0",
"mm_disp_gamma0",
"mm_disp_dither0",
"mm_disp_split",
"mm_dsi0_mm",
"mm_dsi0_if",
"mm_dpi_mm",
"mm_dpi_if",
"mm_fake_eng2",
"mm_mdp_dl_rx",
"mm_ipu_dl_rx",
"mm_26m",
"mm_mmsys_r2y",
"mm_disp_rsz",
"mm_mdp_wdma0",
"mm_mdp_aal",
"mm_mdp_ccorr",
"mm_dbi_mm",
"mm_dbi_if",
"vdec_vdec",
"vdec_larb1",
"venc_larb",
"venc_venc",
"venc_jpgenc",
"img_owe",
"img_wpe_b",
"img_wpe_a",
"img_mfb",
"img_rsc",
"img_dpe",
"img_fdvt",
"img_dip",
"img_larb2",
"img_larb5",
"cam_larb6",
"cam_dfp_vad",
"cam_cam",
"cam_camtg",
"cam_seninf",
"cam_camsv0",
"cam_camsv1",
"cam_camsv2",
"cam_ccu",
"cam_larb3",
"ipu_conn_ipu",
"ipu_conn_ahb",
"ipu_conn_axi",
"ipu_conn_isp",
"ipu_conn_cam_adl",
"ipu_conn_img_adl",
"ipu_conn_dap_rx",
"ipu_conn_apb2axi",
"ipu_conn_apb2ahb",
"ipu_conn_ipu_cab1to2",
"ipu_conn_ipu1_cab1to2",
"ipu_conn_ipu2_cab1to2",
"ipu_conn_cab3to3",
"ipu_conn_cab2to1",
"ipu_conn_cab3to1_slice",
"ipu_adl_cabgen",
"ipu_core0_jtag",
"ipu_core0_axi",
"ipu_core0_ipu",
"ipu_core1_jtag",
"ipu_core1_axi",
"ipu_core1_ipu",
/* end */
NULL
};
static const char * const compatible[] = {"mediatek,mt8183", NULL};
static struct clkchk_cfg_t cfg = {
.aee_excp_on_fail = false,
.warn_on_fail = true,
.compatible = compatible,
.off_pll_names = off_pll_names,
.all_clk_names = all_clk_names,
};
static int __init clkchk_platform_init(void)
{
return clkchk_init(&cfg);
}
subsys_initcall(clkchk_platform_init);