/kernel/linux/linux-6.6/drivers/watchdog/ |
H A D | starfive-wdt.c | 146 static int starfive_wdt_enable_clock(struct starfive_wdt *wdt) in starfive_wdt_enable_clock() argument 150 ret = clk_prepare_enable(wdt->apb_clk); in starfive_wdt_enable_clock() 152 return dev_err_probe(wdt->wdd.parent, ret, "failed to enable apb clock\n"); in starfive_wdt_enable_clock() 154 ret = clk_prepare_enable(wdt->core_clk); in starfive_wdt_enable_clock() 156 return dev_err_probe(wdt->wdd.parent, ret, "failed to enable core clock\n"); in starfive_wdt_enable_clock() 161 static void starfive_wdt_disable_clock(struct starfive_wdt *wdt) in starfive_wdt_disable_clock() argument 163 clk_disable_unprepare(wdt->core_clk); in starfive_wdt_disable_clock() 164 clk_disable_unprepare(wdt->apb_clk); in starfive_wdt_disable_clock() 167 static inline int starfive_wdt_get_clock(struct starfive_wdt *wdt) in starfive_wdt_get_clock() argument 169 struct device *dev = wdt in starfive_wdt_get_clock() 198 starfive_wdt_ticks_to_sec(struct starfive_wdt *wdt, u32 ticks) starfive_wdt_ticks_to_sec() argument 219 starfive_wdt_enable_reset(struct starfive_wdt *wdt) starfive_wdt_enable_reset() argument 229 starfive_wdt_raise_irq_status(struct starfive_wdt *wdt) starfive_wdt_raise_irq_status() argument 235 starfive_wdt_wait_int_free(struct starfive_wdt *wdt) starfive_wdt_wait_int_free() argument 245 starfive_wdt_int_clr(struct starfive_wdt *wdt) starfive_wdt_int_clr() argument 260 starfive_wdt_set_count(struct starfive_wdt *wdt, u32 val) starfive_wdt_set_count() argument 265 starfive_wdt_get_count(struct starfive_wdt *wdt) starfive_wdt_get_count() argument 271 starfive_wdt_enable(struct starfive_wdt *wdt) starfive_wdt_enable() argument 281 starfive_wdt_disable(struct starfive_wdt *wdt) starfive_wdt_disable() argument 290 starfive_wdt_set_reload_count(struct starfive_wdt *wdt, u32 count) starfive_wdt_set_reload_count() argument 299 starfive_wdt_max_timeout(struct starfive_wdt *wdt) starfive_wdt_max_timeout() argument 309 struct starfive_wdt *wdt = watchdog_get_drvdata(wdd); starfive_wdt_get_timeleft() local 325 struct starfive_wdt *wdt = watchdog_get_drvdata(wdd); starfive_wdt_keepalive() local 341 starfive_wdt_start(struct starfive_wdt *wdt) starfive_wdt_start() argument 362 starfive_wdt_stop(struct starfive_wdt *wdt) starfive_wdt_stop() argument 371 struct starfive_wdt *wdt = watchdog_get_drvdata(wdd); starfive_wdt_pm_start() local 382 struct starfive_wdt *wdt = watchdog_get_drvdata(wdd); starfive_wdt_pm_stop() local 391 struct starfive_wdt *wdt = watchdog_get_drvdata(wdd); starfive_wdt_set_timeout() local 428 struct starfive_wdt *wdt; starfive_wdt_probe() local 516 struct starfive_wdt *wdt = platform_get_drvdata(pdev); starfive_wdt_remove() local 532 struct starfive_wdt *wdt = platform_get_drvdata(pdev); starfive_wdt_shutdown() local 539 struct starfive_wdt *wdt = dev_get_drvdata(dev); starfive_wdt_suspend() local 552 struct starfive_wdt *wdt = dev_get_drvdata(dev); starfive_wdt_resume() local 569 struct starfive_wdt *wdt = dev_get_drvdata(dev); starfive_wdt_runtime_suspend() local 578 struct starfive_wdt *wdt = dev_get_drvdata(dev); starfive_wdt_runtime_resume() local [all...] |
H A D | at91sam9_wdt.c | 40 #define wdt_read(wdt, field) \ 41 readl_relaxed((wdt)->base + (field)) 43 writel_relaxed((val), (wdt)->base + (field)) 98 struct at91wdt *wdt = (struct at91wdt *)dev_id; in wdt_interrupt() local 100 if (wdt_read(wdt, AT91_WDT_SR)) { in wdt_interrupt() 112 static inline void at91_wdt_reset(struct at91wdt *wdt) in at91_wdt_reset() argument 114 wdt_write(wdt, AT91_WDT_CR, AT91_WDT_KEY | AT91_WDT_WDRSTT); in at91_wdt_reset() 122 struct at91wdt *wdt = from_timer(wdt, t, timer); in at91_ping() local 123 if (time_before(jiffies, wdt in at91_ping() 134 struct at91wdt *wdt = to_wdt(wdd); at91_wdt_start() local 152 at91_wdt_init(struct platform_device *pdev, struct at91wdt *wdt) at91_wdt_init() argument 265 of_at91wdt_init(struct device_node *np, struct at91wdt *wdt) of_at91wdt_init() argument 321 of_at91wdt_init(struct device_node *np, struct at91wdt *wdt) of_at91wdt_init() argument 330 struct at91wdt *wdt; at91wdt_probe() local 386 struct at91wdt *wdt = platform_get_drvdata(pdev); at91wdt_remove() local [all...] |
H A D | sama5d4_wdt.c | 51 #define wdt_enabled (!(wdt->mr & AT91_WDT_WDDIS)) 53 #define wdt_read(wdt, field) \ 54 readl_relaxed((wdt)->reg_base + (field)) 59 static void wdt_write(struct sama5d4_wdt *wdt, u32 field, u32 val) in wdt_write() argument 66 while (time_before(jiffies, wdt->last_ping + WDT_DELAY)) in wdt_write() 68 writel_relaxed(val, wdt->reg_base + field); in wdt_write() 69 wdt->last_ping = jiffies; in wdt_write() 72 static void wdt_write_nosleep(struct sama5d4_wdt *wdt, u32 field, u32 val) in wdt_write_nosleep() argument 74 if (time_before(jiffies, wdt->last_ping + WDT_DELAY)) in wdt_write_nosleep() 76 writel_relaxed(val, wdt in wdt_write_nosleep() 82 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); sama5d4_wdt_start() local 97 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); sama5d4_wdt_stop() local 112 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); sama5d4_wdt_ping() local 122 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); sama5d4_wdt_set_timeout() local 166 struct sama5d4_wdt *wdt = platform_get_drvdata(dev_id); sama5d4_wdt_irq_handler() local 183 of_sama5d4_wdt_init(struct device_node *np, struct sama5d4_wdt *wdt) of_sama5d4_wdt_init() argument 205 sama5d4_wdt_init(struct sama5d4_wdt *wdt) sama5d4_wdt_init() argument 254 struct sama5d4_wdt *wdt; sama5d4_wdt_probe() local 350 struct sama5d4_wdt *wdt = dev_get_drvdata(dev); sama5d4_wdt_suspend_late() local 360 struct sama5d4_wdt *wdt = dev_get_drvdata(dev); sama5d4_wdt_resume_early() local [all...] |
H A D | sprd_wdt.c | 84 struct sprd_wdt *wdt = (struct sprd_wdt *)dev_id; in sprd_wdt_isr() local 86 sprd_wdt_unlock(wdt->base); in sprd_wdt_isr() 87 writel_relaxed(SPRD_WDT_INT_CLEAR_BIT, wdt->base + SPRD_WDT_INT_CLR); in sprd_wdt_isr() 88 sprd_wdt_lock(wdt->base); in sprd_wdt_isr() 89 watchdog_notify_pretimeout(&wdt->wdd); in sprd_wdt_isr() 93 static u32 sprd_wdt_get_cnt_value(struct sprd_wdt *wdt) in sprd_wdt_get_cnt_value() argument 97 val = readl_relaxed(wdt->base + SPRD_WDT_CNT_HIGH) << in sprd_wdt_get_cnt_value() 99 val |= readl_relaxed(wdt->base + SPRD_WDT_CNT_LOW) & in sprd_wdt_get_cnt_value() 105 static int sprd_wdt_load_value(struct sprd_wdt *wdt, u32 timeout, in sprd_wdt_load_value() argument 119 val = readl_relaxed(wdt in sprd_wdt_load_value() 144 sprd_wdt_enable(struct sprd_wdt *wdt) sprd_wdt_enable() argument 168 struct sprd_wdt *wdt = _data; sprd_wdt_disable() local 180 struct sprd_wdt *wdt = to_sprd_wdt(wdd); sprd_wdt_start() local 200 struct sprd_wdt *wdt = to_sprd_wdt(wdd); sprd_wdt_stop() local 215 struct sprd_wdt *wdt = to_sprd_wdt(wdd); sprd_wdt_set_timeout() local 228 struct sprd_wdt *wdt = to_sprd_wdt(wdd); sprd_wdt_set_pretimeout() local 240 struct sprd_wdt *wdt = to_sprd_wdt(wdd); sprd_wdt_get_timeleft() local 267 struct sprd_wdt *wdt; sprd_wdt_probe() local 334 struct sprd_wdt *wdt = dev_get_drvdata(dev); sprd_wdt_pm_suspend() local 345 struct sprd_wdt *wdt = dev_get_drvdata(dev); sprd_wdt_pm_resume() local [all...] |
H A D | sp805_wdt.c | 3 * drivers/char/watchdog/sp805-wdt.c 36 #define MODULE_NAME "sp805-wdt" 57 * struct sp805_wdt: sp805 wdt device structure 60 * @base: base address of wdt 61 * @clk: (optional) clock structure of wdt 63 * @adev: amba device structure of wdt 64 * @status: current status of wdt 82 /* returns true if wdt is running; otherwise returns false */ 85 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); in wdt_is_running() local 86 u32 wdtcontrol = readl_relaxed(wdt in wdt_is_running() 94 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); wdt_setload() local 122 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); wdt_timeleft() local 139 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); wdt_restart() local 154 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); wdt_config() local 199 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); wdt_disable() local 234 struct sp805_wdt *wdt; sp805_wdt_probe() local 311 struct sp805_wdt *wdt = amba_get_drvdata(adev); sp805_wdt_remove() local 319 struct sp805_wdt *wdt = dev_get_drvdata(dev); sp805_wdt_suspend() local 329 struct sp805_wdt *wdt = dev_get_drvdata(dev); sp805_wdt_resume() local [all...] |
H A D | mei_wdt.c | 161 * @wdt: mei watchdog device 166 static int mei_wdt_ping(struct mei_wdt *wdt) in mei_wdt_ping() argument 177 req.timeout = wdt->timeout; in mei_wdt_ping() 179 ret = mei_cldev_send(wdt->cldev, (u8 *)&req, req_len); in mei_wdt_ping() 189 * @wdt: mei watchdog device 194 static int mei_wdt_stop(struct mei_wdt *wdt) in mei_wdt_stop() argument 206 ret = mei_cldev_send(wdt->cldev, (u8 *)&req, req_len); in mei_wdt_stop() 222 struct mei_wdt *wdt = watchdog_get_drvdata(wdd); in mei_wdt_ops_start() local 224 wdt->state = MEI_WDT_START; in mei_wdt_ops_start() 225 wdd->timeout = wdt in mei_wdt_ops_start() 238 struct mei_wdt *wdt = watchdog_get_drvdata(wdd); mei_wdt_ops_stop() local 264 struct mei_wdt *wdt = watchdog_get_drvdata(wdd); mei_wdt_ops_ping() local 296 struct mei_wdt *wdt = watchdog_get_drvdata(wdd); mei_wdt_ops_set_timeout() local 329 __mei_wdt_is_registered(struct mei_wdt *wdt) __mei_wdt_is_registered() argument 339 mei_wdt_unregister(struct mei_wdt *wdt) mei_wdt_unregister() argument 359 mei_wdt_register(struct mei_wdt *wdt) mei_wdt_register() argument 400 struct mei_wdt *wdt = container_of(work, struct mei_wdt, unregister); mei_wdt_unregister_work() local 412 struct mei_wdt *wdt = mei_cldev_get_drvdata(cldev); mei_wdt_rx() local 484 struct mei_wdt *wdt = mei_cldev_get_drvdata(cldev); mei_wdt_notif() local 497 struct mei_wdt *wdt = file->private_data; mei_dbgfs_read_activation() local 519 struct mei_wdt *wdt = file->private_data; mei_dbgfs_read_state() local 535 dbgfs_unregister(struct mei_wdt *wdt) dbgfs_unregister() argument 541 dbgfs_register(struct mei_wdt *wdt) dbgfs_register() argument 556 dbgfs_unregister(struct mei_wdt *wdt) dbgfs_unregister() argument 557 dbgfs_register(struct mei_wdt *wdt) dbgfs_register() argument 563 struct mei_wdt *wdt; mei_wdt_probe() local 625 struct mei_wdt *wdt = mei_cldev_get_drvdata(cldev); mei_wdt_remove() local [all...] |
H A D | mlx_wdt.c | 57 static void mlxreg_wdt_check_card_reset(struct mlxreg_wdt *wdt) in mlxreg_wdt_check_card_reset() argument 63 if (wdt->reset_idx == -EINVAL) in mlxreg_wdt_check_card_reset() 66 if (!(wdt->wdd.info->options & WDIOF_CARDRESET)) in mlxreg_wdt_check_card_reset() 69 reg_data = &wdt->pdata->data[wdt->reset_idx]; in mlxreg_wdt_check_card_reset() 70 rc = regmap_read(wdt->regmap, reg_data->reg, ®val); in mlxreg_wdt_check_card_reset() 73 wdt->wdd.bootstatus = WDIOF_CARDRESET; in mlxreg_wdt_check_card_reset() 74 dev_info(wdt->wdd.parent, in mlxreg_wdt_check_card_reset() 82 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); in mlxreg_wdt_start() local 83 struct mlxreg_core_data *reg_data = &wdt in mlxreg_wdt_start() 91 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); mlxreg_wdt_stop() local 100 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); mlxreg_wdt_ping() local 110 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); mlxreg_wdt_set_timeout() local 168 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); mlxreg_wdt_get_timeleft() local 222 mlxreg_wdt_config(struct mlxreg_wdt *wdt, struct mlxreg_core_platform_data *pdata) mlxreg_wdt_config() argument 270 mlxreg_wdt_init_timeout(struct mlxreg_wdt *wdt, struct mlxreg_core_platform_data *pdata) mlxreg_wdt_init_timeout() argument 283 struct mlxreg_wdt *wdt; mlxreg_wdt_probe() local [all...] |
H A D | s3c2410_wdt.c | 267 { .compatible = "samsung,s3c2410-wdt", 269 { .compatible = "samsung,s3c6410-wdt", 271 { .compatible = "samsung,exynos5250-wdt", 273 { .compatible = "samsung,exynos5420-wdt", 275 { .compatible = "samsung,exynos7-wdt", 277 { .compatible = "samsung,exynos850-wdt", 279 { .compatible = "samsung,exynosautov9-wdt", 288 .name = "s3c2410-wdt", 297 static inline unsigned long s3c2410wdt_get_freq(struct s3c2410_wdt *wdt) in s3c2410wdt_get_freq() argument 299 return clk_get_rate(wdt in s3c2410wdt_get_freq() 302 s3c2410wdt_max_timeout(struct s3c2410_wdt *wdt) s3c2410wdt_max_timeout() argument 310 s3c2410wdt_disable_wdt_reset(struct s3c2410_wdt *wdt, bool mask) s3c2410wdt_disable_wdt_reset() argument 324 s3c2410wdt_mask_wdt_reset(struct s3c2410_wdt *wdt, bool mask) s3c2410wdt_mask_wdt_reset() argument 339 s3c2410wdt_enable_counter(struct s3c2410_wdt *wdt, bool en) s3c2410wdt_enable_counter() argument 353 s3c2410wdt_enable(struct s3c2410_wdt *wdt, bool en) s3c2410wdt_enable() argument 380 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); s3c2410wdt_keepalive() local 390 __s3c2410wdt_stop(struct s3c2410_wdt *wdt) __s3c2410wdt_stop() argument 401 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); s3c2410wdt_stop() local 414 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); s3c2410wdt_start() local 446 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); s3c2410wdt_set_heartbeat() local 497 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); s3c2410wdt_restart() local 545 struct s3c2410_wdt *wdt = platform_get_drvdata(param); s3c2410wdt_irq() local 557 s3c2410wdt_get_bootstatus(struct s3c2410_wdt *wdt) s3c2410wdt_get_bootstatus() argument 575 s3c2410_get_wdt_drv_data(struct platform_device *pdev, struct s3c2410_wdt *wdt) s3c2410_get_wdt_drv_data() argument 625 struct s3c2410_wdt *wdt; s3c2410wdt_probe() local 746 struct s3c2410_wdt *wdt = platform_get_drvdata(dev); s3c2410wdt_shutdown() local 755 struct s3c2410_wdt *wdt = dev_get_drvdata(dev); s3c2410wdt_suspend() local 774 struct s3c2410_wdt *wdt = dev_get_drvdata(dev); s3c2410wdt_resume() local [all...] |
H A D | keembay_wdt.c | 59 static inline u32 keembay_wdt_readl(struct keembay_wdt *wdt, u32 offset) in keembay_wdt_readl() argument 61 return readl(wdt->base + offset); in keembay_wdt_readl() 64 static inline void keembay_wdt_writel(struct keembay_wdt *wdt, u32 offset, u32 val) in keembay_wdt_writel() argument 66 writel(WDT_UNLOCK, wdt->base + TIM_SAFE); in keembay_wdt_writel() 67 writel(val, wdt->base + offset); in keembay_wdt_writel() 72 struct keembay_wdt *wdt = watchdog_get_drvdata(wdog); in keembay_wdt_set_timeout_reg() local 74 keembay_wdt_writel(wdt, TIM_WATCHDOG, wdog->timeout * wdt->rate); in keembay_wdt_set_timeout_reg() 79 struct keembay_wdt *wdt = watchdog_get_drvdata(wdog); in keembay_wdt_set_pretimeout_reg() local 85 keembay_wdt_writel(wdt, TIM_WATCHDOG_INT_THRE in keembay_wdt_set_pretimeout_reg() 90 struct keembay_wdt *wdt = watchdog_get_drvdata(wdog); keembay_wdt_start() local 99 struct keembay_wdt *wdt = watchdog_get_drvdata(wdog); keembay_wdt_stop() local 135 struct keembay_wdt *wdt = watchdog_get_drvdata(wdog); keembay_wdt_get_timeleft() local 146 struct keembay_wdt *wdt = dev_id; keembay_wdt_to_isr() local 158 struct keembay_wdt *wdt = dev_id; keembay_wdt_th_isr() local 191 struct keembay_wdt *wdt; keembay_wdt_probe() local 256 struct keembay_wdt *wdt = dev_get_drvdata(dev); keembay_wdt_suspend() local 266 struct keembay_wdt *wdt = dev_get_drvdata(dev); keembay_wdt_resume() local [all...] |
H A D | pm8916_wdt.c | 47 struct pm8916_wdt *wdt = watchdog_get_drvdata(wdev); in pm8916_wdt_start() local 49 return regmap_update_bits(wdt->regmap, in pm8916_wdt_start() 50 wdt->baseaddr + PON_PMIC_WD_RESET_S2_CTL2, in pm8916_wdt_start() 56 struct pm8916_wdt *wdt = watchdog_get_drvdata(wdev); in pm8916_wdt_stop() local 58 return regmap_update_bits(wdt->regmap, in pm8916_wdt_stop() 59 wdt->baseaddr + PON_PMIC_WD_RESET_S2_CTL2, in pm8916_wdt_stop() 65 struct pm8916_wdt *wdt = watchdog_get_drvdata(wdev); in pm8916_wdt_ping() local 67 return regmap_write(wdt->regmap, wdt->baseaddr + PON_PMIC_WD_RESET_PET, in pm8916_wdt_ping() 73 struct pm8916_wdt *wdt in pm8916_wdt_configure_timers() local 105 struct pm8916_wdt *wdt = arg; pm8916_wdt_isr() local 143 struct pm8916_wdt *wdt; pm8916_wdt_probe() local 238 struct pm8916_wdt *wdt = dev_get_drvdata(dev); pm8916_wdt_suspend() local 248 struct pm8916_wdt *wdt = dev_get_drvdata(dev); pm8916_wdt_resume() local [all...] |
H A D | max63xx_wdt.c | 54 void (*ping)(struct max63xx_wdt *wdt); 55 void (*set)(struct max63xx_wdt *wdt, u8 set); 120 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd); in max63xx_wdt_ping() local 122 wdt->ping(wdt); in max63xx_wdt_ping() 128 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd); in max63xx_wdt_start() local 130 wdt->set(wdt, wdt->timeout->wdset); in max63xx_wdt_start() 133 if (wdt in max63xx_wdt_start() 140 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd); max63xx_wdt_stop() local 158 max63xx_mmap_ping(struct max63xx_wdt *wdt) max63xx_mmap_ping() argument 172 max63xx_mmap_set(struct max63xx_wdt *wdt, u8 set) max63xx_mmap_set() argument 186 max63xx_mmap_init(struct platform_device *p, struct max63xx_wdt *wdt) max63xx_mmap_init() argument 202 struct max63xx_wdt *wdt; max63xx_wdt_probe() local [all...] |
H A D | da9062_wdt.c | 38 static unsigned int da9062_wdt_read_timeout(struct da9062_watchdog *wdt) in da9062_wdt_read_timeout() argument 42 regmap_read(wdt->hw->regmap, DA9062AA_CONTROL_D, &val); in da9062_wdt_read_timeout() 59 static int da9062_reset_watchdog_timer(struct da9062_watchdog *wdt) in da9062_reset_watchdog_timer() argument 61 return regmap_update_bits(wdt->hw->regmap, DA9062AA_CONTROL_F, in da9062_reset_watchdog_timer() 66 static int da9062_wdt_update_timeout_register(struct da9062_watchdog *wdt, in da9062_wdt_update_timeout_register() argument 69 struct da9062 *chip = wdt->hw; in da9062_wdt_update_timeout_register() 86 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); in da9062_wdt_start() local 90 selector = da9062_wdt_timeout_to_sel(wdt->wdtdev.timeout); in da9062_wdt_start() 91 ret = da9062_wdt_update_timeout_register(wdt, selector); in da9062_wdt_start() 93 dev_err(wdt in da9062_wdt_start() 101 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_stop() local 117 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_ping() local 138 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_set_timeout() local 156 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_restart() local 208 struct da9062_watchdog *wdt; da9062_wdt_probe() local 254 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_suspend() local 268 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_resume() local [all...] |
H A D | apple_wdt.c | 69 struct apple_wdt *wdt = to_apple_wdt(wdd); in apple_wdt_start() local 71 writel_relaxed(0, wdt->regs + APPLE_WDT_WD1_CUR_TIME); in apple_wdt_start() 72 writel_relaxed(APPLE_WDT_CTRL_RESET_EN, wdt->regs + APPLE_WDT_WD1_CTRL); in apple_wdt_start() 79 struct apple_wdt *wdt = to_apple_wdt(wdd); in apple_wdt_stop() local 81 writel_relaxed(0, wdt->regs + APPLE_WDT_WD1_CTRL); in apple_wdt_stop() 88 struct apple_wdt *wdt = to_apple_wdt(wdd); in apple_wdt_ping() local 90 writel_relaxed(0, wdt->regs + APPLE_WDT_WD1_CUR_TIME); in apple_wdt_ping() 97 struct apple_wdt *wdt = to_apple_wdt(wdd); in apple_wdt_set_timeout() local 99 writel_relaxed(0, wdt->regs + APPLE_WDT_WD1_CUR_TIME); in apple_wdt_set_timeout() 100 writel_relaxed(wdt in apple_wdt_set_timeout() 109 struct apple_wdt *wdt = to_apple_wdt(wdd); apple_wdt_get_timeleft() local 121 struct apple_wdt *wdt = to_apple_wdt(wdd); apple_wdt_restart() local 157 struct apple_wdt *wdt; apple_wdt_probe() local [all...] |
/kernel/linux/linux-5.10/drivers/watchdog/ |
H A D | at91sam9_wdt.c | 40 #define wdt_read(wdt, field) \ 41 readl_relaxed((wdt)->base + (field)) 43 writel_relaxed((val), (wdt)->base + (field)) 98 struct at91wdt *wdt = (struct at91wdt *)dev_id; in wdt_interrupt() local 100 if (wdt_read(wdt, AT91_WDT_SR)) { in wdt_interrupt() 112 static inline void at91_wdt_reset(struct at91wdt *wdt) in at91_wdt_reset() argument 114 wdt_write(wdt, AT91_WDT_CR, AT91_WDT_KEY | AT91_WDT_WDRSTT); in at91_wdt_reset() 122 struct at91wdt *wdt = from_timer(wdt, t, timer); in at91_ping() local 123 if (time_before(jiffies, wdt in at91_ping() 134 struct at91wdt *wdt = to_wdt(wdd); at91_wdt_start() local 152 at91_wdt_init(struct platform_device *pdev, struct at91wdt *wdt) at91_wdt_init() argument 265 of_at91wdt_init(struct device_node *np, struct at91wdt *wdt) of_at91wdt_init() argument 321 of_at91wdt_init(struct device_node *np, struct at91wdt *wdt) of_at91wdt_init() argument 330 struct at91wdt *wdt; at91wdt_probe() local 386 struct at91wdt *wdt = platform_get_drvdata(pdev); at91wdt_remove() local [all...] |
H A D | sama5d4_wdt.c | 52 #define wdt_enabled (!(wdt->mr & AT91_WDT_WDDIS)) 54 #define wdt_read(wdt, field) \ 55 readl_relaxed((wdt)->reg_base + (field)) 60 static void wdt_write(struct sama5d4_wdt *wdt, u32 field, u32 val) in wdt_write() argument 67 while (time_before(jiffies, wdt->last_ping + WDT_DELAY)) in wdt_write() 69 writel_relaxed(val, wdt->reg_base + field); in wdt_write() 70 wdt->last_ping = jiffies; in wdt_write() 73 static void wdt_write_nosleep(struct sama5d4_wdt *wdt, u32 field, u32 val) in wdt_write_nosleep() argument 75 if (time_before(jiffies, wdt->last_ping + WDT_DELAY)) in wdt_write_nosleep() 77 writel_relaxed(val, wdt in wdt_write_nosleep() 83 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); sama5d4_wdt_start() local 98 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); sama5d4_wdt_stop() local 113 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); sama5d4_wdt_ping() local 123 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); sama5d4_wdt_set_timeout() local 167 struct sama5d4_wdt *wdt = platform_get_drvdata(dev_id); sama5d4_wdt_irq_handler() local 184 of_sama5d4_wdt_init(struct device_node *np, struct sama5d4_wdt *wdt) of_sama5d4_wdt_init() argument 206 sama5d4_wdt_init(struct sama5d4_wdt *wdt) sama5d4_wdt_init() argument 255 struct sama5d4_wdt *wdt; sama5d4_wdt_probe() local 339 struct sama5d4_wdt *wdt = dev_get_drvdata(dev); sama5d4_wdt_suspend_late() local 349 struct sama5d4_wdt *wdt = dev_get_drvdata(dev); sama5d4_wdt_resume_early() local [all...] |
H A D | sprd_wdt.c | 83 struct sprd_wdt *wdt = (struct sprd_wdt *)dev_id; in sprd_wdt_isr() local 85 sprd_wdt_unlock(wdt->base); in sprd_wdt_isr() 86 writel_relaxed(SPRD_WDT_INT_CLEAR_BIT, wdt->base + SPRD_WDT_INT_CLR); in sprd_wdt_isr() 87 sprd_wdt_lock(wdt->base); in sprd_wdt_isr() 88 watchdog_notify_pretimeout(&wdt->wdd); in sprd_wdt_isr() 92 static u32 sprd_wdt_get_cnt_value(struct sprd_wdt *wdt) in sprd_wdt_get_cnt_value() argument 96 val = readl_relaxed(wdt->base + SPRD_WDT_CNT_HIGH) << in sprd_wdt_get_cnt_value() 98 val |= readl_relaxed(wdt->base + SPRD_WDT_CNT_LOW) & in sprd_wdt_get_cnt_value() 104 static int sprd_wdt_load_value(struct sprd_wdt *wdt, u32 timeout, in sprd_wdt_load_value() argument 116 val = readl_relaxed(wdt in sprd_wdt_load_value() 141 sprd_wdt_enable(struct sprd_wdt *wdt) sprd_wdt_enable() argument 165 struct sprd_wdt *wdt = _data; sprd_wdt_disable() local 177 struct sprd_wdt *wdt = to_sprd_wdt(wdd); sprd_wdt_start() local 197 struct sprd_wdt *wdt = to_sprd_wdt(wdd); sprd_wdt_stop() local 212 struct sprd_wdt *wdt = to_sprd_wdt(wdd); sprd_wdt_set_timeout() local 225 struct sprd_wdt *wdt = to_sprd_wdt(wdd); sprd_wdt_set_pretimeout() local 237 struct sprd_wdt *wdt = to_sprd_wdt(wdd); sprd_wdt_get_timeleft() local 264 struct sprd_wdt *wdt; sprd_wdt_probe() local 331 struct sprd_wdt *wdt = dev_get_drvdata(dev); sprd_wdt_pm_suspend() local 342 struct sprd_wdt *wdt = dev_get_drvdata(dev); sprd_wdt_pm_resume() local [all...] |
H A D | mei_wdt.c | 161 * @wdt: mei watchdog device 166 static int mei_wdt_ping(struct mei_wdt *wdt) in mei_wdt_ping() argument 177 req.timeout = wdt->timeout; in mei_wdt_ping() 179 ret = mei_cldev_send(wdt->cldev, (u8 *)&req, req_len); in mei_wdt_ping() 189 * @wdt: mei watchdog device 194 static int mei_wdt_stop(struct mei_wdt *wdt) in mei_wdt_stop() argument 206 ret = mei_cldev_send(wdt->cldev, (u8 *)&req, req_len); in mei_wdt_stop() 222 struct mei_wdt *wdt = watchdog_get_drvdata(wdd); in mei_wdt_ops_start() local 224 wdt->state = MEI_WDT_START; in mei_wdt_ops_start() 225 wdd->timeout = wdt in mei_wdt_ops_start() 238 struct mei_wdt *wdt = watchdog_get_drvdata(wdd); mei_wdt_ops_stop() local 264 struct mei_wdt *wdt = watchdog_get_drvdata(wdd); mei_wdt_ops_ping() local 296 struct mei_wdt *wdt = watchdog_get_drvdata(wdd); mei_wdt_ops_set_timeout() local 329 __mei_wdt_is_registered(struct mei_wdt *wdt) __mei_wdt_is_registered() argument 339 mei_wdt_unregister(struct mei_wdt *wdt) mei_wdt_unregister() argument 359 mei_wdt_register(struct mei_wdt *wdt) mei_wdt_register() argument 400 struct mei_wdt *wdt = container_of(work, struct mei_wdt, unregister); mei_wdt_unregister_work() local 412 struct mei_wdt *wdt = mei_cldev_get_drvdata(cldev); mei_wdt_rx() local 484 struct mei_wdt *wdt = mei_cldev_get_drvdata(cldev); mei_wdt_notif() local 497 struct mei_wdt *wdt = file->private_data; mei_dbgfs_read_activation() local 519 struct mei_wdt *wdt = file->private_data; mei_dbgfs_read_state() local 535 dbgfs_unregister(struct mei_wdt *wdt) dbgfs_unregister() argument 541 dbgfs_register(struct mei_wdt *wdt) dbgfs_register() argument 556 dbgfs_unregister(struct mei_wdt *wdt) dbgfs_unregister() argument 557 dbgfs_register(struct mei_wdt *wdt) dbgfs_register() argument 563 struct mei_wdt *wdt; mei_wdt_probe() local 625 struct mei_wdt *wdt = mei_cldev_get_drvdata(cldev); mei_wdt_remove() local [all...] |
H A D | mlx_wdt.c | 57 static void mlxreg_wdt_check_card_reset(struct mlxreg_wdt *wdt) in mlxreg_wdt_check_card_reset() argument 63 if (wdt->reset_idx == -EINVAL) in mlxreg_wdt_check_card_reset() 66 if (!(wdt->wdd.info->options & WDIOF_CARDRESET)) in mlxreg_wdt_check_card_reset() 69 reg_data = &wdt->pdata->data[wdt->reset_idx]; in mlxreg_wdt_check_card_reset() 70 rc = regmap_read(wdt->regmap, reg_data->reg, ®val); in mlxreg_wdt_check_card_reset() 73 wdt->wdd.bootstatus = WDIOF_CARDRESET; in mlxreg_wdt_check_card_reset() 74 dev_info(wdt->wdd.parent, in mlxreg_wdt_check_card_reset() 82 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); in mlxreg_wdt_start() local 83 struct mlxreg_core_data *reg_data = &wdt in mlxreg_wdt_start() 91 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); mlxreg_wdt_stop() local 100 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); mlxreg_wdt_ping() local 111 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); mlxreg_wdt_set_timeout() local 169 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); mlxreg_wdt_get_timeleft() local 223 mlxreg_wdt_config(struct mlxreg_wdt *wdt, struct mlxreg_core_platform_data *pdata) mlxreg_wdt_config() argument 271 mlxreg_wdt_init_timeout(struct mlxreg_wdt *wdt, struct mlxreg_core_platform_data *pdata) mlxreg_wdt_init_timeout() argument 284 struct mlxreg_wdt *wdt; mlxreg_wdt_probe() local [all...] |
H A D | sp805_wdt.c | 2 * drivers/char/watchdog/sp805-wdt.c 36 #define MODULE_NAME "sp805-wdt" 57 * struct sp805_wdt: sp805 wdt device structure 60 * @base: base address of wdt 61 * @clk: clock structure of wdt 62 * @adev: amba device structure of wdt 63 * @status: current status of wdt 81 /* returns true if wdt is running; otherwise returns false */ 84 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); in wdt_is_running() local 85 u32 wdtcontrol = readl_relaxed(wdt in wdt_is_running() 93 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); wdt_setload() local 121 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); wdt_timeleft() local 138 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); wdt_restart() local 153 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); wdt_config() local 198 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); wdt_disable() local 233 struct sp805_wdt *wdt; sp805_wdt_probe() local 309 struct sp805_wdt *wdt = amba_get_drvdata(adev); sp805_wdt_remove() local 317 struct sp805_wdt *wdt = dev_get_drvdata(dev); sp805_wdt_suspend() local 327 struct sp805_wdt *wdt = dev_get_drvdata(dev); sp805_wdt_resume() local [all...] |
H A D | s3c2410_wdt.c | 164 { .compatible = "samsung,s3c2410-wdt", 166 { .compatible = "samsung,s3c6410-wdt", 168 { .compatible = "samsung,exynos5250-wdt", 170 { .compatible = "samsung,exynos5420-wdt", 172 { .compatible = "samsung,exynos7-wdt", 181 .name = "s3c2410-wdt", 203 static int s3c2410wdt_mask_and_disable_reset(struct s3c2410_wdt *wdt, bool mask) in s3c2410wdt_mask_and_disable_reset() argument 206 u32 mask_val = 1 << wdt->drv_data->mask_bit; in s3c2410wdt_mask_and_disable_reset() 210 if (!(wdt->drv_data->quirks & QUIRK_HAS_PMU_CONFIG)) in s3c2410wdt_mask_and_disable_reset() 216 ret = regmap_update_bits(wdt in s3c2410wdt_mask_and_disable_reset() 234 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); s3c2410wdt_keepalive() local 243 __s3c2410wdt_stop(struct s3c2410_wdt *wdt) __s3c2410wdt_stop() argument 254 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); s3c2410wdt_stop() local 266 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); s3c2410wdt_start() local 294 s3c2410wdt_is_running(struct s3c2410_wdt *wdt) s3c2410wdt_is_running() argument 302 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); s3c2410wdt_set_heartbeat() local 353 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); s3c2410wdt_restart() local 401 struct s3c2410_wdt *wdt = platform_get_drvdata(param); s3c2410wdt_irq() local 419 struct s3c2410_wdt *wdt = freq_to_wdt(nb); s3c2410wdt_cpufreq_transition() local 452 s3c2410wdt_cpufreq_register(struct s3c2410_wdt *wdt) s3c2410wdt_cpufreq_register() argument 460 s3c2410wdt_cpufreq_deregister(struct s3c2410_wdt *wdt) s3c2410wdt_cpufreq_deregister() argument 470 s3c2410wdt_cpufreq_register(struct s3c2410_wdt *wdt) s3c2410wdt_cpufreq_register() argument 475 s3c2410wdt_cpufreq_deregister(struct s3c2410_wdt *wdt) s3c2410wdt_cpufreq_deregister() argument 480 s3c2410wdt_get_bootstatus(struct s3c2410_wdt *wdt) s3c2410wdt_get_bootstatus() argument 515 struct s3c2410_wdt *wdt; s3c2410wdt_probe() local 656 struct s3c2410_wdt *wdt = platform_get_drvdata(dev); s3c2410wdt_remove() local 673 struct s3c2410_wdt *wdt = platform_get_drvdata(dev); s3c2410wdt_shutdown() local 685 struct s3c2410_wdt *wdt = dev_get_drvdata(dev); s3c2410wdt_suspend() local 704 struct s3c2410_wdt *wdt = dev_get_drvdata(dev); s3c2410wdt_resume() local [all...] |
H A D | bcm7038_wdt.c | 39 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_set_timeout_reg() local 42 timeout = wdt->rate * wdog->timeout; in bcm7038_wdt_set_timeout_reg() 44 writel(timeout, wdt->base + WDT_TIMEOUT_REG); in bcm7038_wdt_set_timeout_reg() 49 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_ping() local 51 writel(WDT_START_1, wdt->base + WDT_CMD_REG); in bcm7038_wdt_ping() 52 writel(WDT_START_2, wdt->base + WDT_CMD_REG); in bcm7038_wdt_ping() 67 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_stop() local 69 writel(WDT_STOP_1, wdt->base + WDT_CMD_REG); in bcm7038_wdt_stop() 70 writel(WDT_STOP_2, wdt->base + WDT_CMD_REG); in bcm7038_wdt_stop() 88 struct bcm7038_watchdog *wdt in bcm7038_wdt_get_timeleft() local 118 struct bcm7038_watchdog *wdt; bcm7038_wdt_probe() local 173 struct bcm7038_watchdog *wdt = dev_get_drvdata(dev); bcm7038_wdt_suspend() local 183 struct bcm7038_watchdog *wdt = dev_get_drvdata(dev); bcm7038_wdt_resume() local [all...] |
H A D | max63xx_wdt.c | 56 void (*ping)(struct max63xx_wdt *wdt); 57 void (*set)(struct max63xx_wdt *wdt, u8 set); 122 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd); in max63xx_wdt_ping() local 124 wdt->ping(wdt); in max63xx_wdt_ping() 130 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd); in max63xx_wdt_start() local 132 wdt->set(wdt, wdt->timeout->wdset); in max63xx_wdt_start() 135 if (wdt in max63xx_wdt_start() 142 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd); max63xx_wdt_stop() local 160 max63xx_mmap_ping(struct max63xx_wdt *wdt) max63xx_mmap_ping() argument 174 max63xx_mmap_set(struct max63xx_wdt *wdt, u8 set) max63xx_mmap_set() argument 188 max63xx_mmap_init(struct platform_device *p, struct max63xx_wdt *wdt) max63xx_mmap_init() argument 204 struct max63xx_wdt *wdt; max63xx_wdt_probe() local [all...] |
H A D | da9062_wdt.c | 38 static unsigned int da9062_wdt_read_timeout(struct da9062_watchdog *wdt) in da9062_wdt_read_timeout() argument 42 regmap_read(wdt->hw->regmap, DA9062AA_CONTROL_D, &val); in da9062_wdt_read_timeout() 59 static int da9062_reset_watchdog_timer(struct da9062_watchdog *wdt) in da9062_reset_watchdog_timer() argument 61 return regmap_update_bits(wdt->hw->regmap, DA9062AA_CONTROL_F, in da9062_reset_watchdog_timer() 66 static int da9062_wdt_update_timeout_register(struct da9062_watchdog *wdt, in da9062_wdt_update_timeout_register() argument 69 struct da9062 *chip = wdt->hw; in da9062_wdt_update_timeout_register() 86 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); in da9062_wdt_start() local 90 selector = da9062_wdt_timeout_to_sel(wdt->wdtdev.timeout); in da9062_wdt_start() 91 ret = da9062_wdt_update_timeout_register(wdt, selector); in da9062_wdt_start() 93 dev_err(wdt in da9062_wdt_start() 101 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_stop() local 117 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_ping() local 131 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_set_timeout() local 149 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_restart() local 192 struct da9062_watchdog *wdt; da9062_wdt_probe() local 238 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_suspend() local 252 struct da9062_watchdog *wdt = watchdog_get_drvdata(wdd); da9062_wdt_resume() local [all...] |
H A D | zx2967_wdt.c | 54 static inline u32 zx2967_wdt_readl(struct zx2967_wdt *wdt, u16 reg) in zx2967_wdt_readl() argument 56 return readl_relaxed(wdt->reg_base + reg); in zx2967_wdt_readl() 59 static inline void zx2967_wdt_writel(struct zx2967_wdt *wdt, u16 reg, u32 val) in zx2967_wdt_writel() argument 61 writel_relaxed(val | ZX2967_WDT_WRITEKEY, wdt->reg_base + reg); in zx2967_wdt_writel() 64 static void zx2967_wdt_refresh(struct zx2967_wdt *wdt) in zx2967_wdt_refresh() argument 68 val = zx2967_wdt_readl(wdt, ZX2967_WDT_REFRESH_REG); in zx2967_wdt_refresh() 76 zx2967_wdt_writel(wdt, ZX2967_WDT_REFRESH_REG, in zx2967_wdt_refresh() 83 struct zx2967_wdt *wdt = watchdog_get_drvdata(wdd); in zx2967_wdt_set_timeout() local 91 zx2967_wdt_writel(wdt, ZX2967_WDT_CFG_REG, in zx2967_wdt_set_timeout() 93 zx2967_wdt_writel(wdt, ZX2967_WDT_LOAD_RE in zx2967_wdt_set_timeout() 101 __zx2967_wdt_start(struct zx2967_wdt *wdt) __zx2967_wdt_start() argument 111 __zx2967_wdt_stop(struct zx2967_wdt *wdt) __zx2967_wdt_stop() argument 123 struct zx2967_wdt *wdt = watchdog_get_drvdata(wdd); zx2967_wdt_start() local 133 struct zx2967_wdt *wdt = watchdog_get_drvdata(wdd); zx2967_wdt_stop() local 142 struct zx2967_wdt *wdt = watchdog_get_drvdata(wdd); zx2967_wdt_keepalive() local 198 struct zx2967_wdt *wdt; zx2967_wdt_probe() local [all...] |
H A D | pm8916_wdt.c | 41 struct pm8916_wdt *wdt = watchdog_get_drvdata(wdev); in pm8916_wdt_start() local 43 return regmap_update_bits(wdt->regmap, in pm8916_wdt_start() 44 wdt->baseaddr + PON_PMIC_WD_RESET_S2_CTL2, in pm8916_wdt_start() 50 struct pm8916_wdt *wdt = watchdog_get_drvdata(wdev); in pm8916_wdt_stop() local 52 return regmap_update_bits(wdt->regmap, in pm8916_wdt_stop() 53 wdt->baseaddr + PON_PMIC_WD_RESET_S2_CTL2, in pm8916_wdt_stop() 59 struct pm8916_wdt *wdt = watchdog_get_drvdata(wdev); in pm8916_wdt_ping() local 61 return regmap_update_bits(wdt->regmap, in pm8916_wdt_ping() 62 wdt->baseaddr + PON_PMIC_WD_RESET_PET, in pm8916_wdt_ping() 68 struct pm8916_wdt *wdt in pm8916_wdt_configure_timers() local 100 struct pm8916_wdt *wdt = arg; pm8916_wdt_isr() local 136 struct pm8916_wdt *wdt; pm8916_wdt_probe() local 205 struct pm8916_wdt *wdt = dev_get_drvdata(dev); pm8916_wdt_suspend() local 215 struct pm8916_wdt *wdt = dev_get_drvdata(dev); pm8916_wdt_resume() local [all...] |