* [PATCH 03/10] soc: amlogic: clk-measure: Add support for more SoCs
2026-09-11 8:28 [PATCH 00/10] soc: amlogic: clk-measure: Add support for more SoCs Chuan Liu via B4 Relay
2026-09-11 8:28 ` [PATCH 01/10] dt-bindings: soc: amlogic: Add compatible to support " Chuan Liu via B4 Relay
2026-09-11 8:28 ` [PATCH 02/10] soc: amlogic: clk-measure: Support more measurement channels Chuan Liu via B4 Relay
@ 2026-09-11 8:28 ` Chuan Liu via B4 Relay
2026-09-11 8:37 ` sashiko-bot
2026-09-11 8:28 ` [PATCH 04/10] soc: amlogic: clk-measure: Optimize CLK_MSR_ID to reduce memory usage Chuan Liu via B4 Relay
` (6 subsequent siblings)
9 siblings, 1 reply; 12+ messages in thread
From: Chuan Liu via B4 Relay @ 2026-09-11 8:28 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
Kevin Hilman, Jerome Brunet, Martin Blumenstingl
Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel, Chuan Liu
From: Chuan Liu <chuan.liu@amlogic.com>
Add clk-measure driver support for Amlogic A5, A4, S7, S7D, S6 and A9
SoCs.
Signed-off-by: Chuan Liu <chuan.liu@amlogic.com>
---
drivers/soc/amlogic/meson-clk-measure.c | 897 ++++++++++++++++++++++++++++++++
1 file changed, 897 insertions(+)
diff --git a/drivers/soc/amlogic/meson-clk-measure.c b/drivers/soc/amlogic/meson-clk-measure.c
index 0d4ba2555d17..671e0c3753de 100644
--- a/drivers/soc/amlogic/meson-clk-measure.c
+++ b/drivers/soc/amlogic/meson-clk-measure.c
@@ -1041,6 +1041,843 @@ static const struct meson_msr_id clk_msr_t7[] = {
CLK_MSR_ID(222, "enc0")
};
+static const struct meson_msr_id clk_msr_a5[] = {
+ CLK_MSR_ID(0, "sys_clk"),
+ CLK_MSR_ID(1, "axi_clk"),
+ CLK_MSR_ID(2, "rtc_clk"),
+ CLK_MSR_ID(3, "dspa"),
+ CLK_MSR_ID(6, "cpu_clk_div16"),
+ CLK_MSR_ID(10, "fclk_div5"),
+ CLK_MSR_ID(11, "mpll0"),
+ CLK_MSR_ID(12, "mpll1"),
+ CLK_MSR_ID(13, "mpll2"),
+ CLK_MSR_ID(14, "mpll3"),
+ CLK_MSR_ID(15, "fclk_50m"),
+ CLK_MSR_ID(16, "sys_oscin32k_i"),
+ CLK_MSR_ID(17, "rtc_pll"),
+ CLK_MSR_ID(18, "mpll_clk_test_out"),
+ CLK_MSR_ID(19, "hifi_pll"),
+ CLK_MSR_ID(20, "gp0_pll"),
+ CLK_MSR_ID(21, "gp1_pll"),
+ CLK_MSR_ID(23, "sys_pll_div16"),
+ CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+ CLK_MSR_ID(25, "nna_axi"),
+ CLK_MSR_ID(26, "nna_core"),
+ CLK_MSR_ID(27, "rtc_sec_pulse_out"),
+ CLK_MSR_ID(28, "rtc_osc_clk_out"),
+ CLK_MSR_ID(30, "mod_eth_phy_ref_clk"),
+ CLK_MSR_ID(31, "mod_eth_tx_clk"),
+ CLK_MSR_ID(35, "mod_eth_rx_clk_rmii"),
+ CLK_MSR_ID(79, "rama_clk"),
+ CLK_MSR_ID(106, "deskew_pll_clk_div32_out"),
+ CLK_MSR_ID(111, "sar_adc"),
+ CLK_MSR_ID(112, "ts"),
+ CLK_MSR_ID(113, "sd_emmc_c"),
+ CLK_MSR_ID(115, "sd_emmc_a"),
+ CLK_MSR_ID(116, "gpio_msr_clk"),
+ CLK_MSR_ID(117, "spicc1"),
+ CLK_MSR_ID(118, "spicc0"),
+ CLK_MSR_ID(119, "o_mst_sclk_vad"),
+ CLK_MSR_ID(120, "o_mst_mclk_vad"),
+ CLK_MSR_ID(121, "o_pdm_sysclk"),
+ CLK_MSR_ID(122, "mod_audio_pdm_dclk_o"),
+ CLK_MSR_ID(123, "o_vad_clk"),
+ CLK_MSR_ID(124, "earcrx_dmac_clk"),
+ CLK_MSR_ID(125, "earcrx_cmdc_clk"),
+ CLK_MSR_ID(126, "earctx_dmac_clk"),
+ CLK_MSR_ID(127, "earctx_cmdc_clk"),
+ CLK_MSR_ID(128, "tohdmitx_bclk"),
+ CLK_MSR_ID(129, "tohdmitx_mclk"),
+ CLK_MSR_ID(130, "tohdmitx_spdif_clk"),
+ CLK_MSR_ID(131, "toacodec_bclk"),
+ CLK_MSR_ID(132, "toacodec_mclk"),
+ CLK_MSR_ID(133, "spdifout_b_mst_clk"),
+ CLK_MSR_ID(134, "spdifout_mst_clk"),
+ CLK_MSR_ID(135, "spdifin_mst_clk"),
+ CLK_MSR_ID(136, "audio_mclk"),
+ CLK_MSR_ID(137, "vad_clk"),
+ CLK_MSR_ID(138, "tdmout_d_sclk"),
+ CLK_MSR_ID(139, "tdmout_c_sclk"),
+ CLK_MSR_ID(140, "tdmout_b_sclk"),
+ CLK_MSR_ID(141, "tdmout_a_sclk"),
+ CLK_MSR_ID(142, "tdminb_lb_sclk"),
+ CLK_MSR_ID(143, "tdmin_lb_sclk"),
+ CLK_MSR_ID(144, "tdmin_d_sclk"),
+ CLK_MSR_ID(145, "tdmin_c_sclk"),
+ CLK_MSR_ID(146, "tdmin_b_sclk"),
+ CLK_MSR_ID(147, "tdmin_a_sclk"),
+ CLK_MSR_ID(148, "resampleb_clk"),
+ CLK_MSR_ID(149, "resamplea_clk"),
+ CLK_MSR_ID(150, "pdmb_sysclk"),
+ CLK_MSR_ID(151, "pdmb_dclk"),
+ CLK_MSR_ID(152, "pdm_sysclk"),
+ CLK_MSR_ID(153, "pdm_dclk"),
+ CLK_MSR_ID(154, "alockerb_out_clk"),
+ CLK_MSR_ID(155, "alockerb_in_clk"),
+ CLK_MSR_ID(156, "alocker_out_clk"),
+ CLK_MSR_ID(157, "alocker_in_clk"),
+ CLK_MSR_ID(158, "audio_mst_clk[34]"),
+ CLK_MSR_ID(159, "audio_mst_clk[35]"),
+ CLK_MSR_ID(162, "pwm_h"),
+ CLK_MSR_ID(163, "pwm_g"),
+ CLK_MSR_ID(164, "pwm_f"),
+ CLK_MSR_ID(165, "pwm_e"),
+ CLK_MSR_ID(166, "pwm_d"),
+ CLK_MSR_ID(167, "pwm_c"),
+ CLK_MSR_ID(168, "pwm_b"),
+ CLK_MSR_ID(169, "pwm_a"),
+ CLK_MSR_ID(176, "rng_ring_osc_clk[0]"),
+ CLK_MSR_ID(177, "rng_ring_osc_clk[1]"),
+ CLK_MSR_ID(178, "rng_ring_osc_clk[2]"),
+ CLK_MSR_ID(179, "rng_ring_osc_clk[3]"),
+ CLK_MSR_ID(180, "dmc_osc_ring(LVT16)"),
+ CLK_MSR_ID(181, "dsp_osc_ring(SVT16)"),
+ CLK_MSR_ID(182, "axi_srama_osc_ring(SVT16)"),
+ CLK_MSR_ID(183, "nna_osc_ring[0](ULVT20)"),
+ CLK_MSR_ID(184, "nna_osc_ring[1](LVT16)"),
+ CLK_MSR_ID(185, "sys_cpu_osc_ring[0](ULVT16)"),
+ CLK_MSR_ID(186, "sys_cpu_osc_ring[1](ULVT20)"),
+ CLK_MSR_ID(187, "sys_cpu_osc_ring[2](ULVT16)"),
+ CLK_MSR_ID(188, "sys_cpu_osc_ring[3](LVT16)"),
+ CLK_MSR_ID(189, "axi_sramb_osc_ring(SVT16)"),
+};
+
+static const struct meson_msr_id clk_msr_a4[] = {
+ CLK_MSR_ID(0, "sys_clk"),
+ CLK_MSR_ID(1, "axi_clk"),
+ CLK_MSR_ID(2, "rtc_clk"),
+ CLK_MSR_ID(3, "p22_usb2_ckout"),
+ CLK_MSR_ID(4, "p21_usb2_ckout"),
+ CLK_MSR_ID(5, "p20_usb2_ckout"),
+ CLK_MSR_ID(6, "cpu_clk_div16"),
+ CLK_MSR_ID(8, "eth_mpll_test"),
+ CLK_MSR_ID(10, "fclk_div5"),
+ CLK_MSR_ID(15, "fclk_50m"),
+ CLK_MSR_ID(16, "sys_oscin32k_i"),
+ CLK_MSR_ID(17, "rtc_pll"),
+ CLK_MSR_ID(19, "hifi_pll"),
+ CLK_MSR_ID(20, "gp0_pll"),
+ CLK_MSR_ID(21, "gp1_pll"),
+ CLK_MSR_ID(22, "eth_mppll_50m_ckout"),
+ CLK_MSR_ID(23, "sys_pll_div16"),
+ CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+ CLK_MSR_ID(27, "rtc_sec_pulse_out"),
+ CLK_MSR_ID(28, "rtc_osc_clk_out"),
+ CLK_MSR_ID(30, "mod_eth_phy_ref_clk"),
+ CLK_MSR_ID(31, "mod_eth_tx_clk"),
+ CLK_MSR_ID(32, "eth_125m"),
+ CLK_MSR_ID(33, "eth_rmii"),
+ CLK_MSR_ID(34, "co_clkin_to_mac"),
+ CLK_MSR_ID(35, "mod_eth_rx_clk_rmii"),
+ CLK_MSR_ID(36, "co_rx_clk"),
+ CLK_MSR_ID(37, "co_tx_clk"),
+ CLK_MSR_ID(38, "eth_phy_rxclk"),
+ CLK_MSR_ID(39, "eth_phy_plltxclk"),
+ CLK_MSR_ID(40, "ephy_test_clk"),
+ CLK_MSR_ID(41, "audio_core"),
+ CLK_MSR_ID(51, "cts_vout_venc_clk_ph"),
+ CLK_MSR_ID(52, "cts_vout_venc_clk"),
+ CLK_MSR_ID(106, "deskew_pll_test_clk"),
+ CLK_MSR_ID(111, "sar_adc"),
+ CLK_MSR_ID(112, "ts"),
+ CLK_MSR_ID(113, "sd_emmc_c"),
+ CLK_MSR_ID(115, "sd_emmc_a"),
+ CLK_MSR_ID(116, "gpio_msr_clk"),
+ CLK_MSR_ID(117, "spicc1"),
+ CLK_MSR_ID(118, "spicc0"),
+ CLK_MSR_ID(119, "o_mst_sclk_vad"),
+ CLK_MSR_ID(120, "o_mst_mclk_vad"),
+ CLK_MSR_ID(121, "o_pdm_sysclk"),
+ CLK_MSR_ID(122, "mod_audio_pdm_dclk_o"),
+ CLK_MSR_ID(123, "o_vad_clk"),
+ CLK_MSR_ID(124, "earcrx_dmac_clk"),
+ CLK_MSR_ID(125, "earcrx_cmdc_clk"),
+ CLK_MSR_ID(126, "earctx_dmac_clk"),
+ CLK_MSR_ID(127, "earctx_cmdc_clk"),
+ CLK_MSR_ID(128, "tohdmitx_bclk"),
+ CLK_MSR_ID(129, "tohdmitx_mclk"),
+ CLK_MSR_ID(130, "tohdmitx_spdif_clk"),
+ CLK_MSR_ID(131, "toacodec_bclk"),
+ CLK_MSR_ID(132, "toacodec_mclk"),
+ CLK_MSR_ID(133, "spdifout_b_mst_clk"),
+ CLK_MSR_ID(134, "spdifout_mst_clk"),
+ CLK_MSR_ID(135, "spdifin_mst_clk"),
+ CLK_MSR_ID(136, "audio_mclk"),
+ CLK_MSR_ID(137, "vad_clk"),
+ CLK_MSR_ID(138, "tdmout_d_sclk"),
+ CLK_MSR_ID(139, "tdmout_c_sclk"),
+ CLK_MSR_ID(140, "tdmout_b_sclk"),
+ CLK_MSR_ID(141, "tdmout_a_sclk"),
+ CLK_MSR_ID(142, "tdminb_lb_sclk"),
+ CLK_MSR_ID(143, "tdmin_lb_sclk"),
+ CLK_MSR_ID(144, "tdmin_d_sclk"),
+ CLK_MSR_ID(145, "tdmin_c_sclk"),
+ CLK_MSR_ID(146, "tdmin_b_sclk"),
+ CLK_MSR_ID(147, "tdmin_a_sclk"),
+ CLK_MSR_ID(148, "resampleb_clk"),
+ CLK_MSR_ID(149, "resamplea_clk"),
+ CLK_MSR_ID(150, "pdmb_sysclk"),
+ CLK_MSR_ID(151, "pdmb_dclk"),
+ CLK_MSR_ID(152, "pdm_sysclk"),
+ CLK_MSR_ID(153, "pdm_dclk"),
+ CLK_MSR_ID(154, "alockerb_out_clk"),
+ CLK_MSR_ID(155, "alockerb_in_clk"),
+ CLK_MSR_ID(156, "alocker_out_clk"),
+ CLK_MSR_ID(157, "alocker_in_clk"),
+ CLK_MSR_ID(158, "audio_mst_clk[34]"),
+ CLK_MSR_ID(159, "audio_mst_clk[35]"),
+ CLK_MSR_ID(162, "pwm_h"),
+ CLK_MSR_ID(163, "pwm_g"),
+ CLK_MSR_ID(164, "pwm_f"),
+ CLK_MSR_ID(165, "pwm_e"),
+ CLK_MSR_ID(166, "pwm_d"),
+ CLK_MSR_ID(167, "pwm_c"),
+ CLK_MSR_ID(168, "pwm_b"),
+ CLK_MSR_ID(169, "pwm_a"),
+ CLK_MSR_ID(170, "AU_ADC_CLK_G128X"),
+ CLK_MSR_ID(171, "AU_ADC_CLK_TO_GPIO"),
+ CLK_MSR_ID(172, "AU_DAC1_CLK_G128X"),
+ CLK_MSR_ID(173, "AU_DAC1_CLK_TO_GPIO"),
+ CLK_MSR_ID(176, "rng_ring_osc_clk[0]"),
+ CLK_MSR_ID(177, "rng_ring_osc_clk[1]"),
+ CLK_MSR_ID(178, "rng_ring_osc_clk[2]"),
+ CLK_MSR_ID(179, "rng_ring_osc_clk[3]"),
+ CLK_MSR_ID(180, "sys_cpu_osc_ring[0](ULVT16)"),
+ CLK_MSR_ID(181, "sys_cpu_osc_ring[1](ULVT20)"),
+ CLK_MSR_ID(182, "sys_cpu_osc_ring[2](ULVT16)"),
+ CLK_MSR_ID(183, "sys_cpu_osc_ring[3](ULVT16)"),
+ CLK_MSR_ID(184, "sys_cpu_osc_ring[4](ULVT16)"),
+ CLK_MSR_ID(185, "am_ring_osc_clk_out_top[0](SVT16)"),
+ CLK_MSR_ID(186, "am_ring_osc_clk_out_top[1](LVT20)"),
+};
+
+static const struct meson_msr_id clk_msr_s7[] = {
+ CLK_MSR_ID(0, "sys_clk"),
+ CLK_MSR_ID(1, "axi_clk"),
+ CLK_MSR_ID(2, "rtc_clk"),
+ CLK_MSR_ID(5, "mali"),
+ CLK_MSR_ID(6, "cpu_clk_div16"),
+ CLK_MSR_ID(8, "cecb"),
+ CLK_MSR_ID(10, "fclk_div5"),
+ CLK_MSR_ID(11, "p21_usb2_ckout"),
+ CLK_MSR_ID(12, "p20_usb2_ckout"),
+ CLK_MSR_ID(13, "eth_mpll_test"),
+ CLK_MSR_ID(15, "fclk_50m"),
+ CLK_MSR_ID(18, "gp1_pll"),
+ CLK_MSR_ID(19, "hifi_pll"),
+ CLK_MSR_ID(20, "gp0_pll"),
+ CLK_MSR_ID(21, "hifi1_pll"),
+ CLK_MSR_ID(22, "eth_mppll_50m_ckout"),
+ CLK_MSR_ID(23, "sys_pll_div16"),
+ CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+ CLK_MSR_ID(25, "mod_Tsin_A_CLK_IN"),
+ CLK_MSR_ID(32, "eth_125m"),
+ CLK_MSR_ID(33, "eth_rmii"),
+ CLK_MSR_ID(34, "co_clkin_to_mac"),
+ CLK_MSR_ID(36, "co_rx_clk"),
+ CLK_MSR_ID(37, "co_tx_clk"),
+ CLK_MSR_ID(38, "eth_phy_rxclk"),
+ CLK_MSR_ID(39, "eth_phy_plltxclk"),
+ CLK_MSR_ID(40, "ephy_test_clk"),
+ CLK_MSR_ID(49, "hdmi_vx1_pix_clk"),
+ CLK_MSR_ID(50, "vid_pll"),
+ CLK_MSR_ID(51, "enci"),
+ CLK_MSR_ID(52, "encp"),
+ CLK_MSR_ID(53, "encl"),
+ CLK_MSR_ID(54, "vdac"),
+ CLK_MSR_ID(55, "cdac"),
+ CLK_MSR_ID(57, "lcd_an_clk_ph2"),
+ CLK_MSR_ID(58, "lcd_an_clk_ph3"),
+ CLK_MSR_ID(59, "hdmitx_pixel"),
+ CLK_MSR_ID(60, "vdin_meas"),
+ CLK_MSR_ID(61, "vpu"),
+ CLK_MSR_ID(62, "vpu_clkb"),
+ CLK_MSR_ID(63, "vpu_clkb_tmp"),
+ CLK_MSR_ID(64, "vpu_clkc"),
+ CLK_MSR_ID(65, "vid_lock"),
+ CLK_MSR_ID(66, "vapb"),
+ CLK_MSR_ID(67, "ge2d"),
+ CLK_MSR_ID(76, "hdmitx_tmds"),
+ CLK_MSR_ID(77, "hdmitx_sys"),
+ CLK_MSR_ID(78, "hdmitx_fe"),
+ CLK_MSR_ID(80, "hdmitx_prif"),
+ CLK_MSR_ID(81, "hdmitx_200m"),
+ CLK_MSR_ID(82, "hdmitx_aud"),
+ CLK_MSR_ID(84, "audio_tohdmitx_mclk"),
+ CLK_MSR_ID(85, "audio_tohdmitx_bclk"),
+ CLK_MSR_ID(86, "audio_tohdmitx_lrclk"),
+ CLK_MSR_ID(87, "audio_tohdmitx_spdif_clk"),
+ CLK_MSR_ID(88, "htx_aes_clk"),
+ CLK_MSR_ID(93, "vdec"),
+ CLK_MSR_ID(99, "hevcf"),
+ CLK_MSR_ID(106, "deskew_pll_clk_div32_out"),
+ CLK_MSR_ID(110, "sc"),
+ CLK_MSR_ID(111, "sar_adc"),
+ CLK_MSR_ID(113, "sd_emmc_c"),
+ CLK_MSR_ID(114, "sd_emmc_b"),
+ CLK_MSR_ID(115, "sd_emmc_a"),
+ CLK_MSR_ID(116, "gpio_msr_clk"),
+ CLK_MSR_ID(118, "spicc"),
+ CLK_MSR_ID(121, "ts"),
+ CLK_MSR_ID(130, "o_vad_clk"),
+ CLK_MSR_ID(131, "au_dac_clk_x128"),
+ CLK_MSR_ID(132, "audio_locker_in_clk"),
+ CLK_MSR_ID(133, "audio_locker_out_clk"),
+ CLK_MSR_ID(134, "audio_tdmout_c_sclk"),
+ CLK_MSR_ID(135, "audio_tdmout_b_sclk"),
+ CLK_MSR_ID(136, "audio_tdmout_a_sclk"),
+ CLK_MSR_ID(137, "audio_tdmin_lb_sclk"),
+ CLK_MSR_ID(138, "audio_tdmin_c_sclk"),
+ CLK_MSR_ID(139, "audio_tdmin_b_sclk"),
+ CLK_MSR_ID(140, "audio_tdmin_a_sclk"),
+ CLK_MSR_ID(141, "audio_resamplea_clk"),
+ CLK_MSR_ID(142, "audio_pdm_sysclk"),
+ CLK_MSR_ID(143, "audio_spdifout_b_mst_clk"),
+ CLK_MSR_ID(144, "audio_spdifout_mst_clk"),
+ CLK_MSR_ID(145, "audio_spdifin_mst_clk"),
+ CLK_MSR_ID(147, "audio_resampleb_clk"),
+ CLK_MSR_ID(160, "pwm_j"),
+ CLK_MSR_ID(161, "pwm_i"),
+ CLK_MSR_ID(162, "pwm_h"),
+ CLK_MSR_ID(163, "pwm_g"),
+ CLK_MSR_ID(164, "pwm_f"),
+ CLK_MSR_ID(165, "pwm_e"),
+ CLK_MSR_ID(166, "pwm_d"),
+ CLK_MSR_ID(167, "pwm_c"),
+ CLK_MSR_ID(168, "pwm_b"),
+ CLK_MSR_ID(169, "pwm_a"),
+ CLK_MSR_ID(176, "rng_ring_clk[0]"),
+ CLK_MSR_ID(177, "rng_ring_clk[1]"),
+ CLK_MSR_ID(178, "rng_ring_clk[2]"),
+ CLK_MSR_ID(179, "rng_ring_clk[3]"),
+ CLK_MSR_ID(180, "osc_ring_clk[0](a55 core0 14_slvt)"),
+ CLK_MSR_ID(181, "osc_ring_clk[1](a55 core1 14_slvt)"),
+ CLK_MSR_ID(182, "osc_ring_clk[2](a55 core2 14_slvt)"),
+ CLK_MSR_ID(183, "osc_ring_clk[3](a55 core3 14_slvt)"),
+ CLK_MSR_ID(184, "osc_ring_clk[4](a55_pwr[0] 16_slvt)"),
+ CLK_MSR_ID(185, "osc_ring_clk[5](a55_pwr[1] 14_lvt)"),
+ CLK_MSR_ID(186, "osc_ring_clk[6](a55_pwr[2] 14_rvt)"),
+ CLK_MSR_ID(187, "osc_ring_clk[7](mali[1] 14_lvt)"),
+ CLK_MSR_ID(188, "osc_ring_clk[8](mali[1] 14_rvt)"),
+ CLK_MSR_ID(189, "osc_ring_clk[9](dos[0] 16_lvt)"),
+ CLK_MSR_ID(190, "osc_ring_clk[10](dos[1] 14_rvt)"),
+ CLK_MSR_ID(191, "osc_ring_clk[11](ddr[0] 9t_14_lvt)"),
+ CLK_MSR_ID(192, "osc_ring_clk[12](top[0] 16_rvt)"),
+};
+
+static const struct meson_msr_id clk_msr_s7d[] = {
+ CLK_MSR_ID(0, "sys_clk"),
+ CLK_MSR_ID(1, "axi_clk"),
+ CLK_MSR_ID(2, "rtc_clk"),
+ CLK_MSR_ID(4, "mali_stack"),
+ CLK_MSR_ID(5, "mali"),
+ CLK_MSR_ID(6, "cpu_clk_div16"),
+ CLK_MSR_ID(8, "cecb"),
+ CLK_MSR_ID(9, "mali_aclkm"),
+ CLK_MSR_ID(10, "fclk_div5"),
+ CLK_MSR_ID(11, "p21_usb2_ckout"),
+ CLK_MSR_ID(12, "p20_usb2_ckout"),
+ CLK_MSR_ID(13, "eth_mpll_test"),
+ CLK_MSR_ID(15, "fclk_50m"),
+ CLK_MSR_ID(18, "gp1_pll"),
+ CLK_MSR_ID(19, "hifi_pll"),
+ CLK_MSR_ID(20, "gp0_pll"),
+ CLK_MSR_ID(21, "hifi1_pll"),
+ CLK_MSR_ID(22, "eth_mppll_50m_ckout"),
+ CLK_MSR_ID(23, "sys_pll_div16"),
+ CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+ CLK_MSR_ID(25, "mod_Tsin_A_CLK_IN"),
+ CLK_MSR_ID(26, "mod_Tsin_B_CLK_IN"),
+ CLK_MSR_ID(31, "earcrx_pll_clk_out"),
+ CLK_MSR_ID(32, "eth_125m"),
+ CLK_MSR_ID(33, "eth_rmii"),
+ CLK_MSR_ID(34, "co_clkin_to_mac"),
+ CLK_MSR_ID(36, "co_rx_clk"),
+ CLK_MSR_ID(37, "co_tx_clk"),
+ CLK_MSR_ID(38, "eth_phy_rxclk"),
+ CLK_MSR_ID(39, "eth_phy_plltxclk"),
+ CLK_MSR_ID(40, "ephy_test_clk"),
+ CLK_MSR_ID(49, "hdmi_vx1_pix_clk"),
+ CLK_MSR_ID(50, "vid_pll"),
+ CLK_MSR_ID(51, "enci"),
+ CLK_MSR_ID(52, "encp"),
+ CLK_MSR_ID(53, "encl"),
+ CLK_MSR_ID(54, "vdac"),
+ CLK_MSR_ID(55, "cdac"),
+ CLK_MSR_ID(57, "lcd_an_clk_ph2"),
+ CLK_MSR_ID(58, "lcd_an_clk_ph3"),
+ CLK_MSR_ID(59, "hdmitx_pixel"),
+ CLK_MSR_ID(60, "vdin_meas"),
+ CLK_MSR_ID(61, "vpu"),
+ CLK_MSR_ID(62, "vpu_clkb"),
+ CLK_MSR_ID(63, "vpu_clkb_tmp"),
+ CLK_MSR_ID(64, "vpu_clkc"),
+ CLK_MSR_ID(65, "vid_lock"),
+ CLK_MSR_ID(66, "vapb"),
+ CLK_MSR_ID(67, "ge2d"),
+ CLK_MSR_ID(76, "hdmitx_tmds"),
+ CLK_MSR_ID(77, "hdmitx_sys"),
+ CLK_MSR_ID(78, "hdmitx_fe"),
+ CLK_MSR_ID(80, "hdmitx_prif"),
+ CLK_MSR_ID(81, "hdmitx_200m"),
+ CLK_MSR_ID(82, "hdmitx_aud"),
+ CLK_MSR_ID(84, "audio_tohdmitx_mclk"),
+ CLK_MSR_ID(85, "audio_tohdmitx_bclk"),
+ CLK_MSR_ID(86, "audio_tohdmitx_lrclk"),
+ CLK_MSR_ID(87, "audio_tohdmitx_spdif_clk"),
+ CLK_MSR_ID(88, "htx_aes_clk"),
+ CLK_MSR_ID(89, "amfc"),
+ CLK_MSR_ID(93, "vdec"),
+ CLK_MSR_ID(97, "hcodec"),
+ CLK_MSR_ID(99, "hevcf"),
+ CLK_MSR_ID(106, "deskew_pll_clk_div32_out"),
+ CLK_MSR_ID(110, "sc"),
+ CLK_MSR_ID(111, "sar_adc"),
+ CLK_MSR_ID(112, "aux_adc_clk_to_gpio"),
+ CLK_MSR_ID(113, "sd_emmc_c"),
+ CLK_MSR_ID(114, "sd_emmc_b"),
+ CLK_MSR_ID(115, "sd_emmc_a"),
+ CLK_MSR_ID(116, "gpio_msr_clk"),
+ CLK_MSR_ID(117, "aux_clk_o"),
+ CLK_MSR_ID(118, "spicc"),
+ CLK_MSR_ID(121, "ts"),
+ CLK_MSR_ID(130, "o_vad_clk"),
+ CLK_MSR_ID(131, "au_dac_clk_x128"),
+ CLK_MSR_ID(132, "audio_locker_in_clk"),
+ CLK_MSR_ID(133, "audio_locker_out_clk"),
+ CLK_MSR_ID(134, "audio_tdmout_c_sclk"),
+ CLK_MSR_ID(135, "audio_tdmout_b_sclk"),
+ CLK_MSR_ID(136, "audio_tdmout_a_sclk"),
+ CLK_MSR_ID(137, "audio_tdmin_lb_sclk"),
+ CLK_MSR_ID(138, "audio_tdmin_c_sclk"),
+ CLK_MSR_ID(139, "audio_tdmin_b_sclk"),
+ CLK_MSR_ID(140, "audio_tdmin_a_sclk"),
+ CLK_MSR_ID(141, "audio_resamplea_clk"),
+ CLK_MSR_ID(142, "audio_pdm_sysclk"),
+ CLK_MSR_ID(143, "audio_spdifout_b_mst_clk"),
+ CLK_MSR_ID(144, "audio_spdifout_mst_clk"),
+ CLK_MSR_ID(145, "audio_spdifin_mst_clk"),
+ CLK_MSR_ID(146, "mod_audio_pdm_dclk_o"),
+ CLK_MSR_ID(147, "audio_resampleb_clk"),
+ CLK_MSR_ID(160, "pwm_j"),
+ CLK_MSR_ID(161, "pwm_i"),
+ CLK_MSR_ID(162, "pwm_h"),
+ CLK_MSR_ID(163, "pwm_g"),
+ CLK_MSR_ID(164, "pwm_f"),
+ CLK_MSR_ID(165, "pwm_e"),
+ CLK_MSR_ID(166, "pwm_d"),
+ CLK_MSR_ID(167, "pwm_c"),
+ CLK_MSR_ID(168, "pwm_b"),
+ CLK_MSR_ID(169, "pwm_a"),
+ CLK_MSR_ID(176, "rng_ring_clk[0]"),
+ CLK_MSR_ID(177, "rng_ring_clk[1]"),
+ CLK_MSR_ID(178, "rng_ring_clk[2]"),
+ CLK_MSR_ID(179, "rng_ring_clk[3]"),
+ CLK_MSR_ID(180, "osc_ring_clk[0](a55 core0 14_slvt)"),
+ CLK_MSR_ID(181, "osc_ring_clk[1](a55 core1 14_slvt)"),
+ CLK_MSR_ID(182, "osc_ring_clk[2](a55 core2 14_slvt)"),
+ CLK_MSR_ID(183, "osc_ring_clk[3](a55 core3 14_slvt)"),
+ CLK_MSR_ID(184, "osc_ring_clk[4](a55_pwr[0] 16_slvt)"),
+ CLK_MSR_ID(185, "osc_ring_clk[5](a55_pwr[1] 14_lvt)"),
+ CLK_MSR_ID(186, "osc_ring_clk[6](a55_pwr[2] 14_rvt)"),
+ CLK_MSR_ID(187, "osc_ring_clk[7](mali[1] 14_lvt)"),
+ CLK_MSR_ID(188, "osc_ring_clk[8](mali[1] 14_rvt)"),
+ CLK_MSR_ID(189, "osc_ring_clk[9](dos[0] 16_lvt)"),
+ CLK_MSR_ID(190, "osc_ring_clk[10](dos[1] 14_rvt)"),
+ CLK_MSR_ID(191, "osc_ring_clk[11](ddr[0] 9t_14_lvt)"),
+ CLK_MSR_ID(192, "osc_ring_clk[12](top[0] 16_rvt)"),
+};
+
+static const struct meson_msr_id clk_msr_s6[] = {
+ CLK_MSR_ID(0, "sys_clk"),
+ CLK_MSR_ID(1, "axi_clk"),
+ CLK_MSR_ID(2, "rtc_clk"),
+ CLK_MSR_ID(3, "dspa"),
+ CLK_MSR_ID(4, "mali_stack"),
+ CLK_MSR_ID(5, "mali"),
+ CLK_MSR_ID(6, "cpu_clk_div16"),
+ CLK_MSR_ID(7, "mali_aclkm"),
+ CLK_MSR_ID(8, "cecb"),
+ CLK_MSR_ID(9, "gp2_pll"),
+ CLK_MSR_ID(10, "fclk_div5"),
+ CLK_MSR_ID(11, "p21_usb2_ckout"),
+ CLK_MSR_ID(12, "p20_usb2_ckout"),
+ CLK_MSR_ID(13, "eth_mpll_test"),
+ CLK_MSR_ID(15, "fclk_50m"),
+ CLK_MSR_ID(18, "gp1_pll"),
+ CLK_MSR_ID(19, "hifi_pll"),
+ CLK_MSR_ID(20, "gp0_pll"),
+ CLK_MSR_ID(21, "hifi1_pll"),
+ CLK_MSR_ID(22, "eth_mppll_50m_ckout"),
+ CLK_MSR_ID(23, "sys_pll_div16"),
+ CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+ CLK_MSR_ID(25, "mod_Tsin_A_CLK_IN"),
+ CLK_MSR_ID(26, "ext_Tsin_B_CLK_IN"),
+ CLK_MSR_ID(27, "mod_Tsin_C_CLK_IN"),
+ CLK_MSR_ID(28, "mod_Tsin_D_CLK_IN"),
+ CLK_MSR_ID(29, "dsi_pll_div_clk_out"),
+ CLK_MSR_ID(30, "dsi_pll_clk"),
+ CLK_MSR_ID(32, "eth_125m"),
+ CLK_MSR_ID(33, "eth_rmii"),
+ CLK_MSR_ID(34, "co_clkin_to_mac"),
+ CLK_MSR_ID(36, "co_rx_clk"),
+ CLK_MSR_ID(37, "co_tx_clk"),
+ CLK_MSR_ID(38, "eth_phy_rxclk"),
+ CLK_MSR_ID(39, "eth_phy_plltxclk"),
+ CLK_MSR_ID(40, "ephy_test_clk"),
+ CLK_MSR_ID(49, "hdmi_vx1_pix_clk"),
+ CLK_MSR_ID(50, "vid_pll"),
+ CLK_MSR_ID(51, "enci"),
+ CLK_MSR_ID(52, "encp"),
+ CLK_MSR_ID(53, "encl"),
+ CLK_MSR_ID(54, "vdac"),
+ CLK_MSR_ID(55, "cdac"),
+ CLK_MSR_ID(57, "lcd_an_clk_ph2"),
+ CLK_MSR_ID(58, "lcd_an_clk_ph3"),
+ CLK_MSR_ID(59, "hdmitx_pixel"),
+ CLK_MSR_ID(60, "vdin_meas"),
+ CLK_MSR_ID(61, "vpu"),
+ CLK_MSR_ID(62, "vpu_clkb"),
+ CLK_MSR_ID(63, "vpu_clkb_tmp"),
+ CLK_MSR_ID(64, "vpu_clkc"),
+ CLK_MSR_ID(65, "vid_lock"),
+ CLK_MSR_ID(66, "vapb"),
+ CLK_MSR_ID(67, "ge2d"),
+ CLK_MSR_ID(70, "mipi_dsi_meas"),
+ CLK_MSR_ID(71, "mipi_dsi_phy"),
+ CLK_MSR_ID(72, "mipi_csi_phy"),
+ CLK_MSR_ID(73, "csi2_adapt"),
+ CLK_MSR_ID(74, "cts_csi2_data"),
+ CLK_MSR_ID(75, "mipi_csi_phy_out"),
+ CLK_MSR_ID(76, "hdmitx_tmds"),
+ CLK_MSR_ID(77, "hdmitx_sys"),
+ CLK_MSR_ID(78, "hdmitx_fe"),
+ CLK_MSR_ID(79, "rama_clk"),
+ CLK_MSR_ID(80, "hdmitx_prif"),
+ CLK_MSR_ID(81, "hdmitx_200m"),
+ CLK_MSR_ID(82, "hdmitx_aud"),
+ CLK_MSR_ID(84, "audio_tohdmitx_mclk"),
+ CLK_MSR_ID(85, "audio_tohdmitx_bclk"),
+ CLK_MSR_ID(86, "audio_tohdmitx_lrclk"),
+ CLK_MSR_ID(87, "audio_tohdmitx_spdif_clk"),
+ CLK_MSR_ID(88, "htx_aes_clk"),
+ CLK_MSR_ID(89, "amfc"),
+ CLK_MSR_ID(93, "vdec"),
+ CLK_MSR_ID(99, "hevcf"),
+ CLK_MSR_ID(106, "deskew_pll_clk_div32_out"),
+ CLK_MSR_ID(108, "cmpr"),
+ CLK_MSR_ID(109, "dewarpa"),
+ CLK_MSR_ID(110, "sc"),
+ CLK_MSR_ID(111, "sar_adc"),
+ CLK_MSR_ID(113, "sd_emmc_c"),
+ CLK_MSR_ID(114, "sd_emmc_b"),
+ CLK_MSR_ID(115, "sd_emmc_a"),
+ CLK_MSR_ID(116, "gpio_msr_clk"),
+ CLK_MSR_ID(117, "aux_clk_o"),
+ CLK_MSR_ID(118, "spicc"),
+ CLK_MSR_ID(121, "ts"),
+ CLK_MSR_ID(130, "o_vad_clk"),
+ CLK_MSR_ID(132, "audio_locker_in_clk"),
+ CLK_MSR_ID(133, "audio_locker_out_clk"),
+ CLK_MSR_ID(134, "audio_tdmout_c_sclk"),
+ CLK_MSR_ID(135, "audio_tdmout_b_sclk"),
+ CLK_MSR_ID(136, "audio_tdmout_a_sclk"),
+ CLK_MSR_ID(137, "audio_tdmin_lb_sclk"),
+ CLK_MSR_ID(138, "audio_tdmin_c_sclk"),
+ CLK_MSR_ID(139, "audio_tdmin_b_sclk"),
+ CLK_MSR_ID(140, "audio_tdmin_a_sclk"),
+ CLK_MSR_ID(141, "audio_resamplea_clk"),
+ CLK_MSR_ID(142, "audio_pdm_sysclk"),
+ CLK_MSR_ID(143, "audio_spdifout_b_mst_clk"),
+ CLK_MSR_ID(144, "audio_spdifout_mst_clk"),
+ CLK_MSR_ID(145, "audio_spdifin_mst_clk"),
+ CLK_MSR_ID(147, "audio_resampleb_clk"),
+ CLK_MSR_ID(148, "pcie_pipe_clk"),
+ CLK_MSR_ID(149, "pcie_ref_clk"),
+ CLK_MSR_ID(150, "pcie_upcrx_cdrclk"),
+ CLK_MSR_ID(151, "pcie_upcrx_clk_sync_b20"),
+ CLK_MSR_ID(152, "pcie_u3p2pll1_clk_div16"),
+ CLK_MSR_ID(153, "pcie_u3p2pll0_clkout"),
+ CLK_MSR_ID(154, "pcie_ref_clk_p"),
+ CLK_MSR_ID(160, "pwm_j"),
+ CLK_MSR_ID(161, "pwm_i"),
+ CLK_MSR_ID(162, "pwm_h"),
+ CLK_MSR_ID(163, "pwm_g"),
+ CLK_MSR_ID(164, "pwm_f"),
+ CLK_MSR_ID(165, "pwm_e"),
+ CLK_MSR_ID(166, "pwm_d"),
+ CLK_MSR_ID(167, "pwm_c"),
+ CLK_MSR_ID(168, "pwm_b"),
+ CLK_MSR_ID(169, "pwm_a"),
+ CLK_MSR_ID(175, "rng_ring_clk[0]"),
+ CLK_MSR_ID(176, "rng_ring_clk[1]"),
+ CLK_MSR_ID(177, "rng_ring_clk[2]"),
+ CLK_MSR_ID(178, "rng_ring_clk[3]"),
+ CLK_MSR_ID(179, "rng_ring_clk[4]"),
+ CLK_MSR_ID(180, "am_ring_osc_clk_out[0]"),
+ CLK_MSR_ID(181, "am_ring_osc_clk_out[1]"),
+ CLK_MSR_ID(182, "am_ring_osc_clk_out[2]"),
+ CLK_MSR_ID(183, "am_ring_osc_clk_out[3]"),
+ CLK_MSR_ID(184, "am_ring_osc_clk_out[4]"),
+ CLK_MSR_ID(185, "am_ring_osc_clk_out[5]"),
+ CLK_MSR_ID(186, "am_ring_osc_clk_out[6]"),
+ CLK_MSR_ID(187, "am_ring_osc_clk_out[7]"),
+ CLK_MSR_ID(188, "am_ring_osc_clk_out[8]"),
+ CLK_MSR_ID(189, "am_ring_osc_clk_out[9]"),
+ CLK_MSR_ID(190, "am_ring_osc_clk_out[10]"),
+ CLK_MSR_ID(191, "am_ring_osc_clk_out[11]"),
+ CLK_MSR_ID(192, "am_ring_osc_clk_out[12]"),
+ CLK_MSR_ID(193, "am_ring_osc_clk_out[13]"),
+ CLK_MSR_ID(194, "am_ring_osc_clk_out[14]"),
+ CLK_MSR_ID(195, "am_ring_osc_clk_out[15]"),
+ CLK_MSR_ID(196, "am_ring_osc_clk_out[16]"),
+ CLK_MSR_ID(197, "nna"),
+ CLK_MSR_ID(198, "vc9000e_axi"),
+ CLK_MSR_ID(199, "vc9000e_core"),
+ CLK_MSR_ID(201, "pcie_tl"),
+ CLK_MSR_ID(204, "u3p2pll1_clk_div16"),
+ CLK_MSR_ID(205, "u3p2pll0_clkout"),
+ CLK_MSR_ID(206, "upctx_clk_sync_b20"),
+ CLK_MSR_ID(207, "upcrx_carclk"),
+ CLK_MSR_ID(208, "usb_pipe_clk"),
+ CLK_MSR_ID(209, "earcrx_pll_out"),
+ CLK_MSR_ID(210, "mclk_pll_clk")
+};
+
+static struct meson_msr_id clk_msr_a9[] = {
+ CLK_MSR_ID(0, "sys_clk"),
+ CLK_MSR_ID(1, "axi_clk"),
+ CLK_MSR_ID(2, "rtc_clk"),
+ CLK_MSR_ID(3, "dspa"),
+ CLK_MSR_ID(4, "mali_stack"),
+ CLK_MSR_ID(5, "mali"),
+ CLK_MSR_ID(6, "cpu_clk_div16"),
+ CLK_MSR_ID(7, "a78_clk_div16"),
+ CLK_MSR_ID(8, "dsu_clk_div16"),
+ CLK_MSR_ID(9, "isp"),
+ CLK_MSR_ID(10, "gp2_pll"),
+ CLK_MSR_ID(11, "fclk_div5"),
+ CLK_MSR_ID(12, "u2drd_usb2_ckout"),
+ CLK_MSR_ID(13, "pre0_hdmirx_aud_pll_clk"),
+ CLK_MSR_ID(14, "hrx20_pll_clk_test"),
+ CLK_MSR_ID(15, "u2h_usb2_ckout"),
+ CLK_MSR_ID(16, "fclk_50m"),
+ CLK_MSR_ID(17, "u3drd_b_usb2_ckout"),
+ CLK_MSR_ID(18, "gp1_pll"),
+ CLK_MSR_ID(19, "hifi_pll"),
+ CLK_MSR_ID(20, "gp0_pll"),
+ CLK_MSR_ID(21, "hifi1_pll"),
+ CLK_MSR_ID(22, "csi_phy"),
+ CLK_MSR_ID(23, "sys_pll_div16"),
+ CLK_MSR_ID(24, "ddr_dpll_pt_clk"),
+ CLK_MSR_ID(25, "mod_Tsin_A_CLK_IN"),
+ CLK_MSR_ID(26, "exit_Tsin_B_CLK_IN"),
+ CLK_MSR_ID(27, "u3p2pll1_0_clk_div16"),
+ CLK_MSR_ID(28, "u3p2pll1_1_clk_div16"),
+ CLK_MSR_ID(29, "upcrx0_cdrclk"),
+ CLK_MSR_ID(30, "upcrx1_cdrclk"),
+ CLK_MSR_ID(31, "hdmirx_aud_sck"),
+ CLK_MSR_ID(32, "uptx0_clk_sync_b20"),
+ CLK_MSR_ID(33, "uptx1_clk_sync_b20"),
+ CLK_MSR_ID(34, "lp_pll_clk0"),
+ CLK_MSR_ID(35, "lp_pll_clk1"),
+ CLK_MSR_ID(36, "u3hsg_PCIE_PIPE_PCLK"),
+ CLK_MSR_ID(37, "u3hsg_upcrx_cdrclk"),
+ CLK_MSR_ID(38, "u3hsg_upctx_clk_sync_b20"),
+ CLK_MSR_ID(39, "u3hsg_upcrxpll_clk_test"),
+ CLK_MSR_ID(40, "hdmirx_acr_lclk"),
+ CLK_MSR_ID(41, "i3c"),
+ CLK_MSR_ID(42, "hdmirx_aud_pll"),
+ CLK_MSR_ID(43, "hdmirx_acr_ref"),
+ CLK_MSR_ID(44, "hdmirx_meter"),
+ CLK_MSR_ID(45, "hdmirx_hdcp2x"),
+ CLK_MSR_ID(46, "hdmirx_5m"),
+ CLK_MSR_ID(47, "hdmirx_2m"),
+ CLK_MSR_ID(48, "hdmirx_cfg"),
+ CLK_MSR_ID(49, "hdmi_vx1_pix_clk"),
+ CLK_MSR_ID(50, "vid_pll"),
+ CLK_MSR_ID(51, "encoder0_if_clk"),
+ CLK_MSR_ID(52, "encoder1"),
+ CLK_MSR_ID(53, "encoder0"),
+ CLK_MSR_ID(54, "vdac"),
+ CLK_MSR_ID(55, "mali_aclkm"),
+ CLK_MSR_ID(56, "vid1_pll"),
+ CLK_MSR_ID(57, "lcd_an_ph2"),
+ CLK_MSR_ID(58, "lcd_an_ph3"),
+ CLK_MSR_ID(59, "hdmitx_pixel"),
+ CLK_MSR_ID(60, "vdin_meas"),
+ CLK_MSR_ID(61, "vpu"),
+ CLK_MSR_ID(62, "vpu_clkb"),
+ CLK_MSR_ID(63, "vpu_clkb_tmp"),
+ CLK_MSR_ID(64, "u3p2_upcrxpll_fst_pll_clk"),
+ CLK_MSR_ID(65, "vid_lock"),
+ CLK_MSR_ID(66, "vapb"),
+ CLK_MSR_ID(67, "ge2d"),
+ CLK_MSR_ID(68, "cve"),
+ CLK_MSR_ID(69, "vge"),
+ CLK_MSR_ID(70, "dsi0_meas"),
+ CLK_MSR_ID(71, "dsi1_meas"),
+ CLK_MSR_ID(72, "mipi_csi_phy_clk_out[0]"),
+ CLK_MSR_ID(73, "mipi_csi_phy_clk_out[1]"),
+ CLK_MSR_ID(74, "mipi_csi_phy_clk_out[2]"),
+ CLK_MSR_ID(75, "mipi_csi_phy_clk_out[3]"),
+ CLK_MSR_ID(76, "hdmitx_tmds"),
+ CLK_MSR_ID(77, "hdmitx_sys"),
+ CLK_MSR_ID(78, "hdmitx_fe"),
+ CLK_MSR_ID(80, "hdmitx_prif"),
+ CLK_MSR_ID(81, "hdmitx_200m"),
+ CLK_MSR_ID(82, "hdmitx_aud"),
+ CLK_MSR_ID(83, "hdmitx1_pixel"),
+ CLK_MSR_ID(84, "hdmitx1_fe"),
+ CLK_MSR_ID(85, "gic"),
+ CLK_MSR_ID(86, "lvds0_fifo_clk"),
+ CLK_MSR_ID(87, "lvds1_fifo_clk"),
+ CLK_MSR_ID(88, "htx_aes_clk"),
+ CLK_MSR_ID(89, "amfc"),
+ CLK_MSR_ID(90, "a_clk_sync_dig"),
+ CLK_MSR_ID(91, "b_clk_sync_dig"),
+ CLK_MSR_ID(92, "u3dp_upcrx_cdrclk"),
+ CLK_MSR_ID(93, "u3dp_upctx_clk_sync_b20"),
+ CLK_MSR_ID(94, "u3dp_upcrxpll_clk_test"),
+ CLK_MSR_ID(95, "u3dp_upcrpll_fst_pll_clk"),
+ CLK_MSR_ID(96, "u3dp_usb2_ckout"),
+ CLK_MSR_ID(97, "hcodec"),
+ CLK_MSR_ID(99, "hevcf"),
+ CLK_MSR_ID(104, "spisg2"),
+ CLK_MSR_ID(105, "spisg1"),
+ CLK_MSR_ID(106, "deskew_pll_clk_div32_out"),
+ CLK_MSR_ID(108, "cmpr"),
+ CLK_MSR_ID(109, "dewarpa"),
+ CLK_MSR_ID(110, "sc"),
+ CLK_MSR_ID(111, "sar_adc"),
+ CLK_MSR_ID(112, "glb"),
+ CLK_MSR_ID(113, "sd_emmc_c"),
+ CLK_MSR_ID(114, "sd_emmc_b"),
+ CLK_MSR_ID(115, "sd_emmc_a"),
+ CLK_MSR_ID(116, "gpio_msr_clk"),
+ CLK_MSR_ID(117, "aux_clk_o"),
+ CLK_MSR_ID(118, "spisg0"),
+ CLK_MSR_ID(121, "ts"),
+ CLK_MSR_ID(122, "usb_48m"),
+ CLK_MSR_ID(123, "usb_250m"),
+ CLK_MSR_ID(124, "eth_125m"),
+ CLK_MSR_ID(125, "eth_rmii"),
+ CLK_MSR_ID(126, "hrx20_tmds20_clk"),
+ CLK_MSR_ID(127, "hrx20_cable_clk"),
+ CLK_MSR_ID(128, "hdmirx_vid_clk"),
+ CLK_MSR_ID(129, "hdmirx_aud_clk"),
+ CLK_MSR_ID(130, "dptx_apb2"),
+ CLK_MSR_ID(131, "dptx_aud"),
+ CLK_MSR_ID(132, "audio_todptx_bclk"),
+ CLK_MSR_ID(133, "audio_txhdmitx_bclk"),
+ CLK_MSR_ID(134, "audio_txhdmitx_mclk"),
+ CLK_MSR_ID(135, "audio_txhdmitx_spdif_clk"),
+ CLK_MSR_ID(136, "mclk_0_pre"),
+ CLK_MSR_ID(137, "mclk1_0_pre"),
+ CLK_MSR_ID(138, "pixel0_pll_clkout"),
+ CLK_MSR_ID(139, "pixel1_pll_clkout"),
+ CLK_MSR_ID(140, "tcon_clk_out0"),
+ CLK_MSR_ID(141, "tcon_clk_out1"),
+ CLK_MSR_ID(142, "audio_todptx_spdif_clk"),
+ CLK_MSR_ID(143, "audio_todptx_mclk"),
+ CLK_MSR_ID(144, "dptx_lnk_clk"),
+ CLK_MSR_ID(145, "edptx_lnk_clk_tx"),
+ CLK_MSR_ID(146, "mod_audio_pdm_dclk_o_ao"),
+ CLK_MSR_ID(147, "vid2_pll"),
+ CLK_MSR_ID(151, "can1_filter"),
+ CLK_MSR_ID(152, "can0_filter"),
+ CLK_MSR_ID(153, "can1_pe"),
+ CLK_MSR_ID(154, "can0_pe"),
+ CLK_MSR_ID(155, "o_sed_clk"),
+ CLK_MSR_ID(156, "pwm_n"),
+ CLK_MSR_ID(157, "pwm_m"),
+ CLK_MSR_ID(158, "pwm_l"),
+ CLK_MSR_ID(159, "pwm_k"),
+ CLK_MSR_ID(160, "pwm_j"),
+ CLK_MSR_ID(161, "pwm_i"),
+ CLK_MSR_ID(162, "pwm_h"),
+ CLK_MSR_ID(170, "rng_ring_osc_clk[0]"),
+ CLK_MSR_ID(171, "rng_ring_osc_clk[1]"),
+ CLK_MSR_ID(172, "rng_ring_osc_clk[2]"),
+ CLK_MSR_ID(173, "rng_ring_osc_clk[3]"),
+ CLK_MSR_ID(174, "rng_ring_osc_clk[4]"),
+ CLK_MSR_ID(175, "sys_cpu_osc_ring_clk[0]"),
+ CLK_MSR_ID(176, "sys_cpu_osc_ring_clk[1]"),
+ CLK_MSR_ID(177, "sys_cpu_osc_ring_clk[2]"),
+ CLK_MSR_ID(178, "sys_cpu_osc_ring_clk[3]"),
+ CLK_MSR_ID(179, "sys_cpu_osc_ring_clk[4]"),
+ CLK_MSR_ID(180, "sys_cpu_osc_ring_clk[5]"),
+ CLK_MSR_ID(181, "sys_cpu_osc_ring_clk[6]"),
+ CLK_MSR_ID(182, "sys_cpu_osc_ring_clk[7]"),
+ CLK_MSR_ID(183, "sys_cpu_osc_ring_clk[8]"),
+ CLK_MSR_ID(184, "sys_cpu_osc_ring_clk[9]"),
+ CLK_MSR_ID(185, "osc_ring_clk_gpu[0]"),
+ CLK_MSR_ID(186, "osc_ring_clk_gpu[1]"),
+ CLK_MSR_ID(187, "osc_ring_clk_vpu"),
+ CLK_MSR_ID(188, "osc_ring_clk_dos[0]"),
+ CLK_MSR_ID(189, "osc_ring_clk_dos[1]"),
+ CLK_MSR_ID(190, "osc_ring_clk_vge"),
+ CLK_MSR_ID(191, "osc_ring_clk_nna[0]"),
+ CLK_MSR_ID(192, "osc_ring_clk_nna[1]"),
+ CLK_MSR_ID(193, "osc_ring_clk_top[0]"),
+ CLK_MSR_ID(194, "osc_ring_clk_top[1]"),
+ CLK_MSR_ID(195, "nna"),
+ CLK_MSR_ID(200, "pcie1_tl"),
+ CLK_MSR_ID(201, "pcie0_tl"),
+ CLK_MSR_ID(202, "pp"),
+ CLK_MSR_ID(203, "pwm_a(ao)"),
+ CLK_MSR_ID(204, "pwm_b(ao)"),
+ CLK_MSR_ID(205, "pwm_c(ao)"),
+ CLK_MSR_ID(206, "pwm_d(ao)"),
+ CLK_MSR_ID(207, "pwm_e(ao)"),
+ CLK_MSR_ID(208, "pwm_f(ao)"),
+ CLK_MSR_ID(209, "pwm_g(ao)"),
+ CLK_MSR_ID(210, "ao_cec"),
+ CLK_MSR_ID(211, "sec_pulse_out"),
+ CLK_MSR_ID(212, "osc_clk_out"),
+ CLK_MSR_ID(213, "earcrx_pll_clk_out"),
+ CLK_MSR_ID(215, "o_pd_sysclk"),
+ CLK_MSR_ID(216, "o_earcrx_dmac_clk"),
+ CLK_MSR_ID(217, "o_earcrx_cmdc_clk"),
+ CLK_MSR_ID(218, "o_earctx_dmac_clk"),
+ CLK_MSR_ID(219, "o_earctx_cmdc_clk"),
+ CLK_MSR_ID(220, "o_earctx_ana_dmac_clk_a2d"),
+ CLK_MSR_ID(221, "o_tohdmi_dp_tx_a_bclk"),
+ CLK_MSR_ID(222, "o_tohdmi_dp_tx_a_mclk"),
+ CLK_MSR_ID(223, "o_tohdmi_dp_tx_a_spdif_clk"),
+ CLK_MSR_ID(224, "o_tohdmi_dp_tx_b_bclk"),
+ CLK_MSR_ID(225, "o_tohdmi_dp_tx_b_mclk"),
+ CLK_MSR_ID(226, "o_tohdmi_dp_tx_b_spdif_clk"),
+ CLK_MSR_ID(227, "o_toacodec_dac_bclk"),
+ CLK_MSR_ID(228, "o_toacodec_dac_mclk"),
+ CLK_MSR_ID(229, "o_spdifout_b_mst_clk"),
+ CLK_MSR_ID(230, "o_spdifout_mst_clk"),
+ CLK_MSR_ID(231, "o_spdifin_mst_clk"),
+ CLK_MSR_ID(232, "o_audio_mclk"),
+ CLK_MSR_ID(233, "o_vad_clk"),
+ CLK_MSR_ID(234, "o_tdmout_d_sclk"),
+ CLK_MSR_ID(235, "o_tdmout_c_sclk"),
+ CLK_MSR_ID(236, "o_tdmout_b_sclk"),
+ CLK_MSR_ID(237, "o_tdmout_a_sclk"),
+ CLK_MSR_ID(238, "o_tdminb_lb_sclk"),
+ CLK_MSR_ID(239, "o_tdmin_lb_sclk"),
+ CLK_MSR_ID(240, "o_tdmin_d_sclk"),
+ CLK_MSR_ID(241, "o_tdmin_c_sclk"),
+ CLK_MSR_ID(242, "o_tdmin_b_sclk"),
+ CLK_MSR_ID(243, "o_tdmin_a_sclk"),
+ CLK_MSR_ID(244, "o_resampleb_clk"),
+ CLK_MSR_ID(245, "o_resamplea_clk"),
+ CLK_MSR_ID(246, "o_pdmb_sysclk"),
+ CLK_MSR_ID(247, "o_pdmb_dclk"),
+ CLK_MSR_ID(248, "o_pdm_sysclk"),
+ CLK_MSR_ID(249, "o_pdm_dclk"),
+ CLK_MSR_ID(250, "c_alockerb_out_clk"),
+ CLK_MSR_ID(251, "c_alockerb_in_clk"),
+ CLK_MSR_ID(252, "c_alocker_out_clk"),
+ CLK_MSR_ID(253, "c_alocker_in_clk"),
+ CLK_MSR_ID(254, "o_resample_c_clk")
+};
+
static int meson_measure_id(struct meson_msr_id *clk_msr_id,
unsigned int duration)
{
@@ -1303,6 +2140,42 @@ static const struct meson_msr_data clk_msr_t7_data = {
.reg = &msr_reg_offset_v2,
};
+static const struct meson_msr_data clk_msr_a5_data = {
+ .msr_table = (void *)clk_msr_a5,
+ .msr_count = ARRAY_SIZE(clk_msr_a5),
+ .reg = &msr_reg_offset_v2,
+};
+
+static const struct meson_msr_data clk_msr_a4_data = {
+ .msr_table = (void *)clk_msr_a4,
+ .msr_count = ARRAY_SIZE(clk_msr_a4),
+ .reg = &msr_reg_offset_v2,
+};
+
+static const struct meson_msr_data clk_msr_s7_data = {
+ .msr_table = (void *)clk_msr_s7,
+ .msr_count = ARRAY_SIZE(clk_msr_s7),
+ .reg = &msr_reg_offset_v2,
+};
+
+static const struct meson_msr_data clk_msr_s7d_data = {
+ .msr_table = (void *)clk_msr_s7d,
+ .msr_count = ARRAY_SIZE(clk_msr_s7d),
+ .reg = &msr_reg_offset_v2,
+};
+
+static const struct meson_msr_data clk_msr_s6_data = {
+ .msr_table = (void *)clk_msr_s6,
+ .msr_count = ARRAY_SIZE(clk_msr_s6),
+ .reg = &msr_reg_offset_v2,
+};
+
+static const struct meson_msr_data clk_msr_a9_data = {
+ .msr_table = (void *)clk_msr_a9,
+ .msr_count = ARRAY_SIZE(clk_msr_a9),
+ .reg = &msr_reg_offset_v2,
+};
+
static const struct of_device_id meson_msr_match_table[] = {
{
.compatible = "amlogic,meson-gx-clk-measure",
@@ -1344,6 +2217,30 @@ static const struct of_device_id meson_msr_match_table[] = {
.compatible = "amlogic,t7-clk-measure",
.data = &clk_msr_t7_data,
},
+ {
+ .compatible = "amlogic,a5-clk-measure",
+ .data = &clk_msr_a5_data,
+ },
+ {
+ .compatible = "amlogic,a4-clk-measure",
+ .data = &clk_msr_a4_data,
+ },
+ {
+ .compatible = "amlogic,s7-clk-measure",
+ .data = &clk_msr_s7_data,
+ },
+ {
+ .compatible = "amlogic,s7d-clk-measure",
+ .data = &clk_msr_s7d_data,
+ },
+ {
+ .compatible = "amlogic,s6-clk-measure",
+ .data = &clk_msr_s6_data,
+ },
+ {
+ .compatible = "amlogic,a9-clk-measure",
+ .data = &clk_msr_a9_data,
+ },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, meson_msr_match_table);
--
2.42.0
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 12+ messages in thread