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