Skip to content

Commit 4740527

Browse files
committed
drivers: clock_control: sf32lb: add get_rate support
Add get_rate support for sf32lb platform Signed-off-by: Qingsong Gou <[email protected]>
1 parent 9dfac5a commit 4740527

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

drivers/clock_control/clock_control_sf32lb_rcc.c

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,31 @@ static int clock_control_sf32lb_rcc_off(const struct device *dev, clock_control_
6868
return 0;
6969
}
7070

71+
int clock_control_sf32lb_rcc_get_rate(const struct device *dev, clock_control_subsys_t sys,
72+
uint32_t *rate)
73+
{
74+
uint16_t id = *(uint16_t *)sys;
75+
int ret = 0;
76+
77+
switch (id) {
78+
case SF32LB52X_CLOCK_I2C1:
79+
case SF32LB52X_CLOCK_I2C2:
80+
case SF32LB52X_CLOCK_I2C3:
81+
case SF32LB52X_CLOCK_I2C4:
82+
case SF32LB52X_CLOCK_SPI1:
83+
case SF32LB52X_CLOCK_SPI2:
84+
case SF32LB52X_CLOCK_USART2:
85+
case SF32LB52X_CLOCK_USART3:
86+
*rate = DT_FREQ_M(48); /* clk_peri_hpsys always 48MHZ */
87+
break;
88+
89+
default:
90+
ret = -ENOTSUP; /* TODO: others are not support yet */
91+
break;
92+
93+
return ret;
94+
}
95+
7196
static enum clock_control_status clock_control_sf32lb_rcc_get_status(const struct device *dev,
7297
clock_control_subsys_t sys)
7398
{
@@ -85,6 +110,7 @@ static enum clock_control_status clock_control_sf32lb_rcc_get_status(const struc
85110
static DEVICE_API(clock_control, clock_control_sf32lb_rcc_api) = {
86111
.on = clock_control_sf32lb_rcc_on,
87112
.off = clock_control_sf32lb_rcc_off,
113+
.get_rate = clock_control_sf32lb_rcc_get_rate,
88114
.get_status = clock_control_sf32lb_rcc_get_status,
89115
};
90116

0 commit comments

Comments
 (0)