1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2018-2020, Arm Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu /* 8*91f16700Schasinglulu * ZynqMP system level PM-API functions for clock control. 9*91f16700Schasinglulu */ 10*91f16700Schasinglulu 11*91f16700Schasinglulu #ifndef PM_API_CLOCK_H 12*91f16700Schasinglulu #define PM_API_CLOCK_H 13*91f16700Schasinglulu 14*91f16700Schasinglulu #include <lib/utils_def.h> 15*91f16700Schasinglulu 16*91f16700Schasinglulu #include "pm_common.h" 17*91f16700Schasinglulu 18*91f16700Schasinglulu #define CLK_NAME_LEN (15U) 19*91f16700Schasinglulu #define MAX_PARENTS (100U) 20*91f16700Schasinglulu #define CLK_NA_PARENT -1 21*91f16700Schasinglulu #define CLK_DUMMY_PARENT -2 22*91f16700Schasinglulu 23*91f16700Schasinglulu /* Flags for parent id */ 24*91f16700Schasinglulu #define PARENT_CLK_SELF (0U) 25*91f16700Schasinglulu #define PARENT_CLK_NODE1 (1U) 26*91f16700Schasinglulu #define PARENT_CLK_NODE2 (2U) 27*91f16700Schasinglulu #define PARENT_CLK_NODE3 (3U) 28*91f16700Schasinglulu #define PARENT_CLK_NODE4 (4U) 29*91f16700Schasinglulu #define PARENT_CLK_EXTERNAL (5U) 30*91f16700Schasinglulu #define PARENT_CLK_MIO0_MIO77 (6U) 31*91f16700Schasinglulu 32*91f16700Schasinglulu #define CLK_SET_RATE_GATE BIT(0) /* must be gated across rate change */ 33*91f16700Schasinglulu #define CLK_SET_PARENT_GATE BIT(1) /* must be gated across re-parent */ 34*91f16700Schasinglulu #define CLK_SET_RATE_PARENT BIT(2) /* propagate rate change up one level */ 35*91f16700Schasinglulu #define CLK_IGNORE_UNUSED BIT(3) /* do not gate even if unused */ 36*91f16700Schasinglulu /* unused */ 37*91f16700Schasinglulu #define CLK_IS_BASIC BIT(5) /* Basic clk, can't do a to_clk_foo() */ 38*91f16700Schasinglulu #define CLK_GET_RATE_NOCACHE BIT(6) /* do not use the cached clk rate */ 39*91f16700Schasinglulu #define CLK_SET_RATE_NO_REPARENT BIT(7) /* don't re-parent on rate change */ 40*91f16700Schasinglulu #define CLK_GET_ACCURACY_NOCACHE BIT(8) /* do not use the cached clk accuracy */ 41*91f16700Schasinglulu #define CLK_RECALC_NEW_RATES BIT(9) /* recalc rates after notifications */ 42*91f16700Schasinglulu #define CLK_SET_RATE_UNGATE BIT(10) /* clock needs to run to set rate */ 43*91f16700Schasinglulu #define CLK_IS_CRITICAL BIT(11) /* do not gate, ever */ 44*91f16700Schasinglulu /* parents need enable during gate/ungate, set rate and re-parent */ 45*91f16700Schasinglulu #define CLK_OPS_PARENT_ENABLE BIT(12) 46*91f16700Schasinglulu 47*91f16700Schasinglulu #define CLK_DIVIDER_ONE_BASED BIT(0) 48*91f16700Schasinglulu #define CLK_DIVIDER_POWER_OF_TWO BIT(1) 49*91f16700Schasinglulu #define CLK_DIVIDER_ALLOW_ZERO BIT(2) 50*91f16700Schasinglulu #define CLK_DIVIDER_HIWORD_MASK BIT(3) 51*91f16700Schasinglulu #define CLK_DIVIDER_ROUND_CLOSEST BIT(4) 52*91f16700Schasinglulu #define CLK_DIVIDER_READ_ONLY BIT(5) 53*91f16700Schasinglulu #define CLK_DIVIDER_MAX_AT_ZERO BIT(6) 54*91f16700Schasinglulu #define CLK_FRAC BIT(8) 55*91f16700Schasinglulu 56*91f16700Schasinglulu #define END_OF_CLK "END_OF_CLK" 57*91f16700Schasinglulu 58*91f16700Schasinglulu //CLock Ids 59*91f16700Schasinglulu enum clock_id { 60*91f16700Schasinglulu CLK_IOPLL = (0U), 61*91f16700Schasinglulu CLK_RPLL = (1U), 62*91f16700Schasinglulu CLK_APLL = (2U), 63*91f16700Schasinglulu CLK_DPLL = (3U), 64*91f16700Schasinglulu CLK_VPLL = (4U), 65*91f16700Schasinglulu CLK_IOPLL_TO_FPD = (5U), 66*91f16700Schasinglulu CLK_RPLL_TO_FPD = (6U), 67*91f16700Schasinglulu CLK_APLL_TO_LPD = (7U), 68*91f16700Schasinglulu CLK_DPLL_TO_LPD = (8U), 69*91f16700Schasinglulu CLK_VPLL_TO_LPD = (9U), 70*91f16700Schasinglulu CLK_ACPU = (10U), 71*91f16700Schasinglulu CLK_ACPU_HALF = (11U), 72*91f16700Schasinglulu CLK_DBG_FPD = (12U), 73*91f16700Schasinglulu CLK_DBG_LPD = (13U), 74*91f16700Schasinglulu CLK_DBG_TRACE = (14U), 75*91f16700Schasinglulu CLK_DBG_TSTMP = (15U), 76*91f16700Schasinglulu CLK_DP_VIDEO_REF = (16U), 77*91f16700Schasinglulu CLK_DP_AUDIO_REF = (17U), 78*91f16700Schasinglulu CLK_DP_STC_REF = (18U), 79*91f16700Schasinglulu CLK_GDMA_REF = (19U), 80*91f16700Schasinglulu CLK_DPDMA_REF = (20U), 81*91f16700Schasinglulu CLK_DDR_REF = (21U), 82*91f16700Schasinglulu CLK_SATA_REF = (22U), 83*91f16700Schasinglulu CLK_PCIE_REF = (23U), 84*91f16700Schasinglulu CLK_GPU_REF = (24U), 85*91f16700Schasinglulu CLK_GPU_PP0_REF = (25U), 86*91f16700Schasinglulu CLK_GPU_PP1_REF = (26U), 87*91f16700Schasinglulu CLK_TOPSW_MAIN = (27U), 88*91f16700Schasinglulu CLK_TOPSW_LSBUS = (28U), 89*91f16700Schasinglulu CLK_GTGREF0_REF = (29U), 90*91f16700Schasinglulu CLK_LPD_SWITCH = (30U), 91*91f16700Schasinglulu CLK_LPD_LSBUS = (31U), 92*91f16700Schasinglulu CLK_USB0_BUS_REF = (32U), 93*91f16700Schasinglulu CLK_USB1_BUS_REF = (33U), 94*91f16700Schasinglulu CLK_USB3_DUAL_REF = (34U), 95*91f16700Schasinglulu CLK_USB0 = (35U), 96*91f16700Schasinglulu CLK_USB1 = (36U), 97*91f16700Schasinglulu CLK_CPU_R5 = (37U), 98*91f16700Schasinglulu CLK_CPU_R5_CORE = (38U), 99*91f16700Schasinglulu CLK_CSU_SPB = (39U), 100*91f16700Schasinglulu CLK_CSU_PLL = (40U), 101*91f16700Schasinglulu CLK_PCAP = (41U), 102*91f16700Schasinglulu CLK_IOU_SWITCH = (42U), 103*91f16700Schasinglulu CLK_GEM_TSU_REF = (43U), 104*91f16700Schasinglulu CLK_GEM_TSU = (44U), 105*91f16700Schasinglulu CLK_GEM0_TX = (45U), 106*91f16700Schasinglulu CLK_GEM1_TX = (46U), 107*91f16700Schasinglulu CLK_GEM2_TX = (47U), 108*91f16700Schasinglulu CLK_GEM3_TX = (48U), 109*91f16700Schasinglulu CLK_GEM0_RX = (49U), 110*91f16700Schasinglulu CLK_GEM1_RX = (50U), 111*91f16700Schasinglulu CLK_GEM2_RX = (51U), 112*91f16700Schasinglulu CLK_GEM3_RX = (52U), 113*91f16700Schasinglulu CLK_QSPI_REF = (53U), 114*91f16700Schasinglulu CLK_SDIO0_REF = (54U), 115*91f16700Schasinglulu CLK_SDIO1_REF = (55U), 116*91f16700Schasinglulu CLK_UART0_REF = (56U), 117*91f16700Schasinglulu CLK_UART1_REF = (57U), 118*91f16700Schasinglulu CLK_SPI0_REF = (58U), 119*91f16700Schasinglulu CLK_SPI1_REF = (59U), 120*91f16700Schasinglulu CLK_NAND_REF = (60U), 121*91f16700Schasinglulu CLK_I2C0_REF = (61U), 122*91f16700Schasinglulu CLK_I2C1_REF = (62U), 123*91f16700Schasinglulu CLK_CAN0_REF = (63U), 124*91f16700Schasinglulu CLK_CAN1_REF = (64U), 125*91f16700Schasinglulu CLK_CAN0 = (65U), 126*91f16700Schasinglulu CLK_CAN1 = (66U), 127*91f16700Schasinglulu CLK_DLL_REF = (67U), 128*91f16700Schasinglulu CLK_ADMA_REF = (68U), 129*91f16700Schasinglulu CLK_TIMESTAMP_REF = (69U), 130*91f16700Schasinglulu CLK_AMS_REF = (70U), 131*91f16700Schasinglulu CLK_PL0_REF = (71U), 132*91f16700Schasinglulu CLK_PL1_REF = (72U), 133*91f16700Schasinglulu CLK_PL2_REF = (73U), 134*91f16700Schasinglulu CLK_PL3_REF = (74U), 135*91f16700Schasinglulu CLK_FPD_WDT = (75U), 136*91f16700Schasinglulu CLK_IOPLL_INT = (76U), 137*91f16700Schasinglulu CLK_IOPLL_PRE_SRC = (77U), 138*91f16700Schasinglulu CLK_IOPLL_HALF = (78U), 139*91f16700Schasinglulu CLK_IOPLL_INT_MUX = (79U), 140*91f16700Schasinglulu CLK_IOPLL_POST_SRC = (80U), 141*91f16700Schasinglulu CLK_RPLL_INT = (81U), 142*91f16700Schasinglulu CLK_RPLL_PRE_SRC = (82U), 143*91f16700Schasinglulu CLK_RPLL_HALF = (83U), 144*91f16700Schasinglulu CLK_RPLL_INT_MUX = (84U), 145*91f16700Schasinglulu CLK_RPLL_POST_SRC = (85U), 146*91f16700Schasinglulu CLK_APLL_INT = (86U), 147*91f16700Schasinglulu CLK_APLL_PRE_SRC = (87U), 148*91f16700Schasinglulu CLK_APLL_HALF = (88U), 149*91f16700Schasinglulu CLK_APLL_INT_MUX = (89U), 150*91f16700Schasinglulu CLK_APLL_POST_SRC = (90U), 151*91f16700Schasinglulu CLK_DPLL_INT = (91U), 152*91f16700Schasinglulu CLK_DPLL_PRE_SRC = (92U), 153*91f16700Schasinglulu CLK_DPLL_HALF = (93U), 154*91f16700Schasinglulu CLK_DPLL_INT_MUX = (94U), 155*91f16700Schasinglulu CLK_DPLL_POST_SRC = (95U), 156*91f16700Schasinglulu CLK_VPLL_INT = (96U), 157*91f16700Schasinglulu CLK_VPLL_PRE_SRC = (97U), 158*91f16700Schasinglulu CLK_VPLL_HALF = (98U), 159*91f16700Schasinglulu CLK_VPLL_INT_MUX = (99U), 160*91f16700Schasinglulu CLK_VPLL_POST_SRC = (100U), 161*91f16700Schasinglulu CLK_CAN0_MIO = (101U), 162*91f16700Schasinglulu CLK_CAN1_MIO = (102U), 163*91f16700Schasinglulu CLK_ACPU_FULL = (103U), 164*91f16700Schasinglulu CLK_GEM0_REF = (104U), 165*91f16700Schasinglulu CLK_GEM1_REF = (105U), 166*91f16700Schasinglulu CLK_GEM2_REF = (106U), 167*91f16700Schasinglulu CLK_GEM3_REF = (107U), 168*91f16700Schasinglulu CLK_GEM0_REF_UNGATED = (108U), 169*91f16700Schasinglulu CLK_GEM1_REF_UNGATED = (109U), 170*91f16700Schasinglulu CLK_GEM2_REF_UNGATED = (110U), 171*91f16700Schasinglulu CLK_GEM3_REF_UNGATED = (111U), 172*91f16700Schasinglulu CLK_LPD_WDT = (112U), 173*91f16700Schasinglulu END_OF_OUTPUT_CLKS = (113U), 174*91f16700Schasinglulu }; 175*91f16700Schasinglulu 176*91f16700Schasinglulu #define CLK_MAX_OUTPUT_CLK END_OF_OUTPUT_CLKS 177*91f16700Schasinglulu 178*91f16700Schasinglulu //External clock ids 179*91f16700Schasinglulu enum { 180*91f16700Schasinglulu EXT_CLK_PSS_REF = END_OF_OUTPUT_CLKS, 181*91f16700Schasinglulu EXT_CLK_VIDEO = (114U), 182*91f16700Schasinglulu EXT_CLK_PSS_ALT_REF = (115U), 183*91f16700Schasinglulu EXT_CLK_AUX_REF = (116U), 184*91f16700Schasinglulu EXT_CLK_GT_CRX_REF = (117U), 185*91f16700Schasinglulu EXT_CLK_SWDT0 = (118U), 186*91f16700Schasinglulu EXT_CLK_SWDT1 = (119U), 187*91f16700Schasinglulu EXT_CLK_GEM0_TX_EMIO = (120U), 188*91f16700Schasinglulu EXT_CLK_GEM1_TX_EMIO = (121U), 189*91f16700Schasinglulu EXT_CLK_GEM2_TX_EMIO = (122U), 190*91f16700Schasinglulu EXT_CLK_GEM3_TX_EMIO = (123U), 191*91f16700Schasinglulu EXT_CLK_GEM0_RX_EMIO = (124U), 192*91f16700Schasinglulu EXT_CLK_GEM1_RX_EMIO = (125U), 193*91f16700Schasinglulu EXT_CLK_GEM2_RX_EMIO = (126U), 194*91f16700Schasinglulu EXT_CLK_GEM3_RX_EMIO = (127U), 195*91f16700Schasinglulu EXT_CLK_MIO50_OR_MIO51 = (128U), 196*91f16700Schasinglulu EXT_CLK_MIO0 = (129U), 197*91f16700Schasinglulu EXT_CLK_MIO1 = (130U), 198*91f16700Schasinglulu EXT_CLK_MIO2 = (131U), 199*91f16700Schasinglulu EXT_CLK_MIO3 = (132U), 200*91f16700Schasinglulu EXT_CLK_MIO4 = (133U), 201*91f16700Schasinglulu EXT_CLK_MIO5 = (134U), 202*91f16700Schasinglulu EXT_CLK_MIO6 = (135U), 203*91f16700Schasinglulu EXT_CLK_MIO7 = (136U), 204*91f16700Schasinglulu EXT_CLK_MIO8 = (137U), 205*91f16700Schasinglulu EXT_CLK_MIO9 = (138U), 206*91f16700Schasinglulu EXT_CLK_MIO10 = (139U), 207*91f16700Schasinglulu EXT_CLK_MIO11 = (140U), 208*91f16700Schasinglulu EXT_CLK_MIO12 = (141U), 209*91f16700Schasinglulu EXT_CLK_MIO13 = (142U), 210*91f16700Schasinglulu EXT_CLK_MIO14 = (143U), 211*91f16700Schasinglulu EXT_CLK_MIO15 = (144U), 212*91f16700Schasinglulu EXT_CLK_MIO16 = (145U), 213*91f16700Schasinglulu EXT_CLK_MIO17 = (146U), 214*91f16700Schasinglulu EXT_CLK_MIO18 = (147U), 215*91f16700Schasinglulu EXT_CLK_MIO19 = (148U), 216*91f16700Schasinglulu EXT_CLK_MIO20 = (149U), 217*91f16700Schasinglulu EXT_CLK_MIO21 = (150U), 218*91f16700Schasinglulu EXT_CLK_MIO22 = (151U), 219*91f16700Schasinglulu EXT_CLK_MIO23 = (152U), 220*91f16700Schasinglulu EXT_CLK_MIO24 = (153U), 221*91f16700Schasinglulu EXT_CLK_MIO25 = (154U), 222*91f16700Schasinglulu EXT_CLK_MIO26 = (155U), 223*91f16700Schasinglulu EXT_CLK_MIO27 = (156U), 224*91f16700Schasinglulu EXT_CLK_MIO28 = (157U), 225*91f16700Schasinglulu EXT_CLK_MIO29 = (158U), 226*91f16700Schasinglulu EXT_CLK_MIO30 = (159U), 227*91f16700Schasinglulu EXT_CLK_MIO31 = (160U), 228*91f16700Schasinglulu EXT_CLK_MIO32 = (161U), 229*91f16700Schasinglulu EXT_CLK_MIO33 = (162U), 230*91f16700Schasinglulu EXT_CLK_MIO34 = (163U), 231*91f16700Schasinglulu EXT_CLK_MIO35 = (164U), 232*91f16700Schasinglulu EXT_CLK_MIO36 = (165U), 233*91f16700Schasinglulu EXT_CLK_MIO37 = (166U), 234*91f16700Schasinglulu EXT_CLK_MIO38 = (167U), 235*91f16700Schasinglulu EXT_CLK_MIO39 = (168U), 236*91f16700Schasinglulu EXT_CLK_MIO40 = (169U), 237*91f16700Schasinglulu EXT_CLK_MIO41 = (170U), 238*91f16700Schasinglulu EXT_CLK_MIO42 = (171U), 239*91f16700Schasinglulu EXT_CLK_MIO43 = (172U), 240*91f16700Schasinglulu EXT_CLK_MIO44 = (173U), 241*91f16700Schasinglulu EXT_CLK_MIO45 = (174U), 242*91f16700Schasinglulu EXT_CLK_MIO46 = (175U), 243*91f16700Schasinglulu EXT_CLK_MIO47 = (176U), 244*91f16700Schasinglulu EXT_CLK_MIO48 = (177U), 245*91f16700Schasinglulu EXT_CLK_MIO49 = (178U), 246*91f16700Schasinglulu EXT_CLK_MIO50 = (179U), 247*91f16700Schasinglulu EXT_CLK_MIO51 = (180U), 248*91f16700Schasinglulu EXT_CLK_MIO52 = (181U), 249*91f16700Schasinglulu EXT_CLK_MIO53 = (182U), 250*91f16700Schasinglulu EXT_CLK_MIO54 = (183U), 251*91f16700Schasinglulu EXT_CLK_MIO55 = (184U), 252*91f16700Schasinglulu EXT_CLK_MIO56 = (185U), 253*91f16700Schasinglulu EXT_CLK_MIO57 = (186U), 254*91f16700Schasinglulu EXT_CLK_MIO58 = (187U), 255*91f16700Schasinglulu EXT_CLK_MIO59 = (188U), 256*91f16700Schasinglulu EXT_CLK_MIO60 = (189U), 257*91f16700Schasinglulu EXT_CLK_MIO61 = (190U), 258*91f16700Schasinglulu EXT_CLK_MIO62 = (191U), 259*91f16700Schasinglulu EXT_CLK_MIO63 = (192U), 260*91f16700Schasinglulu EXT_CLK_MIO64 = (193U), 261*91f16700Schasinglulu EXT_CLK_MIO65 = (194U), 262*91f16700Schasinglulu EXT_CLK_MIO66 = (195U), 263*91f16700Schasinglulu EXT_CLK_MIO67 = (196U), 264*91f16700Schasinglulu EXT_CLK_MIO68 = (197U), 265*91f16700Schasinglulu EXT_CLK_MIO69 = (198U), 266*91f16700Schasinglulu EXT_CLK_MIO70 = (199U), 267*91f16700Schasinglulu EXT_CLK_MIO71 = (200U), 268*91f16700Schasinglulu EXT_CLK_MIO72 = (201U), 269*91f16700Schasinglulu EXT_CLK_MIO73 = (202U), 270*91f16700Schasinglulu EXT_CLK_MIO74 = (203U), 271*91f16700Schasinglulu EXT_CLK_MIO75 = (204U), 272*91f16700Schasinglulu EXT_CLK_MIO76 = (205U), 273*91f16700Schasinglulu EXT_CLK_MIO77 = (206U), 274*91f16700Schasinglulu END_OF_CLKS = (207U), 275*91f16700Schasinglulu }; 276*91f16700Schasinglulu 277*91f16700Schasinglulu #define CLK_MAX END_OF_CLKS 278*91f16700Schasinglulu 279*91f16700Schasinglulu //CLock types 280*91f16700Schasinglulu #define CLK_TYPE_OUTPUT 0U 281*91f16700Schasinglulu #define CLK_TYPE_EXTERNAL 1U 282*91f16700Schasinglulu 283*91f16700Schasinglulu //Topology types 284*91f16700Schasinglulu #define TYPE_INVALID 0U 285*91f16700Schasinglulu #define TYPE_MUX 1U 286*91f16700Schasinglulu #define TYPE_PLL 2U 287*91f16700Schasinglulu #define TYPE_FIXEDFACTOR 3U 288*91f16700Schasinglulu #define TYPE_DIV1 4U 289*91f16700Schasinglulu #define TYPE_DIV2 5U 290*91f16700Schasinglulu #define TYPE_GATE 6U 291*91f16700Schasinglulu 292*91f16700Schasinglulu struct pm_pll; 293*91f16700Schasinglulu struct pm_pll *pm_clock_get_pll(enum clock_id clock_id); 294*91f16700Schasinglulu struct pm_pll *pm_clock_get_pll_by_related_clk(enum clock_id clock_id); 295*91f16700Schasinglulu uint8_t pm_clock_has_div(uint32_t clock_id, enum pm_clock_div_id div_id); 296*91f16700Schasinglulu 297*91f16700Schasinglulu void pm_api_clock_get_name(uint32_t clock_id, char *name); 298*91f16700Schasinglulu enum pm_ret_status pm_api_clock_get_num_clocks(uint32_t *nclocks); 299*91f16700Schasinglulu enum pm_ret_status pm_api_clock_get_topology(uint32_t clock_id, 300*91f16700Schasinglulu uint32_t index, 301*91f16700Schasinglulu uint32_t *topology); 302*91f16700Schasinglulu enum pm_ret_status pm_api_clock_get_fixedfactor_params(uint32_t clock_id, 303*91f16700Schasinglulu uint32_t *mul, 304*91f16700Schasinglulu uint32_t *div); 305*91f16700Schasinglulu enum pm_ret_status pm_api_clock_get_parents(uint32_t clock_id, 306*91f16700Schasinglulu uint32_t index, 307*91f16700Schasinglulu uint32_t *parents); 308*91f16700Schasinglulu enum pm_ret_status pm_api_clock_get_attributes(uint32_t clock_id, 309*91f16700Schasinglulu uint32_t *attr); 310*91f16700Schasinglulu enum pm_ret_status pm_api_clock_get_max_divisor(enum clock_id clock_id, 311*91f16700Schasinglulu uint8_t div_type, 312*91f16700Schasinglulu uint32_t *max_div); 313*91f16700Schasinglulu 314*91f16700Schasinglulu enum pm_ret_status pm_clock_get_pll_node_id(enum clock_id clock_id, 315*91f16700Schasinglulu enum pm_node_id *node_id); 316*91f16700Schasinglulu enum pm_ret_status pm_clock_id_is_valid(uint32_t clock_id); 317*91f16700Schasinglulu 318*91f16700Schasinglulu enum pm_ret_status pm_clock_pll_enable(struct pm_pll *pll); 319*91f16700Schasinglulu enum pm_ret_status pm_clock_pll_disable(struct pm_pll *pll); 320*91f16700Schasinglulu enum pm_ret_status pm_clock_pll_get_state(struct pm_pll *pll, 321*91f16700Schasinglulu uint32_t *state); 322*91f16700Schasinglulu enum pm_ret_status pm_clock_pll_set_parent(struct pm_pll *pll, 323*91f16700Schasinglulu enum clock_id clock_id, 324*91f16700Schasinglulu uint32_t parent_index); 325*91f16700Schasinglulu enum pm_ret_status pm_clock_pll_get_parent(struct pm_pll *pll, 326*91f16700Schasinglulu enum clock_id clock_id, 327*91f16700Schasinglulu uint32_t *parent_index); 328*91f16700Schasinglulu enum pm_ret_status pm_clock_set_pll_mode(enum clock_id clock_id, 329*91f16700Schasinglulu uint32_t mode); 330*91f16700Schasinglulu enum pm_ret_status pm_clock_get_pll_mode(enum clock_id clock_id, 331*91f16700Schasinglulu uint32_t *mode); 332*91f16700Schasinglulu 333*91f16700Schasinglulu #endif /* PM_API_CLOCK_H */ 334