drivers: clock control for stm32h5 driver implements control_get_status
Add the control_get_status API function to the stm32h5 clock_control driver Signed-off-by: Francois Ramu <francois.ramu@st.com>
This commit is contained in:
parent
a63683aa95
commit
c33d93d478
@ -349,10 +349,36 @@ static int stm32_clock_control_get_subsys_rate(const struct device *dev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static enum clock_control_status stm32_clock_control_get_status(const struct device *dev,
|
||||
clock_control_subsys_t sub_system)
|
||||
{
|
||||
struct stm32_pclken *pclken = (struct stm32_pclken *)sub_system;
|
||||
|
||||
ARG_UNUSED(dev);
|
||||
|
||||
if (IN_RANGE(pclken->bus, STM32_PERIPH_BUS_MIN, STM32_PERIPH_BUS_MAX) == true) {
|
||||
/* Gated clocks */
|
||||
if ((sys_read32(DT_REG_ADDR(DT_NODELABEL(rcc)) + pclken->bus) & pclken->enr)
|
||||
== pclken->enr) {
|
||||
return CLOCK_CONTROL_STATUS_ON;
|
||||
} else {
|
||||
return CLOCK_CONTROL_STATUS_OFF;
|
||||
}
|
||||
} else {
|
||||
/* Domain clock sources */
|
||||
if (enabled_clock(pclken->bus) == 0) {
|
||||
return CLOCK_CONTROL_STATUS_ON;
|
||||
} else {
|
||||
return CLOCK_CONTROL_STATUS_OFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static DEVICE_API(clock_control, stm32_clock_control_api) = {
|
||||
.on = stm32_clock_control_on,
|
||||
.off = stm32_clock_control_off,
|
||||
.get_rate = stm32_clock_control_get_subsys_rate,
|
||||
.get_status = stm32_clock_control_get_status,
|
||||
.configure = stm32_clock_control_configure,
|
||||
};
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user