17839a050SYann Gautier /* 27839a050SYann Gautier * Copyright (c) 2018, STMicroelectronics - All Rights Reserved 37839a050SYann Gautier * 47839a050SYann Gautier * SPDX-License-Identifier: BSD-3-Clause 57839a050SYann Gautier */ 67839a050SYann Gautier 7*c3cf06f1SAntonio Nino Diaz #ifndef STM32MP1_CLK_H 8*c3cf06f1SAntonio Nino Diaz #define STM32MP1_CLK_H 97839a050SYann Gautier 107839a050SYann Gautier #include <arch_helpers.h> 117839a050SYann Gautier #include <stdbool.h> 127839a050SYann Gautier 137839a050SYann Gautier int stm32mp1_clk_probe(void); 147839a050SYann Gautier int stm32mp1_clk_init(void); 157839a050SYann Gautier bool stm32mp1_clk_is_enabled(unsigned long id); 167839a050SYann Gautier int stm32mp1_clk_enable(unsigned long id); 177839a050SYann Gautier int stm32mp1_clk_disable(unsigned long id); 187839a050SYann Gautier unsigned long stm32mp1_clk_get_rate(unsigned long id); 197839a050SYann Gautier void stm32mp1_stgen_increment(unsigned long long offset_in_ms); 207839a050SYann Gautier 217839a050SYann Gautier static inline uint32_t get_timer(uint32_t base) 227839a050SYann Gautier { 237839a050SYann Gautier if (base == 0U) { 247839a050SYann Gautier return (uint32_t)(~read_cntpct_el0()); 257839a050SYann Gautier } 267839a050SYann Gautier 277839a050SYann Gautier return base - (uint32_t)(~read_cntpct_el0()); 287839a050SYann Gautier } 297839a050SYann Gautier 30*c3cf06f1SAntonio Nino Diaz #endif /* STM32MP1_CLK_H */ 31