1 /*
2  * Copyright (c) 2015 - 2020, Broadcom
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef DMU_H
8 #define DMU_H
9 
10 /* Clock field should be 2 bits only */
11 #define CLKCONFIG_MASK 0x3
12 
13 /* argument */
14 struct DmuBlockEnable {
15 	uint32_t sotp:1;
16 	uint32_t pka_rng:1;
17 	uint32_t crypto:1;
18 	uint32_t spl:1;
19 	uint32_t cdru_vgm:1;
20 	uint32_t apbs_s0_idm:1;
21 	uint32_t smau_s0_idm:1;
22 };
23 
24 /* prototype */
25 uint32_t bcm_dmu_block_enable(struct DmuBlockEnable dbe);
26 uint32_t bcm_dmu_block_disable(struct DmuBlockEnable dbe);
27 uint32_t bcm_set_ihost_pll_freq(uint32_t cluster_num, int ihost_pll_freq_sel);
28 uint32_t bcm_get_ihost_pll_freq(uint32_t cluster_num);
29 
30 #define PLL_FREQ_BYPASS 0x0
31 #define PLL_FREQ_FULL  0x1
32 #define PLL_FREQ_HALF  0x2
33 #define PLL_FREQ_QRTR  0x3
34 
35 #endif
36