mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00

This callback will be used to set a clock's rate if the underlying clock driver supports this option. The function's last parameter is an output parameter, storing the actual frequency set by the clock driver, as it may not precisely match the requested rate in some cases. Change-Id: I6a399bf6f64407d5fbff36407561e4bf18104cf1 Signed-off-by: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
33 lines
926 B
C
33 lines
926 B
C
/*
|
|
* Copyright (c) 2021, STMicroelectronics - All Rights Reserved
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef CLK_H
|
|
#define CLK_H
|
|
|
|
#include <stdbool.h>
|
|
|
|
struct clk_ops {
|
|
int (*enable)(unsigned long id);
|
|
void (*disable)(unsigned long id);
|
|
unsigned long (*get_rate)(unsigned long id);
|
|
int (*set_rate)(unsigned long id, unsigned long rate,
|
|
unsigned long *orate);
|
|
int (*get_parent)(unsigned long id);
|
|
int (*set_parent)(unsigned long id, unsigned long parent_id);
|
|
bool (*is_enabled)(unsigned long id);
|
|
};
|
|
|
|
int clk_enable(unsigned long id);
|
|
void clk_disable(unsigned long id);
|
|
unsigned long clk_get_rate(unsigned long id);
|
|
int clk_set_rate(unsigned long id, unsigned long rate, unsigned long *orate);
|
|
bool clk_is_enabled(unsigned long id);
|
|
int clk_get_parent(unsigned long id);
|
|
int clk_set_parent(unsigned long id, unsigned long parent_id);
|
|
|
|
void clk_register(const struct clk_ops *ops);
|
|
|
|
#endif /* CLK_H */
|