@@ -436,6 +436,90 @@ static const struct eqc_pll eqc_eyeq5_plls[] = {
436
436
{ .index = EQ5C_PLL_DDR1 , .name = "pll-ddr1" , .reg64 = 0x074 },
437
437
};
438
438
439
+ enum {
440
+ /*
441
+ * EQ5C_PLL_CPU children.
442
+ * EQ5C_PER_OCC_PCI is the last clock exposed in dt-bindings.
443
+ */
444
+ EQ5C_CPU_OCC = EQ5C_PER_OCC_PCI + 1 ,
445
+ EQ5C_CPU_SI_CSS0 ,
446
+ EQ5C_CPU_CPC ,
447
+ EQ5C_CPU_CM ,
448
+ EQ5C_CPU_MEM ,
449
+ EQ5C_CPU_OCC_ISRAM ,
450
+ EQ5C_CPU_ISRAM ,
451
+ EQ5C_CPU_OCC_DBU ,
452
+ EQ5C_CPU_SI_DBU_TP ,
453
+
454
+ /*
455
+ * EQ5C_PLL_VDI children.
456
+ */
457
+ EQ5C_VDI_OCC_VDI ,
458
+ EQ5C_VDI_VDI ,
459
+ EQ5C_VDI_OCC_CAN_SER ,
460
+ EQ5C_VDI_CAN_SER ,
461
+ EQ5C_VDI_I2C_SER ,
462
+
463
+ /*
464
+ * EQ5C_PLL_PER children.
465
+ */
466
+ EQ5C_PER_PERIPH ,
467
+ EQ5C_PER_CAN ,
468
+ EQ5C_PER_TIMER ,
469
+ EQ5C_PER_CCF ,
470
+ EQ5C_PER_OCC_MJPEG ,
471
+ EQ5C_PER_HSM ,
472
+ EQ5C_PER_MJPEG ,
473
+ EQ5C_PER_FCMU_A ,
474
+ };
475
+
476
+ static const struct eqc_fixed_factor eqc_eyeq5_early_fixed_factors [] = {
477
+ /* EQ5C_PLL_CPU children */
478
+ { EQ5C_CPU_OCC , "occ-cpu" , 1 , 1 , EQ5C_PLL_CPU },
479
+ { EQ5C_CPU_SI_CSS0 , "si-css0" , 1 , 1 , EQ5C_CPU_OCC },
480
+ { EQ5C_CPU_CORE0 , "core0" , 1 , 1 , EQ5C_CPU_SI_CSS0 },
481
+ { EQ5C_CPU_CORE1 , "core1" , 1 , 1 , EQ5C_CPU_SI_CSS0 },
482
+ { EQ5C_CPU_CORE2 , "core2" , 1 , 1 , EQ5C_CPU_SI_CSS0 },
483
+ { EQ5C_CPU_CORE3 , "core3" , 1 , 1 , EQ5C_CPU_SI_CSS0 },
484
+
485
+ /* EQ5C_PLL_PER children */
486
+ { EQ5C_PER_OCC , "occ-periph" , 1 , 16 , EQ5C_PLL_PER },
487
+ { EQ5C_PER_UART , "uart" , 1 , 1 , EQ5C_PER_OCC },
488
+ };
489
+
490
+ static const struct eqc_fixed_factor eqc_eyeq5_fixed_factors [] = {
491
+ /* EQ5C_PLL_CPU children */
492
+ { EQ5C_CPU_CPC , "cpc" , 1 , 1 , EQ5C_CPU_SI_CSS0 },
493
+ { EQ5C_CPU_CM , "cm" , 1 , 1 , EQ5C_CPU_SI_CSS0 },
494
+ { EQ5C_CPU_MEM , "mem" , 1 , 1 , EQ5C_CPU_SI_CSS0 },
495
+ { EQ5C_CPU_OCC_ISRAM , "occ-isram" , 1 , 2 , EQ5C_PLL_CPU },
496
+ { EQ5C_CPU_ISRAM , "isram" , 1 , 1 , EQ5C_CPU_OCC_ISRAM },
497
+ { EQ5C_CPU_OCC_DBU , "occ-dbu" , 1 , 10 , EQ5C_PLL_CPU },
498
+ { EQ5C_CPU_SI_DBU_TP , "si-dbu-tp" , 1 , 1 , EQ5C_CPU_OCC_DBU },
499
+
500
+ /* EQ5C_PLL_VDI children */
501
+ { EQ5C_VDI_OCC_VDI , "occ-vdi" , 1 , 2 , EQ5C_PLL_VDI },
502
+ { EQ5C_VDI_VDI , "vdi" , 1 , 1 , EQ5C_VDI_OCC_VDI },
503
+ { EQ5C_VDI_OCC_CAN_SER , "occ-can-ser" , 1 , 16 , EQ5C_PLL_VDI },
504
+ { EQ5C_VDI_CAN_SER , "can-ser" , 1 , 1 , EQ5C_VDI_OCC_CAN_SER },
505
+ { EQ5C_VDI_I2C_SER , "i2c-ser" , 1 , 20 , EQ5C_PLL_VDI },
506
+
507
+ /* EQ5C_PLL_PER children */
508
+ { EQ5C_PER_PERIPH , "periph" , 1 , 1 , EQ5C_PER_OCC },
509
+ { EQ5C_PER_CAN , "can" , 1 , 1 , EQ5C_PER_OCC },
510
+ { EQ5C_PER_SPI , "spi" , 1 , 1 , EQ5C_PER_OCC },
511
+ { EQ5C_PER_I2C , "i2c" , 1 , 1 , EQ5C_PER_OCC },
512
+ { EQ5C_PER_TIMER , "timer" , 1 , 1 , EQ5C_PER_OCC },
513
+ { EQ5C_PER_GPIO , "gpio" , 1 , 1 , EQ5C_PER_OCC },
514
+ { EQ5C_PER_EMMC , "emmc-sys" , 1 , 10 , EQ5C_PLL_PER },
515
+ { EQ5C_PER_CCF , "ccf-ctrl" , 1 , 4 , EQ5C_PLL_PER },
516
+ { EQ5C_PER_OCC_MJPEG , "occ-mjpeg" , 1 , 2 , EQ5C_PLL_PER },
517
+ { EQ5C_PER_HSM , "hsm" , 1 , 1 , EQ5C_PER_OCC_MJPEG },
518
+ { EQ5C_PER_MJPEG , "mjpeg" , 1 , 1 , EQ5C_PER_OCC_MJPEG },
519
+ { EQ5C_PER_FCMU_A , "fcmu-a" , 1 , 20 , EQ5C_PLL_PER },
520
+ { EQ5C_PER_OCC_PCI , "occ-pci-sys" , 1 , 8 , EQ5C_PLL_PER },
521
+ };
522
+
439
523
static const struct eqc_div eqc_eyeq5_divs [] = {
440
524
{
441
525
.index = EQ5C_DIV_OSPI ,
@@ -451,7 +535,11 @@ static const struct eqc_early_match_data eqc_eyeq5_early_match_data __initconst
451
535
.early_pll_count = ARRAY_SIZE (eqc_eyeq5_early_plls ),
452
536
.early_plls = eqc_eyeq5_early_plls ,
453
537
454
- .late_clk_count = ARRAY_SIZE (eqc_eyeq5_plls ) + ARRAY_SIZE (eqc_eyeq5_divs ),
538
+ .early_fixed_factor_count = ARRAY_SIZE (eqc_eyeq5_early_fixed_factors ),
539
+ .early_fixed_factors = eqc_eyeq5_early_fixed_factors ,
540
+
541
+ .late_clk_count = ARRAY_SIZE (eqc_eyeq5_plls ) + ARRAY_SIZE (eqc_eyeq5_divs ) +
542
+ ARRAY_SIZE (eqc_eyeq5_fixed_factors ),
455
543
};
456
544
457
545
static const struct eqc_match_data eqc_eyeq5_match_data = {
@@ -461,10 +549,14 @@ static const struct eqc_match_data eqc_eyeq5_match_data = {
461
549
.div_count = ARRAY_SIZE (eqc_eyeq5_divs ),
462
550
.divs = eqc_eyeq5_divs ,
463
551
552
+ .fixed_factor_count = ARRAY_SIZE (eqc_eyeq5_fixed_factors ),
553
+ .fixed_factors = eqc_eyeq5_fixed_factors ,
554
+
464
555
.reset_auxdev_name = "reset" ,
465
556
.pinctrl_auxdev_name = "pinctrl" ,
466
557
467
- .early_clk_count = ARRAY_SIZE (eqc_eyeq5_early_plls ),
558
+ .early_clk_count = ARRAY_SIZE (eqc_eyeq5_early_plls ) +
559
+ ARRAY_SIZE (eqc_eyeq5_early_fixed_factors ),
468
560
};
469
561
470
562
static const struct eqc_pll eqc_eyeq6l_plls [] = {
0 commit comments