/drivers/watchdog/ |
D | s3c2410_wdt.c | 208 static int s3c2410wdt_mask_and_disable_reset(struct s3c2410_wdt *wdt, bool mask) in s3c2410wdt_mask_and_disable_reset() argument 211 u32 mask_val = 1 << wdt->drv_data->mask_bit; in s3c2410wdt_mask_and_disable_reset() 215 if (!(wdt->drv_data->quirks & QUIRK_HAS_PMU_CONFIG)) in s3c2410wdt_mask_and_disable_reset() 221 ret = regmap_update_bits(wdt->pmureg, in s3c2410wdt_mask_and_disable_reset() 222 wdt->drv_data->disable_reg, in s3c2410wdt_mask_and_disable_reset() 227 ret = regmap_update_bits(wdt->pmureg, in s3c2410wdt_mask_and_disable_reset() 228 wdt->drv_data->mask_reset_reg, in s3c2410wdt_mask_and_disable_reset() 232 dev_err(wdt->dev, "failed to update reg(%d)\n", ret); in s3c2410wdt_mask_and_disable_reset() 239 struct s3c2410_wdt *wdt = watchdog_get_drvdata(wdd); in s3c2410wdt_keepalive() local 241 spin_lock(&wdt->lock); in s3c2410wdt_keepalive() [all …]
|
D | at91sam9_wdt.c | 42 #define wdt_read(wdt, field) \ argument 43 __raw_readl((wdt)->base + (field)) 45 __raw_writel((val), (wdt)->base + (field)) 99 struct at91wdt *wdt = (struct at91wdt *)dev_id; in wdt_interrupt() local 101 if (wdt_read(wdt, AT91_WDT_SR)) { in wdt_interrupt() 113 static inline void at91_wdt_reset(struct at91wdt *wdt) in at91_wdt_reset() argument 115 wdt_write(wdt, AT91_WDT_CR, AT91_WDT_KEY | AT91_WDT_WDRSTT); in at91_wdt_reset() 123 struct at91wdt *wdt = (struct at91wdt *)data; in at91_ping() local 124 if (time_before(jiffies, wdt->next_heartbeat) || in at91_ping() 125 !watchdog_active(&wdt->wdd)) { in at91_ping() [all …]
|
D | sp805_wdt.c | 80 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); in wdt_setload() local 83 rate = clk_get_rate(wdt->clk); in wdt_setload() 96 spin_lock(&wdt->lock); in wdt_setload() 97 wdt->load_val = load; in wdt_setload() 100 spin_unlock(&wdt->lock); in wdt_setload() 108 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); in wdt_timeleft() local 111 rate = clk_get_rate(wdt->clk); in wdt_timeleft() 113 spin_lock(&wdt->lock); in wdt_timeleft() 114 load = readl_relaxed(wdt->base + WDTVALUE); in wdt_timeleft() 117 if (!(readl_relaxed(wdt->base + WDTRIS) & INT_MASK)) in wdt_timeleft() [all …]
|
D | qcom-wdt.c | 43 struct qcom_wdt *wdt = to_qcom_wdt(wdd); in qcom_wdt_start() local 45 writel(0, wdt->base + WDT_EN); in qcom_wdt_start() 46 writel(1, wdt->base + WDT_RST); in qcom_wdt_start() 47 writel(wdd->timeout * wdt->rate, wdt->base + WDT_BITE_TIME); in qcom_wdt_start() 48 writel(1, wdt->base + WDT_EN); in qcom_wdt_start() 54 struct qcom_wdt *wdt = to_qcom_wdt(wdd); in qcom_wdt_stop() local 56 writel(0, wdt->base + WDT_EN); in qcom_wdt_stop() 62 struct qcom_wdt *wdt = to_qcom_wdt(wdd); in qcom_wdt_ping() local 64 writel(1, wdt->base + WDT_RST); in qcom_wdt_ping() 93 struct qcom_wdt *wdt = container_of(nb, struct qcom_wdt, restart_nb); in qcom_wdt_restart() local [all …]
|
D | ts72xx_wdt.c | 144 static inline void ts72xx_wdt_kick(struct ts72xx_wdt *wdt) in ts72xx_wdt_kick() argument 146 __raw_writeb(TS72XX_WDT_FEED_VAL, wdt->feed_reg); in ts72xx_wdt_kick() 158 static void ts72xx_wdt_start(struct ts72xx_wdt *wdt) in ts72xx_wdt_start() argument 165 ts72xx_wdt_kick(wdt); in ts72xx_wdt_start() 166 __raw_writeb((u8)wdt->regval, wdt->control_reg); in ts72xx_wdt_start() 175 static void ts72xx_wdt_stop(struct ts72xx_wdt *wdt) in ts72xx_wdt_stop() argument 177 ts72xx_wdt_kick(wdt); in ts72xx_wdt_stop() 178 __raw_writeb(0, wdt->control_reg); in ts72xx_wdt_stop() 183 struct ts72xx_wdt *wdt = platform_get_drvdata(ts72xx_wdt_pdev); in ts72xx_wdt_open() local 192 dev_err(&wdt->pdev->dev, in ts72xx_wdt_open() [all …]
|
D | bcm47xx_wdt.c | 54 struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd); in bcm47xx_wdt_hard_keepalive() local 56 wdt->timer_set_ms(wdt, wdd->timeout * 1000); in bcm47xx_wdt_hard_keepalive() 68 struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd); in bcm47xx_wdt_hard_stop() local 70 wdt->timer_set(wdt, 0); in bcm47xx_wdt_hard_stop() 78 struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd); in bcm47xx_wdt_hard_set_timeout() local 79 u32 max_timer = wdt->max_timer_ms; in bcm47xx_wdt_hard_set_timeout() 101 struct bcm47xx_wdt *wdt = (struct bcm47xx_wdt *)data; in bcm47xx_wdt_soft_timer_tick() local 102 u32 next_tick = min(wdt->wdd.timeout * 1000, wdt->max_timer_ms); in bcm47xx_wdt_soft_timer_tick() 104 if (!atomic_dec_and_test(&wdt->soft_ticks)) { in bcm47xx_wdt_soft_timer_tick() 105 wdt->timer_set_ms(wdt, next_tick); in bcm47xx_wdt_soft_timer_tick() [all …]
|
D | cadence_wdt.c | 91 static inline void cdns_wdt_writereg(struct cdns_wdt *wdt, u32 offset, u32 val) in cdns_wdt_writereg() argument 93 writel_relaxed(val, wdt->regs + offset); in cdns_wdt_writereg() 132 struct cdns_wdt *wdt = watchdog_get_drvdata(wdd); in cdns_wdt_stop() local 134 spin_lock(&wdt->io_lock); in cdns_wdt_stop() 135 cdns_wdt_writereg(wdt, CDNS_WDT_ZMR_OFFSET, in cdns_wdt_stop() 137 spin_unlock(&wdt->io_lock); in cdns_wdt_stop() 153 struct cdns_wdt *wdt = watchdog_get_drvdata(wdd); in cdns_wdt_reload() local 155 spin_lock(&wdt->io_lock); in cdns_wdt_reload() 156 cdns_wdt_writereg(wdt, CDNS_WDT_RESTART_OFFSET, in cdns_wdt_reload() 158 spin_unlock(&wdt->io_lock); in cdns_wdt_reload() [all …]
|
D | bcm_kona_wdt.c | 65 static int secure_register_read(struct bcm_kona_wdt *wdt, uint32_t offset) in secure_register_read() argument 78 val = readl_relaxed(wdt->base + offset); in secure_register_read() 84 if (count > wdt->busy_count) in secure_register_read() 85 wdt->busy_count = count; in secure_register_read() 104 struct bcm_kona_wdt *wdt = s->private; in bcm_kona_wdt_dbg_show() local 106 if (!wdt) in bcm_kona_wdt_dbg_show() 109 spin_lock_irqsave(&wdt->lock, flags); in bcm_kona_wdt_dbg_show() 110 ctl_val = secure_register_read(wdt, SECWDOG_CTRL_REG); in bcm_kona_wdt_dbg_show() 111 cur_val = secure_register_read(wdt, SECWDOG_COUNT_REG); in bcm_kona_wdt_dbg_show() 112 spin_unlock_irqrestore(&wdt->lock, flags); in bcm_kona_wdt_dbg_show() [all …]
|
D | shwdt.c | 87 struct sh_wdt *wdt = watchdog_get_drvdata(wdt_dev); in sh_wdt_start() local 91 pm_runtime_get_sync(wdt->dev); in sh_wdt_start() 92 clk_enable(wdt->clk); in sh_wdt_start() 94 spin_lock_irqsave(&wdt->lock, flags); in sh_wdt_start() 97 mod_timer(&wdt->timer, next_ping_period(clock_division_ratio)); in sh_wdt_start() 123 spin_unlock_irqrestore(&wdt->lock, flags); in sh_wdt_start() 130 struct sh_wdt *wdt = watchdog_get_drvdata(wdt_dev); in sh_wdt_stop() local 134 spin_lock_irqsave(&wdt->lock, flags); in sh_wdt_stop() 136 del_timer(&wdt->timer); in sh_wdt_stop() 142 spin_unlock_irqrestore(&wdt->lock, flags); in sh_wdt_stop() [all …]
|
D | twl4030_wdt.c | 42 static int twl4030_wdt_start(struct watchdog_device *wdt) in twl4030_wdt_start() argument 44 return twl4030_wdt_write(wdt->timeout + 1); in twl4030_wdt_start() 47 static int twl4030_wdt_stop(struct watchdog_device *wdt) in twl4030_wdt_stop() argument 52 static int twl4030_wdt_set_timeout(struct watchdog_device *wdt, in twl4030_wdt_set_timeout() argument 55 wdt->timeout = timeout; in twl4030_wdt_set_timeout() 74 struct watchdog_device *wdt; in twl4030_wdt_probe() local 76 wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL); in twl4030_wdt_probe() 77 if (!wdt) in twl4030_wdt_probe() 80 wdt->info = &twl4030_wdt_info; in twl4030_wdt_probe() 81 wdt->ops = &twl4030_wdt_ops; in twl4030_wdt_probe() [all …]
|
D | at32ap700x_wdt.c | 85 static struct wdt_at32ap700x *wdt; variable 95 spin_lock(&wdt->io_lock); in at32_wdt_stop() 96 psel = wdt_readl(wdt, CTRL) & WDT_BF(CTRL_PSEL, 0x0f); in at32_wdt_stop() 97 wdt_writel(wdt, CTRL, psel | WDT_BF(CTRL_KEY, 0x55)); in at32_wdt_stop() 98 wdt_writel(wdt, CTRL, psel | WDT_BF(CTRL_KEY, 0xaa)); in at32_wdt_stop() 99 spin_unlock(&wdt->io_lock); in at32_wdt_stop() 108 unsigned long psel = (wdt->timeout > 1) ? 0xf : 0xe; in at32_wdt_start() 110 spin_lock(&wdt->io_lock); in at32_wdt_start() 111 wdt_writel(wdt, CTRL, WDT_BIT(CTRL_EN) in at32_wdt_start() 114 wdt_writel(wdt, CTRL, WDT_BIT(CTRL_EN) in at32_wdt_start() [all …]
|
D | da9063_wdt.c | 63 struct da9063_watchdog *wdt = watchdog_get_drvdata(wdd); in da9063_wdt_start() local 67 selector = da9063_wdt_timeout_to_sel(wdt->wdtdev.timeout); in da9063_wdt_start() 68 ret = _da9063_wdt_set_timeout(wdt->da9063, selector); in da9063_wdt_start() 70 dev_err(wdt->da9063->dev, "Watchdog failed to start (err = %d)\n", in da9063_wdt_start() 78 struct da9063_watchdog *wdt = watchdog_get_drvdata(wdd); in da9063_wdt_stop() local 81 ret = regmap_update_bits(wdt->da9063->regmap, DA9063_REG_CONTROL_D, in da9063_wdt_stop() 84 dev_alert(wdt->da9063->dev, "Watchdog failed to stop (err = %d)\n", in da9063_wdt_stop() 92 struct da9063_watchdog *wdt = watchdog_get_drvdata(wdd); in da9063_wdt_ping() local 95 ret = regmap_write(wdt->da9063->regmap, DA9063_REG_CONTROL_F, in da9063_wdt_ping() 98 dev_alert(wdt->da9063->dev, "Failed to ping the watchdog (err = %d)\n", in da9063_wdt_ping() [all …]
|
D | rn5t618_wdt.c | 56 struct rn5t618_wdt *wdt = watchdog_get_drvdata(wdt_dev); in rn5t618_wdt_set_timeout() local 67 ret = regmap_update_bits(wdt->rn5t618->regmap, RN5T618_WATCHDOG, in rn5t618_wdt_set_timeout() 78 struct rn5t618_wdt *wdt = watchdog_get_drvdata(wdt_dev); in rn5t618_wdt_start() local 86 ret = regmap_update_bits(wdt->rn5t618->regmap, RN5T618_REPCNT, in rn5t618_wdt_start() 93 ret = regmap_update_bits(wdt->rn5t618->regmap, RN5T618_WATCHDOG, in rn5t618_wdt_start() 100 return regmap_update_bits(wdt->rn5t618->regmap, RN5T618_PWRIREN, in rn5t618_wdt_start() 107 struct rn5t618_wdt *wdt = watchdog_get_drvdata(wdt_dev); in rn5t618_wdt_stop() local 109 return regmap_update_bits(wdt->rn5t618->regmap, RN5T618_WATCHDOG, in rn5t618_wdt_stop() 115 struct rn5t618_wdt *wdt = watchdog_get_drvdata(wdt_dev); in rn5t618_wdt_ping() local 120 ret = regmap_read(wdt->rn5t618->regmap, RN5T618_WATCHDOG, &val); in rn5t618_wdt_ping() [all …]
|
D | tegra_wdt.c | 88 struct tegra_wdt *wdt = watchdog_get_drvdata(wdd); in tegra_wdt_start() local 99 writel(val, wdt->tmr_regs + TIMER_PTV); in tegra_wdt_start() 111 writel(val, wdt->wdt_regs + WDT_CFG); in tegra_wdt_start() 113 writel(WDT_CMD_START_COUNTER, wdt->wdt_regs + WDT_CMD); in tegra_wdt_start() 120 struct tegra_wdt *wdt = watchdog_get_drvdata(wdd); in tegra_wdt_stop() local 122 writel(WDT_UNLOCK_PATTERN, wdt->wdt_regs + WDT_UNLOCK); in tegra_wdt_stop() 123 writel(WDT_CMD_DISABLE_COUNTER, wdt->wdt_regs + WDT_CMD); in tegra_wdt_stop() 124 writel(0, wdt->tmr_regs + TIMER_PTV); in tegra_wdt_stop() 131 struct tegra_wdt *wdt = watchdog_get_drvdata(wdd); in tegra_wdt_ping() local 133 writel(WDT_CMD_START_COUNTER, wdt->wdt_regs + WDT_CMD); in tegra_wdt_ping() [all …]
|
D | menf21bmc_wdt.c | 38 struct watchdog_device wdt; member 51 data->wdt.bootstatus |= WDIOF_CARDRESET; in menf21bmc_wdt_set_bootstatus() 53 data->wdt.bootstatus |= WDIOF_EXTERN1; in menf21bmc_wdt_set_bootstatus() 55 data->wdt.bootstatus |= WDIOF_EXTERN2; in menf21bmc_wdt_set_bootstatus() 57 data->wdt.bootstatus |= WDIOF_POWERUNDER; in menf21bmc_wdt_set_bootstatus() 62 static int menf21bmc_wdt_start(struct watchdog_device *wdt) in menf21bmc_wdt_start() argument 64 struct menf21bmc_wdt *drv_data = watchdog_get_drvdata(wdt); in menf21bmc_wdt_start() 69 static int menf21bmc_wdt_stop(struct watchdog_device *wdt) in menf21bmc_wdt_stop() argument 71 struct menf21bmc_wdt *drv_data = watchdog_get_drvdata(wdt); in menf21bmc_wdt_stop() 78 menf21bmc_wdt_settimeout(struct watchdog_device *wdt, unsigned int timeout) in menf21bmc_wdt_settimeout() argument [all …]
|
D | bcm2835_wdt.c | 47 struct bcm2835_wdt *wdt = watchdog_get_drvdata(wdog); in bcm2835_wdt_start() local 51 spin_lock_irqsave(&wdt->lock, flags); in bcm2835_wdt_start() 54 PM_WDOG_TIME_SET), wdt->base + PM_WDOG); in bcm2835_wdt_start() 55 cur = readl_relaxed(wdt->base + PM_RSTC); in bcm2835_wdt_start() 57 PM_RSTC_WRCFG_FULL_RESET, wdt->base + PM_RSTC); in bcm2835_wdt_start() 59 spin_unlock_irqrestore(&wdt->lock, flags); in bcm2835_wdt_start() 66 struct bcm2835_wdt *wdt = watchdog_get_drvdata(wdog); in bcm2835_wdt_stop() local 68 writel_relaxed(PM_PASSWORD | PM_RSTC_RESET, wdt->base + PM_RSTC); in bcm2835_wdt_stop() 81 struct bcm2835_wdt *wdt = watchdog_get_drvdata(wdog); in bcm2835_wdt_get_timeleft() local 83 uint32_t ret = readl_relaxed(wdt->base + PM_WDOG); in bcm2835_wdt_get_timeleft() [all …]
|
D | xen_wdt.c | 37 static struct sched_watchdog wdt; variable 54 wdt.timeout = timeout; in set_timeout() 66 if (!wdt.id) in xen_wdt_start() 67 err = HYPERVISOR_sched_op(SCHEDOP_watchdog, &wdt); in xen_wdt_start() 71 wdt.id = err; in xen_wdt_start() 88 wdt.timeout = 0; in xen_wdt_stop() 89 if (wdt.id) in xen_wdt_stop() 90 err = HYPERVISOR_sched_op(SCHEDOP_watchdog, &wdt); in xen_wdt_stop() 92 wdt.id = 0; in xen_wdt_stop() 107 if (wdt.id) in xen_wdt_kick() [all …]
|
D | mena21_wdt.c | 35 struct watchdog_device wdt; member 56 static int a21_wdt_start(struct watchdog_device *wdt) in a21_wdt_start() argument 58 struct a21_wdt_drv *drv = watchdog_get_drvdata(wdt); in a21_wdt_start() 69 static int a21_wdt_stop(struct watchdog_device *wdt) in a21_wdt_stop() argument 71 struct a21_wdt_drv *drv = watchdog_get_drvdata(wdt); in a21_wdt_stop() 82 static int a21_wdt_ping(struct watchdog_device *wdt) in a21_wdt_ping() argument 84 struct a21_wdt_drv *drv = watchdog_get_drvdata(wdt); in a21_wdt_ping() 97 static int a21_wdt_set_timeout(struct watchdog_device *wdt, in a21_wdt_set_timeout() argument 100 struct a21_wdt_drv *drv = watchdog_get_drvdata(wdt); in a21_wdt_set_timeout() 103 dev_err(wdt->dev, "Only 1 and 30 allowed as timeout\n"); in a21_wdt_set_timeout() [all …]
|
D | orion_wdt.c | 67 struct watchdog_device wdt; member 511 dev->wdt.info = &orion_wdt_info; in orion_wdt_probe() 512 dev->wdt.ops = &orion_wdt_ops; in orion_wdt_probe() 513 dev->wdt.min_timeout = 1; in orion_wdt_probe() 528 dev->wdt.timeout = wdt_max_duration; in orion_wdt_probe() 529 dev->wdt.max_timeout = wdt_max_duration; in orion_wdt_probe() 530 watchdog_init_timeout(&dev->wdt, heartbeat, &pdev->dev); in orion_wdt_probe() 532 platform_set_drvdata(pdev, &dev->wdt); in orion_wdt_probe() 533 watchdog_set_drvdata(&dev->wdt, dev); in orion_wdt_probe() 541 if (!orion_wdt_enabled(&dev->wdt)) in orion_wdt_probe() [all …]
|
D | jz4740_wdt.c | 65 struct watchdog_device wdt; member 162 jz4740_wdt = &drvdata->wdt; in jz4740_wdt_probe() 185 ret = watchdog_register_device(&drvdata->wdt); in jz4740_wdt_probe() 202 jz4740_wdt_stop(&drvdata->wdt); in jz4740_wdt_remove() 203 watchdog_unregister_device(&drvdata->wdt); in jz4740_wdt_remove()
|
D | da9055_wdt.c | 36 struct watchdog_device wdt; member 159 da9055_wdt = &driver_data->wdt; in da9055_wdt_probe() 177 ret = watchdog_register_device(&driver_data->wdt); in da9055_wdt_probe() 190 watchdog_unregister_device(&driver_data->wdt); in da9055_wdt_remove()
|
D | Makefile | 20 obj-$(CONFIG_WDT) += wdt.o 62 obj-$(CONFIG_QCOM_WDT) += qcom-wdt.o 141 obj-$(CONFIG_OCTEON_WDT) += octeon-wdt.o 142 octeon-wdt-y := octeon-wdt-main.o octeon-wdt-nmi.o
|
/drivers/ssb/ |
D | embedded.c | 39 struct bcm47xx_wdt wdt = {}; in ssb_watchdog_register() local 43 wdt.driver_data = &bus->chipco; in ssb_watchdog_register() 44 wdt.timer_set = ssb_chipco_watchdog_timer_set_wdt; in ssb_watchdog_register() 45 wdt.timer_set_ms = ssb_chipco_watchdog_timer_set_ms; in ssb_watchdog_register() 46 wdt.max_timer_ms = bus->chipco.max_timer_ms; in ssb_watchdog_register() 48 wdt.driver_data = &bus->extif; in ssb_watchdog_register() 49 wdt.timer_set = ssb_extif_watchdog_timer_set_wdt; in ssb_watchdog_register() 50 wdt.timer_set_ms = ssb_extif_watchdog_timer_set_ms; in ssb_watchdog_register() 51 wdt.max_timer_ms = SSB_EXTIF_WATCHDOG_MAX_TIMER_MS; in ssb_watchdog_register() 57 bus->busnumber, &wdt, in ssb_watchdog_register() [all …]
|
D | ssb_private.h | 227 extern u32 ssb_chipco_watchdog_timer_set_wdt(struct bcm47xx_wdt *wdt, 229 extern u32 ssb_chipco_watchdog_timer_set_ms(struct bcm47xx_wdt *wdt, u32 ms); 251 extern u32 ssb_extif_watchdog_timer_set_wdt(struct bcm47xx_wdt *wdt, u32 ticks); 252 extern u32 ssb_extif_watchdog_timer_set_ms(struct bcm47xx_wdt *wdt, u32 ms); 254 static inline u32 ssb_extif_watchdog_timer_set_wdt(struct bcm47xx_wdt *wdt, in ssb_extif_watchdog_timer_set_wdt() argument 259 static inline u32 ssb_extif_watchdog_timer_set_ms(struct bcm47xx_wdt *wdt, in ssb_extif_watchdog_timer_set_ms() argument
|
/drivers/bcma/ |
D | driver_chipcommon.c | 58 static u32 bcma_chipco_watchdog_timer_set_wdt(struct bcm47xx_wdt *wdt, in bcma_chipco_watchdog_timer_set_wdt() argument 61 struct bcma_drv_cc *cc = bcm47xx_wdt_get_drvdata(wdt); in bcma_chipco_watchdog_timer_set_wdt() 66 static u32 bcma_chipco_watchdog_timer_set_ms_wdt(struct bcm47xx_wdt *wdt, in bcma_chipco_watchdog_timer_set_ms_wdt() argument 69 struct bcma_drv_cc *cc = bcm47xx_wdt_get_drvdata(wdt); in bcma_chipco_watchdog_timer_set_ms_wdt() 94 struct bcm47xx_wdt wdt = {}; in bcma_chipco_watchdog_register() local 97 wdt.driver_data = cc; in bcma_chipco_watchdog_register() 98 wdt.timer_set = bcma_chipco_watchdog_timer_set_wdt; in bcma_chipco_watchdog_register() 99 wdt.timer_set_ms = bcma_chipco_watchdog_timer_set_ms_wdt; in bcma_chipco_watchdog_register() 100 wdt.max_timer_ms = bcma_chipco_watchdog_get_max_timer(cc) / cc->ticks_per_ms; in bcma_chipco_watchdog_register() 103 cc->core->bus->num, &wdt, in bcma_chipco_watchdog_register() [all …]
|