1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright (c) 2025, Linaro Limited 4 * Copyright (c) 2026, Qualcomm Technologies, Inc. and/or its subsidiaries. 5 */ 6 7 #ifndef _CLK_QCOM_H_ 8 #define _CLK_QCOM_H_ 9 10 #include <stdint.h> 11 #include <tee_api_types.h> 12 13 #define REG_POLL_TIMEOUT(_addr, _timeout_us, _delay_us, _retp, _match) \ 14 do { \ 15 uint32_t __val; \ 16 int __rc; \ 17 \ 18 __rc = IO_READ32_POLL_TIMEOUT(_addr, __val, \ 19 (_match)(__val), \ 20 _delay_us, _timeout_us); \ 21 *(_retp) = __rc ? -1 : 0; \ 22 } while (0) 23 24 enum qcom_clk_group { 25 QCOM_CLKS_WPSS, 26 QCOM_CLKS_TURING, 27 QCOM_CLKS_LPASS, 28 QCOM_CLKS_MAX, 29 }; 30 31 TEE_Result qcom_clock_enable(enum qcom_clk_group group); 32 TEE_Result qcom_clock_enable_cbc(vaddr_t cbcr); 33 TEE_Result qcom_clock_enable_pas(enum qcom_clk_group group); 34 35 #endif /* _CLK_QCOM_H_ */ 36