Browse Source

drivers: watchdog: check if clock device is ready before accessing

Add check for device_is_ready() before accessing clock control devices.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
pull/48735/head
Henrik Brix Andersen 3 years ago committed by Carles Cufí
parent
commit
b5a79fa4ad
  1. 5
      drivers/watchdog/wdt_esp32.c
  2. 5
      drivers/watchdog/wdt_mcux_wdog.c
  3. 5
      drivers/watchdog/wdt_mcux_wdog32.c
  4. 5
      drivers/watchdog/wdt_wwdg_stm32.c

5
drivers/watchdog/wdt_esp32.c

@ -153,6 +153,11 @@ static int wdt_esp32_init(const struct device *dev) @@ -153,6 +153,11 @@ static int wdt_esp32_init(const struct device *dev)
const struct wdt_esp32_config *const config = dev->config;
struct wdt_esp32_data *data = dev->data;
if (!device_is_ready(config->clock_dev)) {
LOG_ERR("clock control device not ready");
return -ENODEV;
}
clock_control_on(config->clock_dev, config->clock_subsys);
wdt_hal_init(&data->hal, config->wdt_inst, MWDT_TICK_PRESCALER, true);

5
drivers/watchdog/wdt_mcux_wdog.c

@ -78,6 +78,11 @@ static int mcux_wdog_install_timeout(const struct device *dev, @@ -78,6 +78,11 @@ static int mcux_wdog_install_timeout(const struct device *dev,
return -ENOMEM;
}
if (!device_is_ready(config->clock_dev)) {
LOG_ERR("clock control device not ready");
return -ENODEV;
}
if (clock_control_get_rate(config->clock_dev, config->clock_subsys,
&clock_freq)) {
return -EINVAL;

5
drivers/watchdog/wdt_mcux_wdog32.c

@ -93,6 +93,11 @@ static int mcux_wdog32_install_timeout(const struct device *dev, @@ -93,6 +93,11 @@ static int mcux_wdog32_install_timeout(const struct device *dev,
#if DT_NODE_HAS_PROP(DT_INST_PHANDLE(0, clocks), clock_frequency)
clock_freq = config->clock_frequency;
#else /* !DT_NODE_HAS_PROP(DT_INST_PHANDLE(0, clocks), clock_frequency) */
if (!device_is_ready(config->clock_dev)) {
LOG_ERR("clock control device not ready");
return -ENODEV;
}
if (clock_control_get_rate(config->clock_dev, config->clock_subsys,
&clock_freq)) {
return -EINVAL;

5
drivers/watchdog/wdt_wwdg_stm32.c

@ -282,6 +282,11 @@ static int wwdg_stm32_init(const struct device *dev) @@ -282,6 +282,11 @@ static int wwdg_stm32_init(const struct device *dev)
wwdg_stm32_irq_config(dev);
if (!device_is_ready(clk)) {
LOG_ERR("clock control device not ready");
return -ENODEV;
}
return clock_control_on(clk, (clock_control_subsys_t *) &cfg->pclken);
}

Loading…
Cancel
Save