@@ -467,12 +467,334 @@ const struct pmc_reg_map mtl_socm_reg_map = {
467
467
.lpm_live_status_offset = MTL_LPM_LIVE_STATUS_OFFSET ,
468
468
};
469
469
470
+ const struct pmc_bit_map mtl_ioep_pfear_map [] = {
471
+ {"PMC_0" , BIT (0 )},
472
+ {"OPI" , BIT (1 )},
473
+ {"TCSS" , BIT (2 )},
474
+ {"RSVD3" , BIT (3 )},
475
+ {"SPA" , BIT (4 )},
476
+ {"SPB" , BIT (5 )},
477
+ {"SPC" , BIT (6 )},
478
+ {"IOE_D2D_3" , BIT (7 )},
479
+
480
+ {"RSVD8" , BIT (0 )},
481
+ {"RSVD9" , BIT (1 )},
482
+ {"SPE" , BIT (2 )},
483
+ {"RSVD11" , BIT (3 )},
484
+ {"RSVD12" , BIT (4 )},
485
+ {"SPD" , BIT (5 )},
486
+ {"ACE_7" , BIT (6 )},
487
+ {"RSVD15" , BIT (7 )},
488
+
489
+ {"ACE_0" , BIT (0 )},
490
+ {"FIACPCB_P" , BIT (1 )},
491
+ {"P2S" , BIT (2 )},
492
+ {"RSVD19" , BIT (3 )},
493
+ {"ACE_8" , BIT (4 )},
494
+ {"IOE_D2D_0" , BIT (5 )},
495
+ {"FUSE" , BIT (6 )},
496
+ {"RSVD23" , BIT (7 )},
497
+
498
+ {"FIACPCB_P5" , BIT (0 )},
499
+ {"ACE_3" , BIT (1 )},
500
+ {"RSF5" , BIT (2 )},
501
+ {"ACE_2" , BIT (3 )},
502
+ {"ACE_4" , BIT (4 )},
503
+ {"RSVD29" , BIT (5 )},
504
+ {"RSF10" , BIT (6 )},
505
+ {"MPFPW5" , BIT (7 )},
506
+
507
+ {"PSF9" , BIT (0 )},
508
+ {"MPFPW4" , BIT (1 )},
509
+ {"RSVD34" , BIT (2 )},
510
+ {"RSVD35" , BIT (3 )},
511
+ {"RSVD36" , BIT (4 )},
512
+ {"RSVD37" , BIT (5 )},
513
+ {"RSVD38" , BIT (6 )},
514
+ {"RSVD39" , BIT (7 )},
515
+
516
+ {"SBR0" , BIT (0 )},
517
+ {"SBR1" , BIT (1 )},
518
+ {"SBR2" , BIT (2 )},
519
+ {"SBR3" , BIT (3 )},
520
+ {"SBR4" , BIT (4 )},
521
+ {"SBR5" , BIT (5 )},
522
+ {"RSVD46" , BIT (6 )},
523
+ {"RSVD47" , BIT (7 )},
524
+
525
+ {"RSVD48" , BIT (0 )},
526
+ {"FIA_P5" , BIT (1 )},
527
+ {"RSVD50" , BIT (2 )},
528
+ {"RSVD51" , BIT (3 )},
529
+ {"RSVD52" , BIT (4 )},
530
+ {"RSVD53" , BIT (5 )},
531
+ {"RSVD54" , BIT (6 )},
532
+ {"ACE_1" , BIT (7 )},
533
+
534
+ {"RSVD56" , BIT (0 )},
535
+ {"ACE_5" , BIT (1 )},
536
+ {"RSVD58" , BIT (2 )},
537
+ {"G5FPW1" , BIT (3 )},
538
+ {"RSVD60" , BIT (4 )},
539
+ {"ACE_6" , BIT (5 )},
540
+ {"RSVD62" , BIT (6 )},
541
+ {"GBETSN1" , BIT (7 )},
542
+
543
+ {"RSVD64" , BIT (0 )},
544
+ {"FIA" , BIT (1 )},
545
+ {"RSVD66" , BIT (2 )},
546
+ {"FIA_P" , BIT (3 )},
547
+ {"TAM" , BIT (4 )},
548
+ {"GBETSN" , BIT (5 )},
549
+ {"IOE_D2D_2" , BIT (6 )},
550
+ {"IOE_D2D_1" , BIT (7 )},
551
+
552
+ {"SPF" , BIT (0 )},
553
+ {"PMC_1" , BIT (1 )},
554
+ {}
555
+ };
556
+
557
+ const struct pmc_bit_map * ext_mtl_ioep_pfear_map [] = {
558
+ mtl_ioep_pfear_map ,
559
+ NULL
560
+ };
561
+
562
+ const struct pmc_bit_map mtl_ioep_ltr_show_map [] = {
563
+ {"SOUTHPORT_A" , CNP_PMC_LTR_SPA },
564
+ {"SOUTHPORT_B" , CNP_PMC_LTR_SPB },
565
+ {"SATA" , CNP_PMC_LTR_SATA },
566
+ {"GIGABIT_ETHERNET" , CNP_PMC_LTR_GBE },
567
+ {"XHCI" , CNP_PMC_LTR_XHCI },
568
+ {"SOUTHPORT_F" , ADL_PMC_LTR_SPF },
569
+ {"ME" , CNP_PMC_LTR_ME },
570
+ {"SATA1" , CNP_PMC_LTR_EVA },
571
+ {"SOUTHPORT_C" , CNP_PMC_LTR_SPC },
572
+ {"HD_AUDIO" , CNP_PMC_LTR_AZ },
573
+ {"CNV" , CNP_PMC_LTR_CNV },
574
+ {"LPSS" , CNP_PMC_LTR_LPSS },
575
+ {"SOUTHPORT_D" , CNP_PMC_LTR_SPD },
576
+ {"SOUTHPORT_E" , CNP_PMC_LTR_SPE },
577
+ {"SATA2" , CNP_PMC_LTR_CAM },
578
+ {"ESPI" , CNP_PMC_LTR_ESPI },
579
+ {"SCC" , CNP_PMC_LTR_SCC },
580
+ {"Reserved" , MTL_PMC_LTR_RESERVED },
581
+ {"UFSX2" , CNP_PMC_LTR_UFSX2 },
582
+ {"EMMC" , CNP_PMC_LTR_EMMC },
583
+ {"WIGIG" , ICL_PMC_LTR_WIGIG },
584
+ {"THC0" , TGL_PMC_LTR_THC0 },
585
+ {"THC1" , TGL_PMC_LTR_THC1 },
586
+ {"SOUTHPORT_G" , MTL_PMC_LTR_SPG },
587
+
588
+ /* Below two cannot be used for LTR_IGNORE */
589
+ {"CURRENT_PLATFORM" , CNP_PMC_LTR_CUR_PLT },
590
+ {"AGGREGATED_SYSTEM" , CNP_PMC_LTR_CUR_ASLT },
591
+ {}
592
+ };
593
+
594
+ const struct pmc_bit_map mtl_ioep_clocksource_status_map [] = {
595
+ {"AON2_OFF_STS" , BIT (0 )},
596
+ {"AON3_OFF_STS" , BIT (1 )},
597
+ {"AON4_OFF_STS" , BIT (2 )},
598
+ {"AON5_OFF_STS" , BIT (3 )},
599
+ {"AON1_OFF_STS" , BIT (4 )},
600
+ {"TBT_PLL_OFF_STS" , BIT (5 )},
601
+ {"TMU_PLL_OFF_STS" , BIT (6 )},
602
+ {"BCLK_PLL_OFF_STS" , BIT (7 )},
603
+ {"D2D_PLL_OFF_STS" , BIT (8 )},
604
+ {"AON3_SPL_OFF_STS" , BIT (9 )},
605
+ {"MPFPW4_0_PLL_OFF_STS" , BIT (12 )},
606
+ {"MPFPW5_0_PLL_OFF_STS" , BIT (13 )},
607
+ {"G5FPW_0_PLL_OFF_STS" , BIT (14 )},
608
+ {"G5FPW_1_PLL_OFF_STS" , BIT (15 )},
609
+ {"XTAL_AGGR_OFF_STS" , BIT (17 )},
610
+ {"FABRIC_PLL_OFF_STS" , BIT (25 )},
611
+ {"SOC_PLL_OFF_STS" , BIT (26 )},
612
+ {"REF_PLL_OFF_STS" , BIT (28 )},
613
+ {"RTC_PLL_OFF_STS" , BIT (31 )},
614
+ {}
615
+ };
616
+
617
+ const struct pmc_bit_map mtl_ioep_power_gating_status_0_map [] = {
618
+ {"PMC_PGD0_PG_STS" , BIT (0 )},
619
+ {"DMI_PGD0_PG_STS" , BIT (1 )},
620
+ {"TCSS_PGD0_PG_STS" , BIT (2 )},
621
+ {"SPA_PGD0_PG_STS" , BIT (4 )},
622
+ {"SPB_PGD0_PG_STS" , BIT (5 )},
623
+ {"SPC_PGD0_PG_STS" , BIT (6 )},
624
+ {"IOE_D2D_PGD3_PG_STS" , BIT (7 )},
625
+ {"SPE_PGD0_PG_STS" , BIT (10 )},
626
+ {"SPD_PGD0_PG_STS" , BIT (13 )},
627
+ {"ACE_PGD7_PG_STS" , BIT (14 )},
628
+ {"ACE_PGD0_PG_STS" , BIT (16 )},
629
+ {"FIACPCB_P_PGD0_PG_STS" , BIT (17 )},
630
+ {"P2S_PGD0_PG_STS" , BIT (18 )},
631
+ {"ACE_PGD8_PG_STS" , BIT (20 )},
632
+ {"IOE_D2D_PGD0_PG_STS" , BIT (21 )},
633
+ {"FUSE_PGD0_PG_STS" , BIT (22 )},
634
+ {"FIACPCB_P5_PGD0_PG_STS" , BIT (24 )},
635
+ {"ACE_PGD3_PG_STS" , BIT (25 )},
636
+ {"PSF5_PGD0_PG_STS" , BIT (26 )},
637
+ {"ACE_PGD2_PG_STS" , BIT (27 )},
638
+ {"ACE_PGD4_PG_STS" , BIT (28 )},
639
+ {"PSF10_PGD0_PG_STS" , BIT (30 )},
640
+ {"MPFPW5_PGD0_PG_STS" , BIT (31 )},
641
+ {}
642
+ };
643
+
644
+ const struct pmc_bit_map mtl_ioep_power_gating_status_1_map [] = {
645
+ {"PSF9_PGD0_PG_STS" , BIT (0 )},
646
+ {"MPFPW4_PGD0_PG_STS" , BIT (1 )},
647
+ {"SBR0_PGD0_PG_STS" , BIT (8 )},
648
+ {"SBR1_PGD0_PG_STS" , BIT (9 )},
649
+ {"SBR2_PGD0_PG_STS" , BIT (10 )},
650
+ {"SBR3_PGD0_PG_STS" , BIT (11 )},
651
+ {"SBR4_PGD0_PG_STS" , BIT (12 )},
652
+ {"SBR5_PGD0_PG_STS" , BIT (13 )},
653
+ {"FIA_P5_PGD0_PG_STS" , BIT (17 )},
654
+ {"ACE_PGD1_PGD0_PG_STS" , BIT (23 )},
655
+ {"ACE_PGD5_PGD1_PG_STS" , BIT (25 )},
656
+ {"G5FPW1_PGD0_PG_STS" , BIT (27 )},
657
+ {"ACE_PGD6_PG_STS" , BIT (29 )},
658
+ {"GBETSN1_PGD0_PG_STS" , BIT (31 )},
659
+ {}
660
+ };
661
+
662
+ const struct pmc_bit_map mtl_ioep_power_gating_status_2_map [] = {
663
+ {"FIA_PGD0_PG_STS" , BIT (1 )},
664
+ {"FIA_P_PGD0_PG_STS" , BIT (3 )},
665
+ {"TAM_PGD0_PG_STS" , BIT (4 )},
666
+ {"GBETSN_PGD0_PG_STS" , BIT (5 )},
667
+ {"IOE_D2D_PGD2_PG_STS" , BIT (6 )},
668
+ {"IOE_D2D_PGD1_PG_STS" , BIT (7 )},
669
+ {"SPF_PGD0_PG_STS" , BIT (8 )},
670
+ {"PMC_PGD1_PG_STS" , BIT (9 )},
671
+ {}
672
+ };
673
+
674
+ const struct pmc_bit_map mtl_ioep_d3_status_0_map [] = {
675
+ {"SPF_D3_STS" , BIT (0 )},
676
+ {"SPA_D3_STS" , BIT (12 )},
677
+ {"SPB_D3_STS" , BIT (13 )},
678
+ {"SPC_D3_STS" , BIT (14 )},
679
+ {"SPD_D3_STS" , BIT (15 )},
680
+ {"SPE_D3_STS" , BIT (16 )},
681
+ {"DMI_D3_STS" , BIT (22 )},
682
+ {}
683
+ };
684
+
685
+ const struct pmc_bit_map mtl_ioep_d3_status_1_map [] = {
686
+ {"GBETSN1_D3_STS" , BIT (14 )},
687
+ {"P2S_D3_STS" , BIT (24 )},
688
+ {}
689
+ };
690
+
691
+ const struct pmc_bit_map mtl_ioep_d3_status_2_map [] = {
692
+ {}
693
+ };
694
+
695
+ const struct pmc_bit_map mtl_ioep_d3_status_3_map [] = {
696
+ {"GBETSN_D3_STS" , BIT (13 )},
697
+ {"ACE_D3_STS" , BIT (23 )},
698
+ {}
699
+ };
700
+
701
+ const struct pmc_bit_map mtl_ioep_vnn_req_status_0_map [] = {
702
+ {"FIA_VNN_REQ_STS" , BIT (17 )},
703
+ {}
704
+ };
705
+
706
+ const struct pmc_bit_map mtl_ioep_vnn_req_status_1_map [] = {
707
+ {"DFXAGG_VNN_REQ_STS" , BIT (8 )},
708
+ {}
709
+ };
710
+
711
+ const struct pmc_bit_map mtl_ioep_vnn_req_status_2_map [] = {
712
+ {}
713
+ };
714
+
715
+ const struct pmc_bit_map mtl_ioep_vnn_req_status_3_map [] = {
716
+ {"DTS0_VNN_REQ_STS" , BIT (7 )},
717
+ {"DISP_VNN_REQ_STS" , BIT (19 )},
718
+ {}
719
+ };
720
+
721
+ const struct pmc_bit_map mtl_ioep_vnn_misc_status_map [] = {
722
+ {"CPU_C10_REQ_STS" , BIT (0 )},
723
+ {"TS_OFF_REQ_STS" , BIT (1 )},
724
+ {"PNDE_MET_REQ_STS" , BIT (2 )},
725
+ {"PCIE_DEEP_PM_REQ_STS" , BIT (3 )},
726
+ {"PMC_CLK_THROTTLE_EN_REQ_STS" , BIT (4 )},
727
+ {"NPK_VNNAON_REQ_STS" , BIT (5 )},
728
+ {"VNN_SOC_REQ_STS" , BIT (6 )},
729
+ {"USB_DEVICE_ATTACHED_REQ_STS" , BIT (8 )},
730
+ {"FIA_EXIT_REQ_STS" , BIT (9 )},
731
+ {"USB2_SUS_PG_REQ_STS" , BIT (10 )},
732
+ {"PLT_GREATER_REQ_STS" , BIT (11 )},
733
+ {"PCIE_CLKREQ_REQ_STS" , BIT (12 )},
734
+ {"PMC_IDLE_FB_OCP_REQ_STS" , BIT (13 )},
735
+ {"PM_SYNC_STATES_REQ_STS" , BIT (14 )},
736
+ {"EA_REQ_STS" , BIT (15 )},
737
+ {"MPHY_CORE_OFF_REQ_STS" , BIT (16 )},
738
+ {"BRK_EV_EN_REQ_STS" , BIT (17 )},
739
+ {"AUTO_DEMO_EN_REQ_STS" , BIT (18 )},
740
+ {"ITSS_CLK_SRC_REQ_STS" , BIT (19 )},
741
+ {"LPC_CLK_SRC_REQ_STS" , BIT (20 )},
742
+ {"ARC_IDLE_REQ_STS" , BIT (21 )},
743
+ {"MPHY_SUS_REQ_STS" , BIT (22 )},
744
+ {"FIA_DEEP_PM_REQ_STS" , BIT (23 )},
745
+ {"UXD_CONNECTED_REQ_STS" , BIT (24 )},
746
+ {"ARC_INTERRUPT_WAKE_REQ_STS" , BIT (25 )},
747
+ {"USB2_VNNAON_ACT_REQ_STS" , BIT (26 )},
748
+ {"PRE_WAKE0_REQ_STS" , BIT (27 )},
749
+ {"PRE_WAKE1_REQ_STS" , BIT (28 )},
750
+ {"PRE_WAKE2_EN_REQ_STS" , BIT (29 )},
751
+ {"WOV_REQ_STS" , BIT (30 )},
752
+ {"CNVI_V1P05_REQ_STS" , BIT (31 )},
753
+ {}
754
+ };
755
+
756
+ const struct pmc_bit_map * mtl_ioep_lpm_maps [] = {
757
+ mtl_ioep_clocksource_status_map ,
758
+ mtl_ioep_power_gating_status_0_map ,
759
+ mtl_ioep_power_gating_status_1_map ,
760
+ mtl_ioep_power_gating_status_2_map ,
761
+ mtl_ioep_d3_status_0_map ,
762
+ mtl_ioep_d3_status_1_map ,
763
+ mtl_ioep_d3_status_2_map ,
764
+ mtl_ioep_d3_status_3_map ,
765
+ mtl_ioep_vnn_req_status_0_map ,
766
+ mtl_ioep_vnn_req_status_1_map ,
767
+ mtl_ioep_vnn_req_status_2_map ,
768
+ mtl_ioep_vnn_req_status_3_map ,
769
+ mtl_ioep_vnn_misc_status_map ,
770
+ mtl_socm_signal_status_map ,
771
+ NULL
772
+ };
773
+
774
+ const struct pmc_reg_map mtl_ioep_reg_map = {
775
+ .regmap_length = MTL_IOE_PMC_MMIO_REG_LEN ,
776
+ .pfear_sts = ext_mtl_ioep_pfear_map ,
777
+ .ppfear0_offset = CNP_PMC_HOST_PPFEAR0A ,
778
+ .ppfear_buckets = MTL_IOE_PPFEAR_NUM_ENTRIES ,
779
+ .lpm_status_offset = MTL_LPM_STATUS_OFFSET ,
780
+ .lpm_live_status_offset = MTL_LPM_LIVE_STATUS_OFFSET ,
781
+ .lpm_sts = mtl_ioep_lpm_maps ,
782
+ .ltr_show_sts = mtl_ioep_ltr_show_map ,
783
+ .ltr_ignore_offset = CNP_PMC_LTR_IGNORE_OFFSET ,
784
+ .ltr_ignore_max = ADL_NUM_IP_IGN_ALLOWED ,
785
+ };
786
+
470
787
#define PMC_DEVID_SOCM 0x7e7f
788
+ #define PMC_DEVID_IOEP 0x7ecf
471
789
static struct pmc_info mtl_pmc_info_list [] = {
472
790
{
473
791
.devid = PMC_DEVID_SOCM ,
474
792
.map = & mtl_socm_reg_map ,
475
793
},
794
+ {
795
+ .devid = PMC_DEVID_IOEP ,
796
+ .map = & mtl_ioep_reg_map ,
797
+ },
476
798
{}
477
799
};
478
800
0 commit comments