1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright (C) 2016 Freescale Semiconductor, Inc. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #ifndef _ASM_ARCH_PCC_H 8*4882a593Smuzhiyun #define _ASM_ARCH_PCC_H 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #include <common.h> 11*4882a593Smuzhiyun #include <asm/arch/scg.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun /* PCC2 */ 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun enum pcc2_entry { 16*4882a593Smuzhiyun /* On-Platform (32 entries) */ 17*4882a593Smuzhiyun RSVD0_PCC2_SLOT = 0, 18*4882a593Smuzhiyun RSVD1_PCC2_SLOT = 1, 19*4882a593Smuzhiyun CA7_GIC_PCC2_SLOT = 2, 20*4882a593Smuzhiyun RSVD3_PCC2_SLOT = 3, 21*4882a593Smuzhiyun RSVD4_PCC2_SLOT = 4, 22*4882a593Smuzhiyun RSVD5_PCC2_SLOT = 5, 23*4882a593Smuzhiyun RSVD6_PCC2_SLOT = 6, 24*4882a593Smuzhiyun RSVD7_PCC2_SLOT = 7, 25*4882a593Smuzhiyun DMA1_PCC2_SLOT = 8, 26*4882a593Smuzhiyun RSVD9_PCC2_SLOT = 9, 27*4882a593Smuzhiyun RSVD10_PCC2_SLOT = 10, 28*4882a593Smuzhiyun RSVD11_PCC2_SLOT = 11, 29*4882a593Smuzhiyun RSVD12_PCC2_SLOT = 12, 30*4882a593Smuzhiyun RSVD13_PCC2_SLOT = 13, 31*4882a593Smuzhiyun RSVD14_PCC2_SLOT = 14, 32*4882a593Smuzhiyun RGPIO1_PCC2_SLOT = 15, 33*4882a593Smuzhiyun FLEXBUS0_PCC2_SLOT = 16, 34*4882a593Smuzhiyun RSVD17_PCC2_SLOT = 17, 35*4882a593Smuzhiyun RSVD18_PCC2_SLOT = 18, 36*4882a593Smuzhiyun RSVD19_PCC2_SLOT = 19, 37*4882a593Smuzhiyun RSVD20_PCC2_SLOT = 20, 38*4882a593Smuzhiyun RSVD21_PCC2_SLOT = 21, 39*4882a593Smuzhiyun RSVD22_PCC2_SLOT = 22, 40*4882a593Smuzhiyun RSVD23_PCC2_SLOT = 23, 41*4882a593Smuzhiyun RSVD24_PCC2_SLOT = 24, 42*4882a593Smuzhiyun RSVD25_PCC2_SLOT = 25, 43*4882a593Smuzhiyun RSVD26_PCC2_SLOT = 26, 44*4882a593Smuzhiyun SEMA42_1_PCC2_SLOT = 27, 45*4882a593Smuzhiyun RSVD28_PCC2_SLOT = 28, 46*4882a593Smuzhiyun RSVD29_PCC2_SLOT = 29, 47*4882a593Smuzhiyun RSVD30_PCC2_SLOT = 30, 48*4882a593Smuzhiyun RSVD31_PCC2_SLOT = 31, 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun /* Off-Platform (96 entries) */ 51*4882a593Smuzhiyun RSVD32_PCC2_SLOT = 32, 52*4882a593Smuzhiyun DMA1_CH_MUX0_PCC2_SLOT = 33, 53*4882a593Smuzhiyun MU_B_PCC2_SLOT = 34, 54*4882a593Smuzhiyun SNVS_PCC2_SLOT = 35, 55*4882a593Smuzhiyun CAAM_PCC2_SLOT = 36, 56*4882a593Smuzhiyun LPTPM4_PCC2_SLOT = 37, 57*4882a593Smuzhiyun LPTPM5_PCC2_SLOT = 38, 58*4882a593Smuzhiyun LPIT1_PCC2_SLOT = 39, 59*4882a593Smuzhiyun RSVD40_PCC2_SLOT = 40, 60*4882a593Smuzhiyun LPSPI2_PCC2_SLOT = 41, 61*4882a593Smuzhiyun LPSPI3_PCC2_SLOT = 42, 62*4882a593Smuzhiyun LPI2C4_PCC2_SLOT = 43, 63*4882a593Smuzhiyun LPI2C5_PCC2_SLOT = 44, 64*4882a593Smuzhiyun LPUART4_PCC2_SLOT = 45, 65*4882a593Smuzhiyun LPUART5_PCC2_SLOT = 46, 66*4882a593Smuzhiyun RSVD47_PCC2_SLOT = 47, 67*4882a593Smuzhiyun RSVD48_PCC2_SLOT = 48, 68*4882a593Smuzhiyun FLEXIO1_PCC2_SLOT = 49, 69*4882a593Smuzhiyun RSVD50_PCC2_SLOT = 50, 70*4882a593Smuzhiyun USBOTG0_PCC2_SLOT = 51, 71*4882a593Smuzhiyun USBOTG1_PCC2_SLOT = 52, 72*4882a593Smuzhiyun USBPHY_PCC2_SLOT = 53, 73*4882a593Smuzhiyun USB_PL301_PCC2_SLOT = 54, 74*4882a593Smuzhiyun USDHC0_PCC2_SLOT = 55, 75*4882a593Smuzhiyun USDHC1_PCC2_SLOT = 56, 76*4882a593Smuzhiyun RSVD57_PCC2_SLOT = 57, 77*4882a593Smuzhiyun TRGMUX1_PCC2_SLOT = 58, 78*4882a593Smuzhiyun RSVD59_PCC2_SLOT = 59, 79*4882a593Smuzhiyun RSVD60_PCC2_SLOT = 60, 80*4882a593Smuzhiyun WDG1_PCC2_SLOT = 61, 81*4882a593Smuzhiyun SCG1_PCC2_SLOT = 62, 82*4882a593Smuzhiyun PCC2_PCC2_SLOT = 63, 83*4882a593Smuzhiyun PMC1_PCC2_SLOT = 64, 84*4882a593Smuzhiyun SMC1_PCC2_SLOT = 65, 85*4882a593Smuzhiyun RCM1_PCC2_SLOT = 66, 86*4882a593Smuzhiyun WDG2_PCC2_SLOT = 67, 87*4882a593Smuzhiyun RSVD68_PCC2_SLOT = 68, 88*4882a593Smuzhiyun TEST_SPACE1_PCC2_SLOT = 69, 89*4882a593Smuzhiyun TEST_SPACE2_PCC2_SLOT = 70, 90*4882a593Smuzhiyun TEST_SPACE3_PCC2_SLOT = 71, 91*4882a593Smuzhiyun RSVD72_PCC2_SLOT = 72, 92*4882a593Smuzhiyun RSVD73_PCC2_SLOT = 73, 93*4882a593Smuzhiyun RSVD74_PCC2_SLOT = 74, 94*4882a593Smuzhiyun RSVD75_PCC2_SLOT = 75, 95*4882a593Smuzhiyun RSVD76_PCC2_SLOT = 76, 96*4882a593Smuzhiyun RSVD77_PCC2_SLOT = 77, 97*4882a593Smuzhiyun RSVD78_PCC2_SLOT = 78, 98*4882a593Smuzhiyun RSVD79_PCC2_SLOT = 79, 99*4882a593Smuzhiyun RSVD80_PCC2_SLOT = 80, 100*4882a593Smuzhiyun RSVD81_PCC2_SLOT = 81, 101*4882a593Smuzhiyun RSVD82_PCC2_SLOT = 82, 102*4882a593Smuzhiyun RSVD83_PCC2_SLOT = 83, 103*4882a593Smuzhiyun RSVD84_PCC2_SLOT = 84, 104*4882a593Smuzhiyun RSVD85_PCC2_SLOT = 85, 105*4882a593Smuzhiyun RSVD86_PCC2_SLOT = 86, 106*4882a593Smuzhiyun RSVD87_PCC2_SLOT = 87, 107*4882a593Smuzhiyun RSVD88_PCC2_SLOT = 88, 108*4882a593Smuzhiyun RSVD89_PCC2_SLOT = 89, 109*4882a593Smuzhiyun RSVD90_PCC2_SLOT = 90, 110*4882a593Smuzhiyun RSVD91_PCC2_SLOT = 91, 111*4882a593Smuzhiyun RSVD92_PCC2_SLOT = 92, 112*4882a593Smuzhiyun RSVD93_PCC2_SLOT = 93, 113*4882a593Smuzhiyun RSVD94_PCC2_SLOT = 94, 114*4882a593Smuzhiyun RSVD95_PCC2_SLOT = 95, 115*4882a593Smuzhiyun RSVD96_PCC2_SLOT = 96, 116*4882a593Smuzhiyun RSVD97_PCC2_SLOT = 97, 117*4882a593Smuzhiyun RSVD98_PCC2_SLOT = 98, 118*4882a593Smuzhiyun RSVD99_PCC2_SLOT = 99, 119*4882a593Smuzhiyun RSVD100_PCC2_SLOT = 100, 120*4882a593Smuzhiyun RSVD101_PCC2_SLOT = 101, 121*4882a593Smuzhiyun RSVD102_PCC2_SLOT = 102, 122*4882a593Smuzhiyun RSVD103_PCC2_SLOT = 103, 123*4882a593Smuzhiyun RSVD104_PCC2_SLOT = 104, 124*4882a593Smuzhiyun RSVD105_PCC2_SLOT = 105, 125*4882a593Smuzhiyun RSVD106_PCC2_SLOT = 106, 126*4882a593Smuzhiyun RSVD107_PCC2_SLOT = 107, 127*4882a593Smuzhiyun RSVD108_PCC2_SLOT = 108, 128*4882a593Smuzhiyun RSVD109_PCC2_SLOT = 109, 129*4882a593Smuzhiyun RSVD110_PCC2_SLOT = 110, 130*4882a593Smuzhiyun RSVD111_PCC2_SLOT = 111, 131*4882a593Smuzhiyun RSVD112_PCC2_SLOT = 112, 132*4882a593Smuzhiyun RSVD113_PCC2_SLOT = 113, 133*4882a593Smuzhiyun RSVD114_PCC2_SLOT = 114, 134*4882a593Smuzhiyun RSVD115_PCC2_SLOT = 115, 135*4882a593Smuzhiyun RSVD116_PCC2_SLOT = 116, 136*4882a593Smuzhiyun RSVD117_PCC2_SLOT = 117, 137*4882a593Smuzhiyun RSVD118_PCC2_SLOT = 118, 138*4882a593Smuzhiyun RSVD119_PCC2_SLOT = 119, 139*4882a593Smuzhiyun RSVD120_PCC2_SLOT = 120, 140*4882a593Smuzhiyun RSVD121_PCC2_SLOT = 121, 141*4882a593Smuzhiyun RSVD122_PCC2_SLOT = 122, 142*4882a593Smuzhiyun RSVD123_PCC2_SLOT = 123, 143*4882a593Smuzhiyun RSVD124_PCC2_SLOT = 124, 144*4882a593Smuzhiyun RSVD125_PCC2_SLOT = 125, 145*4882a593Smuzhiyun RSVD126_PCC2_SLOT = 126, 146*4882a593Smuzhiyun RSVD127_PCC2_SLOT = 127, 147*4882a593Smuzhiyun }; 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun enum pcc3_entry { 150*4882a593Smuzhiyun /* On-Platform (32 entries) */ 151*4882a593Smuzhiyun RSVD0_PCC3_SLOT = 0, 152*4882a593Smuzhiyun RSVD1_PCC3_SLOT = 1, 153*4882a593Smuzhiyun RSVD2_PCC3_SLOT = 2, 154*4882a593Smuzhiyun RSVD3_PCC3_SLOT = 3, 155*4882a593Smuzhiyun RSVD4_PCC3_SLOT = 4, 156*4882a593Smuzhiyun RSVD5_PCC3_SLOT = 5, 157*4882a593Smuzhiyun RSVD6_PCC3_SLOT = 6, 158*4882a593Smuzhiyun RSVD7_PCC3_SLOT = 7, 159*4882a593Smuzhiyun RSVD8_PCC3_SLOT = 8, 160*4882a593Smuzhiyun RSVD9_PCC3_SLOT = 9, 161*4882a593Smuzhiyun RSVD10_PCC3_SLOT = 10, 162*4882a593Smuzhiyun RSVD11_PCC3_SLOT = 11, 163*4882a593Smuzhiyun RSVD12_PCC3_SLOT = 12, 164*4882a593Smuzhiyun RSVD13_PCC3_SLOT = 13, 165*4882a593Smuzhiyun RSVD14_PCC3_SLOT = 14, 166*4882a593Smuzhiyun RSVD15_PCC3_SLOT = 15, 167*4882a593Smuzhiyun ROMCP1_PCC3_SLOT = 16, 168*4882a593Smuzhiyun RSVD17_PCC3_SLOT = 17, 169*4882a593Smuzhiyun RSVD18_PCC3_SLOT = 18, 170*4882a593Smuzhiyun RSVD19_PCC3_SLOT = 19, 171*4882a593Smuzhiyun RSVD20_PCC3_SLOT = 20, 172*4882a593Smuzhiyun RSVD21_PCC3_SLOT = 21, 173*4882a593Smuzhiyun RSVD22_PCC3_SLOT = 22, 174*4882a593Smuzhiyun RSVD23_PCC3_SLOT = 23, 175*4882a593Smuzhiyun RSVD24_PCC3_SLOT = 24, 176*4882a593Smuzhiyun RSVD25_PCC3_SLOT = 25, 177*4882a593Smuzhiyun RSVD26_PCC3_SLOT = 26, 178*4882a593Smuzhiyun RSVD27_PCC3_SLOT = 27, 179*4882a593Smuzhiyun RSVD28_PCC3_SLOT = 28, 180*4882a593Smuzhiyun RSVD29_PCC3_SLOT = 29, 181*4882a593Smuzhiyun RSVD30_PCC3_SLOT = 30, 182*4882a593Smuzhiyun RSVD31_PCC3_SLOT = 31, 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun /* Off-Platform (96 entries) */ 185*4882a593Smuzhiyun RSVD32_PCC3_SLOT = 32, 186*4882a593Smuzhiyun LPTPM6_PCC3_SLOT = 33, 187*4882a593Smuzhiyun LPTPM7_PCC3_SLOT = 34, 188*4882a593Smuzhiyun RSVD35_PCC3_SLOT = 35, 189*4882a593Smuzhiyun LPI2C6_PCC3_SLOT = 36, 190*4882a593Smuzhiyun LPI2C7_PCC3_SLOT = 37, 191*4882a593Smuzhiyun LPUART6_PCC3_SLOT = 38, 192*4882a593Smuzhiyun LPUART7_PCC3_SLOT = 39, 193*4882a593Smuzhiyun VIU0_PCC3_SLOT = 40, 194*4882a593Smuzhiyun DSI0_PCC3_SLOT = 41, 195*4882a593Smuzhiyun LCDIF0_PCC3_SLOT = 42, 196*4882a593Smuzhiyun MMDC0_PCC3_SLOT = 43, 197*4882a593Smuzhiyun IOMUXC1_PCC3_SLOT = 44, 198*4882a593Smuzhiyun IOMUXC_DDR_PCC3_SLOT = 45, 199*4882a593Smuzhiyun PORTC_PCC3_SLOT = 46, 200*4882a593Smuzhiyun PORTD_PCC3_SLOT = 47, 201*4882a593Smuzhiyun PORTE_PCC3_SLOT = 48, 202*4882a593Smuzhiyun PORTF_PCC3_SLOT = 49, 203*4882a593Smuzhiyun RSVD50_PCC3_SLOT = 50, 204*4882a593Smuzhiyun PCC3_PCC3_SLOT = 51, 205*4882a593Smuzhiyun RSVD52_PCC3_SLOT = 52, 206*4882a593Smuzhiyun WKPU_PCC3_SLOT = 53, 207*4882a593Smuzhiyun RSVD54_PCC3_SLOT = 54, 208*4882a593Smuzhiyun RSVD55_PCC3_SLOT = 55, 209*4882a593Smuzhiyun RSVD56_PCC3_SLOT = 56, 210*4882a593Smuzhiyun RSVD57_PCC3_SLOT = 57, 211*4882a593Smuzhiyun RSVD58_PCC3_SLOT = 58, 212*4882a593Smuzhiyun RSVD59_PCC3_SLOT = 59, 213*4882a593Smuzhiyun RSVD60_PCC3_SLOT = 60, 214*4882a593Smuzhiyun RSVD61_PCC3_SLOT = 61, 215*4882a593Smuzhiyun RSVD62_PCC3_SLOT = 62, 216*4882a593Smuzhiyun RSVD63_PCC3_SLOT = 63, 217*4882a593Smuzhiyun RSVD64_PCC3_SLOT = 64, 218*4882a593Smuzhiyun RSVD65_PCC3_SLOT = 65, 219*4882a593Smuzhiyun RSVD66_PCC3_SLOT = 66, 220*4882a593Smuzhiyun RSVD67_PCC3_SLOT = 67, 221*4882a593Smuzhiyun RSVD68_PCC3_SLOT = 68, 222*4882a593Smuzhiyun RSVD69_PCC3_SLOT = 69, 223*4882a593Smuzhiyun RSVD70_PCC3_SLOT = 70, 224*4882a593Smuzhiyun RSVD71_PCC3_SLOT = 71, 225*4882a593Smuzhiyun RSVD72_PCC3_SLOT = 72, 226*4882a593Smuzhiyun RSVD73_PCC3_SLOT = 73, 227*4882a593Smuzhiyun RSVD74_PCC3_SLOT = 74, 228*4882a593Smuzhiyun RSVD75_PCC3_SLOT = 75, 229*4882a593Smuzhiyun RSVD76_PCC3_SLOT = 76, 230*4882a593Smuzhiyun RSVD77_PCC3_SLOT = 77, 231*4882a593Smuzhiyun RSVD78_PCC3_SLOT = 78, 232*4882a593Smuzhiyun RSVD79_PCC3_SLOT = 79, 233*4882a593Smuzhiyun RSVD80_PCC3_SLOT = 80, 234*4882a593Smuzhiyun GPU3D_PCC3_SLOT = 81, 235*4882a593Smuzhiyun GPU2D_PCC3_SLOT = 82, 236*4882a593Smuzhiyun RSVD83_PCC3_SLOT = 83, 237*4882a593Smuzhiyun RSVD84_PCC3_SLOT = 84, 238*4882a593Smuzhiyun RSVD85_PCC3_SLOT = 85, 239*4882a593Smuzhiyun RSVD86_PCC3_SLOT = 86, 240*4882a593Smuzhiyun RSVD87_PCC3_SLOT = 87, 241*4882a593Smuzhiyun RSVD88_PCC3_SLOT = 88, 242*4882a593Smuzhiyun RSVD89_PCC3_SLOT = 89, 243*4882a593Smuzhiyun RSVD90_PCC3_SLOT = 90, 244*4882a593Smuzhiyun RSVD91_PCC3_SLOT = 91, 245*4882a593Smuzhiyun RSVD92_PCC3_SLOT = 92, 246*4882a593Smuzhiyun RSVD93_PCC3_SLOT = 93, 247*4882a593Smuzhiyun RSVD94_PCC3_SLOT = 94, 248*4882a593Smuzhiyun RSVD95_PCC3_SLOT = 95, 249*4882a593Smuzhiyun RSVD96_PCC3_SLOT = 96, 250*4882a593Smuzhiyun RSVD97_PCC3_SLOT = 97, 251*4882a593Smuzhiyun RSVD98_PCC3_SLOT = 98, 252*4882a593Smuzhiyun RSVD99_PCC3_SLOT = 99, 253*4882a593Smuzhiyun RSVD100_PCC3_SLOT = 100, 254*4882a593Smuzhiyun RSVD101_PCC3_SLOT = 101, 255*4882a593Smuzhiyun RSVD102_PCC3_SLOT = 102, 256*4882a593Smuzhiyun RSVD103_PCC3_SLOT = 103, 257*4882a593Smuzhiyun RSVD104_PCC3_SLOT = 104, 258*4882a593Smuzhiyun RSVD105_PCC3_SLOT = 105, 259*4882a593Smuzhiyun RSVD106_PCC3_SLOT = 106, 260*4882a593Smuzhiyun RSVD107_PCC3_SLOT = 107, 261*4882a593Smuzhiyun RSVD108_PCC3_SLOT = 108, 262*4882a593Smuzhiyun RSVD109_PCC3_SLOT = 109, 263*4882a593Smuzhiyun RSVD110_PCC3_SLOT = 110, 264*4882a593Smuzhiyun RSVD111_PCC3_SLOT = 111, 265*4882a593Smuzhiyun RSVD112_PCC3_SLOT = 112, 266*4882a593Smuzhiyun RSVD113_PCC3_SLOT = 113, 267*4882a593Smuzhiyun RSVD114_PCC3_SLOT = 114, 268*4882a593Smuzhiyun RSVD115_PCC3_SLOT = 115, 269*4882a593Smuzhiyun RSVD116_PCC3_SLOT = 116, 270*4882a593Smuzhiyun RSVD117_PCC3_SLOT = 117, 271*4882a593Smuzhiyun RSVD118_PCC3_SLOT = 118, 272*4882a593Smuzhiyun RSVD119_PCC3_SLOT = 119, 273*4882a593Smuzhiyun RSVD120_PCC3_SLOT = 120, 274*4882a593Smuzhiyun RSVD121_PCC3_SLOT = 121, 275*4882a593Smuzhiyun RSVD122_PCC3_SLOT = 122, 276*4882a593Smuzhiyun RSVD123_PCC3_SLOT = 123, 277*4882a593Smuzhiyun RSVD124_PCC3_SLOT = 124, 278*4882a593Smuzhiyun RSVD125_PCC3_SLOT = 125, 279*4882a593Smuzhiyun RSVD126_PCC3_SLOT = 126, 280*4882a593Smuzhiyun RSVD127_PCC3_SLOT = 127, 281*4882a593Smuzhiyun }; 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun /* PCC registers */ 285*4882a593Smuzhiyun #define PCC_PR_OFFSET 31 286*4882a593Smuzhiyun #define PCC_PR_MASK (0x1 << PCC_PR_OFFSET) 287*4882a593Smuzhiyun #define PCC_CGC_OFFSET 30 288*4882a593Smuzhiyun #define PCC_CGC_MASK (0x1 << PCC_CGC_OFFSET) 289*4882a593Smuzhiyun #define PCC_INUSE_OFFSET 29 290*4882a593Smuzhiyun #define PCC_INUSE_MASK (0x1 << PCC_INUSE_OFFSET) 291*4882a593Smuzhiyun #define PCC_PCS_OFFSET 24 292*4882a593Smuzhiyun #define PCC_PCS_MASK (0x7 << PCC_PCS_OFFSET) 293*4882a593Smuzhiyun #define PCC_FRAC_OFFSET 4 294*4882a593Smuzhiyun #define PCC_FRAC_MASK (0x1 << PCC_FRAC_OFFSET) 295*4882a593Smuzhiyun #define PCC_PCD_OFFSET 0 296*4882a593Smuzhiyun #define PCC_PCD_MASK (0xf << PCC_PCD_OFFSET) 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun 299*4882a593Smuzhiyun enum pcc_clksrc_type { 300*4882a593Smuzhiyun CLKSRC_PER_PLAT = 0, 301*4882a593Smuzhiyun CLKSRC_PER_BUS = 1, 302*4882a593Smuzhiyun CLKSRC_NO_PCS = 2, 303*4882a593Smuzhiyun }; 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun enum pcc_div_type { 306*4882a593Smuzhiyun PCC_HAS_DIV, 307*4882a593Smuzhiyun PCC_NO_DIV, 308*4882a593Smuzhiyun }; 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun /* All peripheral clocks on A7 PCCs */ 311*4882a593Smuzhiyun enum pcc_clk { 312*4882a593Smuzhiyun /*PCC2 clocks*/ 313*4882a593Smuzhiyun PER_CLK_DMA1 = 0, 314*4882a593Smuzhiyun PER_CLK_RGPIO2P1, 315*4882a593Smuzhiyun PER_CLK_FLEXBUS, 316*4882a593Smuzhiyun PER_CLK_SEMA42_1, 317*4882a593Smuzhiyun PER_CLK_DMA_MUX1, 318*4882a593Smuzhiyun PER_CLK_SNVS, 319*4882a593Smuzhiyun PER_CLK_CAAM, 320*4882a593Smuzhiyun PER_CLK_LPTPM4, 321*4882a593Smuzhiyun PER_CLK_LPTPM5, 322*4882a593Smuzhiyun PER_CLK_LPIT1, 323*4882a593Smuzhiyun PER_CLK_LPSPI2, 324*4882a593Smuzhiyun PER_CLK_LPSPI3, 325*4882a593Smuzhiyun PER_CLK_LPI2C4, 326*4882a593Smuzhiyun PER_CLK_LPI2C5, 327*4882a593Smuzhiyun PER_CLK_LPUART4, 328*4882a593Smuzhiyun PER_CLK_LPUART5, 329*4882a593Smuzhiyun PER_CLK_FLEXIO1, 330*4882a593Smuzhiyun PER_CLK_USB0, 331*4882a593Smuzhiyun PER_CLK_USB1, 332*4882a593Smuzhiyun PER_CLK_USB_PHY, 333*4882a593Smuzhiyun PER_CLK_USB_PL301, 334*4882a593Smuzhiyun PER_CLK_USDHC0, 335*4882a593Smuzhiyun PER_CLK_USDHC1, 336*4882a593Smuzhiyun PER_CLK_WDG1, 337*4882a593Smuzhiyun PER_CLK_WDG2, 338*4882a593Smuzhiyun 339*4882a593Smuzhiyun /*PCC3 clocks*/ 340*4882a593Smuzhiyun PER_CLK_LPTPM6, 341*4882a593Smuzhiyun PER_CLK_LPTPM7, 342*4882a593Smuzhiyun PER_CLK_LPI2C6, 343*4882a593Smuzhiyun PER_CLK_LPI2C7, 344*4882a593Smuzhiyun PER_CLK_LPUART6, 345*4882a593Smuzhiyun PER_CLK_LPUART7, 346*4882a593Smuzhiyun PER_CLK_VIU, 347*4882a593Smuzhiyun PER_CLK_DSI, 348*4882a593Smuzhiyun PER_CLK_LCDIF, 349*4882a593Smuzhiyun PER_CLK_MMDC, 350*4882a593Smuzhiyun PER_CLK_PCTLC, 351*4882a593Smuzhiyun PER_CLK_PCTLD, 352*4882a593Smuzhiyun PER_CLK_PCTLE, 353*4882a593Smuzhiyun PER_CLK_PCTLF, 354*4882a593Smuzhiyun PER_CLK_GPU3D, 355*4882a593Smuzhiyun PER_CLK_GPU2D, 356*4882a593Smuzhiyun }; 357*4882a593Smuzhiyun 358*4882a593Smuzhiyun 359*4882a593Smuzhiyun /* This structure keeps info for each pcc slot */ 360*4882a593Smuzhiyun struct pcc_entry { 361*4882a593Smuzhiyun u32 pcc_base; 362*4882a593Smuzhiyun u32 pcc_slot; 363*4882a593Smuzhiyun enum pcc_clksrc_type clksrc; 364*4882a593Smuzhiyun enum pcc_div_type div; 365*4882a593Smuzhiyun }; 366*4882a593Smuzhiyun 367*4882a593Smuzhiyun int pcc_clock_enable(enum pcc_clk clk, bool enable); 368*4882a593Smuzhiyun int pcc_clock_sel(enum pcc_clk clk, enum scg_clk src); 369*4882a593Smuzhiyun int pcc_clock_div_config(enum pcc_clk clk, bool frac, u8 div); 370*4882a593Smuzhiyun bool pcc_clock_is_enable(enum pcc_clk clk); 371*4882a593Smuzhiyun int pcc_clock_get_clksrc(enum pcc_clk clk, enum scg_clk *src); 372*4882a593Smuzhiyun u32 pcc_clock_get_rate(enum pcc_clk clk); 373*4882a593Smuzhiyun #endif 374