@@ -504,28 +504,46 @@ static int imx8mp_clocks_probe(struct platform_device *pdev)
504
504
hws [IMX8MP_GPU_PLL_OUT ] = imx_clk_hw_gate ("gpu_pll_out" , "gpu_pll_bypass" , anatop_base + 0x64 , 11 );
505
505
hws [IMX8MP_VPU_PLL_OUT ] = imx_clk_hw_gate ("vpu_pll_out" , "vpu_pll_bypass" , anatop_base + 0x74 , 11 );
506
506
hws [IMX8MP_ARM_PLL_OUT ] = imx_clk_hw_gate ("arm_pll_out" , "arm_pll_bypass" , anatop_base + 0x84 , 11 );
507
- hws [IMX8MP_SYS_PLL1_OUT ] = imx_clk_hw_gate ("sys_pll1_out" , "sys_pll1_bypass" , anatop_base + 0x94 , 11 );
508
- hws [IMX8MP_SYS_PLL2_OUT ] = imx_clk_hw_gate ("sys_pll2_out" , "sys_pll2_bypass" , anatop_base + 0x104 , 11 );
509
507
hws [IMX8MP_SYS_PLL3_OUT ] = imx_clk_hw_gate ("sys_pll3_out" , "sys_pll3_bypass" , anatop_base + 0x114 , 11 );
510
508
511
- hws [IMX8MP_SYS_PLL1_40M ] = imx_clk_hw_fixed_factor ("sys_pll1_40m" , "sys_pll1_out" , 1 , 20 );
512
- hws [IMX8MP_SYS_PLL1_80M ] = imx_clk_hw_fixed_factor ("sys_pll1_80m" , "sys_pll1_out" , 1 , 10 );
513
- hws [IMX8MP_SYS_PLL1_100M ] = imx_clk_hw_fixed_factor ("sys_pll1_100m" , "sys_pll1_out" , 1 , 8 );
514
- hws [IMX8MP_SYS_PLL1_133M ] = imx_clk_hw_fixed_factor ("sys_pll1_133m" , "sys_pll1_out" , 1 , 6 );
515
- hws [IMX8MP_SYS_PLL1_160M ] = imx_clk_hw_fixed_factor ("sys_pll1_160m" , "sys_pll1_out" , 1 , 5 );
516
- hws [IMX8MP_SYS_PLL1_200M ] = imx_clk_hw_fixed_factor ("sys_pll1_200m" , "sys_pll1_out" , 1 , 4 );
517
- hws [IMX8MP_SYS_PLL1_266M ] = imx_clk_hw_fixed_factor ("sys_pll1_266m" , "sys_pll1_out" , 1 , 3 );
518
- hws [IMX8MP_SYS_PLL1_400M ] = imx_clk_hw_fixed_factor ("sys_pll1_400m" , "sys_pll1_out" , 1 , 2 );
509
+ hws [IMX8MP_SYS_PLL1_40M_CG ] = imx_clk_hw_gate ("sys_pll1_40m_cg" , "sys_pll1_bypass" , anatop_base + 0x94 , 27 );
510
+ hws [IMX8MP_SYS_PLL1_80M_CG ] = imx_clk_hw_gate ("sys_pll1_80m_cg" , "sys_pll1_bypass" , anatop_base + 0x94 , 25 );
511
+ hws [IMX8MP_SYS_PLL1_100M_CG ] = imx_clk_hw_gate ("sys_pll1_100m_cg" , "sys_pll1_bypass" , anatop_base + 0x94 , 23 );
512
+ hws [IMX8MP_SYS_PLL1_133M_CG ] = imx_clk_hw_gate ("sys_pll1_133m_cg" , "sys_pll1_bypass" , anatop_base + 0x94 , 21 );
513
+ hws [IMX8MP_SYS_PLL1_160M_CG ] = imx_clk_hw_gate ("sys_pll1_160m_cg" , "sys_pll1_bypass" , anatop_base + 0x94 , 19 );
514
+ hws [IMX8MP_SYS_PLL1_200M_CG ] = imx_clk_hw_gate ("sys_pll1_200m_cg" , "sys_pll1_bypass" , anatop_base + 0x94 , 17 );
515
+ hws [IMX8MP_SYS_PLL1_266M_CG ] = imx_clk_hw_gate ("sys_pll1_266m_cg" , "sys_pll1_bypass" , anatop_base + 0x94 , 15 );
516
+ hws [IMX8MP_SYS_PLL1_400M_CG ] = imx_clk_hw_gate ("sys_pll1_400m_cg" , "sys_pll1_bypass" , anatop_base + 0x94 , 13 );
517
+ hws [IMX8MP_SYS_PLL1_OUT ] = imx_clk_hw_gate ("sys_pll1_out" , "sys_pll1_bypass" , anatop_base + 0x94 , 11 );
518
+
519
+ hws [IMX8MP_SYS_PLL1_40M ] = imx_clk_hw_fixed_factor ("sys_pll1_40m" , "sys_pll1_40m_cg" , 1 , 20 );
520
+ hws [IMX8MP_SYS_PLL1_80M ] = imx_clk_hw_fixed_factor ("sys_pll1_80m" , "sys_pll1_80m_cg" , 1 , 10 );
521
+ hws [IMX8MP_SYS_PLL1_100M ] = imx_clk_hw_fixed_factor ("sys_pll1_100m" , "sys_pll1_100m_cg" , 1 , 8 );
522
+ hws [IMX8MP_SYS_PLL1_133M ] = imx_clk_hw_fixed_factor ("sys_pll1_133m" , "sys_pll1_133m_cg" , 1 , 6 );
523
+ hws [IMX8MP_SYS_PLL1_160M ] = imx_clk_hw_fixed_factor ("sys_pll1_160m" , "sys_pll1_160m_cg" , 1 , 5 );
524
+ hws [IMX8MP_SYS_PLL1_200M ] = imx_clk_hw_fixed_factor ("sys_pll1_200m" , "sys_pll1_200m_cg" , 1 , 4 );
525
+ hws [IMX8MP_SYS_PLL1_266M ] = imx_clk_hw_fixed_factor ("sys_pll1_266m" , "sys_pll1_266m_cg" , 1 , 3 );
526
+ hws [IMX8MP_SYS_PLL1_400M ] = imx_clk_hw_fixed_factor ("sys_pll1_400m" , "sys_pll1_400m_cg" , 1 , 2 );
519
527
hws [IMX8MP_SYS_PLL1_800M ] = imx_clk_hw_fixed_factor ("sys_pll1_800m" , "sys_pll1_out" , 1 , 1 );
520
528
521
- hws [IMX8MP_SYS_PLL2_50M ] = imx_clk_hw_fixed_factor ("sys_pll2_50m" , "sys_pll2_out" , 1 , 20 );
522
- hws [IMX8MP_SYS_PLL2_100M ] = imx_clk_hw_fixed_factor ("sys_pll2_100m" , "sys_pll2_out" , 1 , 10 );
523
- hws [IMX8MP_SYS_PLL2_125M ] = imx_clk_hw_fixed_factor ("sys_pll2_125m" , "sys_pll2_out" , 1 , 8 );
524
- hws [IMX8MP_SYS_PLL2_166M ] = imx_clk_hw_fixed_factor ("sys_pll2_166m" , "sys_pll2_out" , 1 , 6 );
525
- hws [IMX8MP_SYS_PLL2_200M ] = imx_clk_hw_fixed_factor ("sys_pll2_200m" , "sys_pll2_out" , 1 , 5 );
526
- hws [IMX8MP_SYS_PLL2_250M ] = imx_clk_hw_fixed_factor ("sys_pll2_250m" , "sys_pll2_out" , 1 , 4 );
527
- hws [IMX8MP_SYS_PLL2_333M ] = imx_clk_hw_fixed_factor ("sys_pll2_333m" , "sys_pll2_out" , 1 , 3 );
528
- hws [IMX8MP_SYS_PLL2_500M ] = imx_clk_hw_fixed_factor ("sys_pll2_500m" , "sys_pll2_out" , 1 , 2 );
529
+ hws [IMX8MP_SYS_PLL2_50M_CG ] = imx_clk_hw_gate ("sys_pll2_50m_cg" , "sys_pll2_bypass" , anatop_base + 0x104 , 27 );
530
+ hws [IMX8MP_SYS_PLL2_100M_CG ] = imx_clk_hw_gate ("sys_pll2_100m_cg" , "sys_pll2_bypass" , anatop_base + 0x104 , 25 );
531
+ hws [IMX8MP_SYS_PLL2_125M_CG ] = imx_clk_hw_gate ("sys_pll2_125m_cg" , "sys_pll2_bypass" , anatop_base + 0x104 , 23 );
532
+ hws [IMX8MP_SYS_PLL2_166M_CG ] = imx_clk_hw_gate ("sys_pll2_166m_cg" , "sys_pll2_bypass" , anatop_base + 0x104 , 21 );
533
+ hws [IMX8MP_SYS_PLL2_200M_CG ] = imx_clk_hw_gate ("sys_pll2_200m_cg" , "sys_pll2_bypass" , anatop_base + 0x104 , 19 );
534
+ hws [IMX8MP_SYS_PLL2_250M_CG ] = imx_clk_hw_gate ("sys_pll2_250m_cg" , "sys_pll2_bypass" , anatop_base + 0x104 , 17 );
535
+ hws [IMX8MP_SYS_PLL2_333M_CG ] = imx_clk_hw_gate ("sys_pll2_333m_cg" , "sys_pll2_bypass" , anatop_base + 0x104 , 15 );
536
+ hws [IMX8MP_SYS_PLL2_500M_CG ] = imx_clk_hw_gate ("sys_pll2_500m_cg" , "sys_pll2_bypass" , anatop_base + 0x104 , 13 );
537
+ hws [IMX8MP_SYS_PLL2_OUT ] = imx_clk_hw_gate ("sys_pll2_out" , "sys_pll2_bypass" , anatop_base + 0x104 , 11 );
538
+
539
+ hws [IMX8MP_SYS_PLL2_50M ] = imx_clk_hw_fixed_factor ("sys_pll2_50m" , "sys_pll2_50m_cg" , 1 , 20 );
540
+ hws [IMX8MP_SYS_PLL2_100M ] = imx_clk_hw_fixed_factor ("sys_pll2_100m" , "sys_pll2_100m_cg" , 1 , 10 );
541
+ hws [IMX8MP_SYS_PLL2_125M ] = imx_clk_hw_fixed_factor ("sys_pll2_125m" , "sys_pll2_125m_cg" , 1 , 8 );
542
+ hws [IMX8MP_SYS_PLL2_166M ] = imx_clk_hw_fixed_factor ("sys_pll2_166m" , "sys_pll2_166m_cg" , 1 , 6 );
543
+ hws [IMX8MP_SYS_PLL2_200M ] = imx_clk_hw_fixed_factor ("sys_pll2_200m" , "sys_pll2_200m_cg" , 1 , 5 );
544
+ hws [IMX8MP_SYS_PLL2_250M ] = imx_clk_hw_fixed_factor ("sys_pll2_250m" , "sys_pll2_250m_cg" , 1 , 4 );
545
+ hws [IMX8MP_SYS_PLL2_333M ] = imx_clk_hw_fixed_factor ("sys_pll2_333m" , "sys_pll2_333m_cg" , 1 , 3 );
546
+ hws [IMX8MP_SYS_PLL2_500M ] = imx_clk_hw_fixed_factor ("sys_pll2_500m" , "sys_pll2_500m_cg" , 1 , 2 );
529
547
hws [IMX8MP_SYS_PLL2_1000M ] = imx_clk_hw_fixed_factor ("sys_pll2_1000m" , "sys_pll2_out" , 1 , 1 );
530
548
531
549
hws [IMX8MP_CLK_A53_SRC ] = imx_clk_hw_mux2 ("arm_a53_src" , ccm_base + 0x8000 , 24 , 3 , imx8mp_a53_sels , ARRAY_SIZE (imx8mp_a53_sels ));
0 commit comments