/linux/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 clk_disable_unprepare(wdt->apb_clk); in starfive_wdt_enable_clock() 157 return dev_err_probe(wdt->wdd.parent, ret, "failed to enable core clock\n"); in starfive_wdt_enable_clock() 163 static void starfive_wdt_disable_clock(struct starfive_wdt *wdt) in starfive_wdt_disable_clock() argument 165 clk_disable_unprepare(wdt->core_clk); in starfive_wdt_disable_clock() 166 clk_disable_unprepare(wdt->apb_clk); in starfive_wdt_disable_clock() 169 static inline int starfive_wdt_get_clock(struct starfive_wdt *wdt) in starfive_wdt_get_clock() argument [all …]
|
H A D | sama5d4_wdt.c | 51 #define wdt_enabled (!(wdt->mr & AT91_WDT_WDDIS)) 53 #define wdt_read(wdt, field) \ argument 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->reg_base + field); in wdt_write_nosleep() [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->base + SPRD_WDT_INT_RAW); in sprd_wdt_load_value() [all …]
|
H A D | sp805_wdt.c | 3 * drivers/char/watchdog/sp805-wdt.c 37 #define MODULE_NAME "sp805-wdt" 58 * struct sp805_wdt: sp805 wdt device structure 61 * @base: base address of wdt 62 * @clk: (optional) clock structure of wdt 64 * @adev: amba device structure of wdt 65 * @status: current status of wdt 83 /* returns true if wdt is running; otherwise returns false */ 86 struct sp805_wdt *wdt = watchdog_get_drvdata(wdd); in wdt_is_running() local 87 u32 wdtcontrol = readl_relaxed(wdt->base + WDTCONTROL); in wdt_is_running() [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->timeout; in mei_wdt_ops_start() [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_THRES, th_val * wdt->rate); in keembay_wdt_set_pretimeout_reg() 90 struct keembay_wdt *wdt = watchdog_get_drvdata(wdog); in keembay_wdt_start() local [all …]
|
H A D | mlx_wdt.c | 56 static void mlxreg_wdt_check_card_reset(struct mlxreg_wdt *wdt) in mlxreg_wdt_check_card_reset() argument 62 if (wdt->reset_idx == -EINVAL) in mlxreg_wdt_check_card_reset() 65 if (!(wdt->wdd.info->options & WDIOF_CARDRESET)) in mlxreg_wdt_check_card_reset() 68 reg_data = &wdt->pdata->data[wdt->reset_idx]; in mlxreg_wdt_check_card_reset() 69 rc = regmap_read(wdt->regmap, reg_data->reg, ®val); in mlxreg_wdt_check_card_reset() 72 wdt->wdd.bootstatus = WDIOF_CARDRESET; in mlxreg_wdt_check_card_reset() 73 dev_info(wdt->wdd.parent, in mlxreg_wdt_check_card_reset() 81 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); in mlxreg_wdt_start() local 82 struct mlxreg_core_data *reg_data = &wdt->pdata->data[wdt->action_idx]; in mlxreg_wdt_start() 84 return regmap_update_bits(wdt->regmap, reg_data->reg, ~reg_data->mask, in mlxreg_wdt_start() [all …]
|
H A D | at91sam9_wdt.c | 40 #define wdt_read(wdt, field) \ argument 41 readl_relaxed((wdt)->base + (field)) 43 writel_relaxed((val), (wdt)->base + (field)) 88 unsigned long heartbeat; /* WDT heartbeat in jiffies */ 98 struct at91wdt *wdt = (struct at91wdt *)dev_id; in wdt_interrupt() local 100 if (wdt_read(wdt, AT91_WDT_SR)) { in wdt_interrupt() 101 pr_crit("at91sam9 WDT software reset\n"); 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 [all …]
|
H A D | s3c2410_wdt.c | 96 * WDT reset request. On old SoCs it's usually called MASK_WDT_RESET_REQUEST, 106 * register. If 'mask_bit' bit is set, PMU will disable WDT reset when 161 * @cnt_en_reg: Offset in pmureg for the register that enables WDT counter. 181 struct clk *src_clk; /* for WDT counter */ 307 { .compatible = "google,gs101-wdt", 309 { .compatible = "samsung,s3c2410-wdt", 311 { .compatible = "samsung,s3c6410-wdt", 313 { .compatible = "samsung,exynos5250-wdt", 315 { .compatible = "samsung,exynos5420-wdt", 317 { .compatible = "samsung,exynos7-wdt", [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 = watchdog_get_drvdata(wdev); in pm8916_wdt_configure_timers() local 76 err = regmap_write(wdt->regmap, in pm8916_wdt_configure_timers() [all …]
|
H A D | qcom-wdt.c | 54 static void __iomem *wdt_addr(struct qcom_wdt *wdt, enum wdt_reg reg) in wdt_addr() argument 56 return wdt->base + wdt->layout[reg]; in wdt_addr() 76 struct qcom_wdt *wdt = to_qcom_wdt(wdd); in qcom_wdt_start() local 79 writel(0, wdt_addr(wdt, WDT_EN)); in qcom_wdt_start() 80 writel(1, wdt_addr(wdt, WDT_RST)); in qcom_wdt_start() 81 writel(bark * wdt->rate, wdt_addr(wdt, WDT_BARK_TIME)); in qcom_wdt_start() 82 writel(wdd->timeout * wdt->rate, wdt_addr(wdt, WDT_BITE_TIME)); in qcom_wdt_start() 83 writel(QCOM_WDT_ENABLE, wdt_addr(wdt, WDT_EN)); in qcom_wdt_start() 89 struct qcom_wdt *wdt = to_qcom_wdt(wdd); in qcom_wdt_stop() local 91 writel(0, wdt_addr(wdt, WDT_EN)); in qcom_wdt_stop() [all …]
|
H A D | bcm7038_wdt.c | 59 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_set_timeout_reg() local 62 timeout = wdt->rate * wdog->timeout; in bcm7038_wdt_set_timeout_reg() 64 bcm7038_wdt_write(timeout, wdt->base + WDT_TIMEOUT_REG); in bcm7038_wdt_set_timeout_reg() 69 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_ping() local 71 bcm7038_wdt_write(WDT_START_1, wdt->base + WDT_CMD_REG); in bcm7038_wdt_ping() 72 bcm7038_wdt_write(WDT_START_2, wdt->base + WDT_CMD_REG); in bcm7038_wdt_ping() 87 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_stop() local 89 bcm7038_wdt_write(WDT_STOP_1, wdt->base + WDT_CMD_REG); in bcm7038_wdt_stop() 90 bcm7038_wdt_write(WDT_STOP_2, wdt->base + WDT_CMD_REG); in bcm7038_wdt_stop() 108 struct bcm7038_watchdog *wdt = watchdog_get_drvdata(wdog); in bcm7038_wdt_get_timeleft() local [all …]
|
H A D | aspeed_wdt.c | 57 { .compatible = "aspeed,ast2400-wdt", .data = &ast2400_config }, 58 { .compatible = "aspeed,ast2500-wdt", .data = &ast2500_config }, 59 { .compatible = "aspeed,ast2600-wdt", .data = &ast2600_config }, 129 static void aspeed_wdt_enable(struct aspeed_wdt *wdt, int count) in aspeed_wdt_enable() argument 131 wdt->ctrl |= WDT_CTRL_ENABLE; in aspeed_wdt_enable() 133 writel(0, wdt->base + WDT_CTRL); in aspeed_wdt_enable() 134 writel(count, wdt->base + WDT_RELOAD_VALUE); in aspeed_wdt_enable() 135 writel(WDT_RESTART_MAGIC, wdt->base + WDT_RESTART); in aspeed_wdt_enable() 136 writel(wdt->ctrl, wdt->base + WDT_CTRL); in aspeed_wdt_enable() 141 struct aspeed_wdt *wdt = to_aspeed_wdt(wdd); in aspeed_wdt_start() 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->clk_rate * s, wdt->regs + APPLE_WDT_WD1_BITE_TIME); in apple_wdt_set_timeout() [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->hw->dev, "Watchdog failed to start (err = %d)\n", in da9062_wdt_start() [all …]
|
H A D | bcm47xx_wdt.c | 50 struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd); in bcm47xx_wdt_hard_keepalive() local 52 wdt->timer_set_ms(wdt, wdd->timeout * 1000); in bcm47xx_wdt_hard_keepalive() 64 struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd); in bcm47xx_wdt_hard_stop() local 66 wdt->timer_set(wdt, 0); in bcm47xx_wdt_hard_stop() 74 struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd); in bcm47xx_wdt_hard_set_timeout() local 75 u32 max_timer = wdt->max_timer_ms; in bcm47xx_wdt_hard_set_timeout() 90 struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd); in bcm47xx_wdt_restart() local 92 wdt->timer_set(wdt, 1); in bcm47xx_wdt_restart() 108 struct bcm47xx_wdt *wdt = from_timer(wdt, t, soft_timer); in bcm47xx_wdt_soft_timer_tick() local 109 u32 next_tick = min(wdt->wdd.timeout * 1000, wdt->max_timer_ms); in bcm47xx_wdt_soft_timer_tick() [all …]
|
H A D | bcm_kona_wdt.c | 58 static int secure_register_read(struct bcm_kona_wdt *wdt, uint32_t offset) in secure_register_read() argument 71 val = readl_relaxed(wdt->base + offset); in secure_register_read() 77 if (count > wdt->busy_count) in secure_register_read() 78 wdt->busy_count = count; in secure_register_read() 97 struct bcm_kona_wdt *wdt = s->private; in bcm_kona_show() local 99 if (!wdt) { in bcm_kona_show() 104 spin_lock_irqsave(&wdt->lock, flags); in bcm_kona_show() 105 ctl_val = secure_register_read(wdt, SECWDOG_CTRL_REG); in bcm_kona_show() 106 cur_val = secure_register_read(wdt, SECWDOG_COUNT_REG); in bcm_kona_show() 107 spin_unlock_irqrestore(&wdt->lock, flags); in bcm_kona_show() [all …]
|
H A D | max77620_wdt.c | 58 /* Set WDT clear in OFF and sleep mode */ 68 /* Set WDT clear in sleep mode (there is no WDTOFFC on MAX77714) */ 74 struct max77620_wdt *wdt = watchdog_get_drvdata(wdt_dev); in max77620_wdt_start() local 76 return regmap_update_bits(wdt->rmap, wdt->drv_data->reg_cnfg_glbl2, in max77620_wdt_start() 82 struct max77620_wdt *wdt = watchdog_get_drvdata(wdt_dev); in max77620_wdt_stop() local 84 return regmap_update_bits(wdt->rmap, wdt->drv_data->reg_cnfg_glbl2, in max77620_wdt_stop() 90 struct max77620_wdt *wdt = watchdog_get_drvdata(wdt_dev); in max77620_wdt_ping() local 92 return regmap_update_bits(wdt->rmap, wdt->drv_data->reg_cnfg_glbl3, in max77620_wdt_ping() 93 wdt->drv_data->wdtc_mask, 0x1); in max77620_wdt_ping() 99 struct max77620_wdt *wdt = watchdog_get_drvdata(wdt_dev); in max77620_wdt_set_timeout() local [all …]
|
H A D | ni903x_wdt.c | 56 static void ni903x_start(struct ni903x_wdt *wdt) in ni903x_start() argument 58 u8 control = inb(wdt->io_base + NIWD_CONTROL); in ni903x_start() 60 outb(control | NIWD_CONTROL_RESET, wdt->io_base + NIWD_CONTROL); in ni903x_start() 61 outb(control | NIWD_CONTROL_PET, wdt->io_base + NIWD_CONTROL); in ni903x_start() 67 struct ni903x_wdt *wdt = watchdog_get_drvdata(wdd); in ni903x_wdd_set_timeout() local 70 outb(((0x00FF0000 & counter) >> 16), wdt->io_base + NIWD_SEED2); in ni903x_wdd_set_timeout() 71 outb(((0x0000FF00 & counter) >> 8), wdt->io_base + NIWD_SEED1); in ni903x_wdd_set_timeout() 72 outb((0x000000FF & counter), wdt->io_base + NIWD_SEED0); in ni903x_wdd_set_timeout() 81 struct ni903x_wdt *wdt = watchdog_get_drvdata(wdd); in ni903x_wdd_get_timeleft() local 85 control = inb(wdt->io_base + NIWD_CONTROL); in ni903x_wdd_get_timeleft() [all …]
|
H A D | pic32-wdt.c | 44 static inline bool pic32_wdt_is_win_enabled(struct pic32_wdt *wdt) in pic32_wdt_is_win_enabled() argument 46 return !!(readl(wdt->regs + WDTCON_REG) & WDTCON_WIN_EN); in pic32_wdt_is_win_enabled() 49 static inline u32 pic32_wdt_get_post_scaler(struct pic32_wdt *wdt) in pic32_wdt_get_post_scaler() argument 51 u32 v = readl(wdt->regs + WDTCON_REG); in pic32_wdt_get_post_scaler() 56 static inline u32 pic32_wdt_get_clk_id(struct pic32_wdt *wdt) in pic32_wdt_get_clk_id() argument 58 u32 v = readl(wdt->regs + WDTCON_REG); in pic32_wdt_get_clk_id() 63 static int pic32_wdt_bootstatus(struct pic32_wdt *wdt) in pic32_wdt_bootstatus() argument 65 u32 v = readl(wdt->rst_base); in pic32_wdt_bootstatus() 67 writel(RESETCON_WDT_TIMEOUT, PIC32_CLR(wdt->rst_base)); in pic32_wdt_bootstatus() 72 static u32 pic32_wdt_get_timeout_secs(struct pic32_wdt *wdt, struct device *dev) in pic32_wdt_get_timeout_secs() argument [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->timeout->tdelay == 0) in max63xx_wdt_start() 134 wdt->ping(wdt); in max63xx_wdt_start() 140 struct max63xx_wdt *wdt = watchdog_get_drvdata(wdd); in max63xx_wdt_stop() local 142 wdt->set(wdt, MAX6369_WDSET_DISABLED); in max63xx_wdt_stop() [all …]
|
/linux/Documentation/devicetree/bindings/watchdog/ |
H A D | fsl-imx-wdt.yaml | 4 $id: http://devicetree.org/schemas/watchdog/fsl-imx-wdt.yaml# 7 title: Freescale i.MX Watchdog Timer (WDT) Controller 17 - const: fsl,imx21-wdt 20 - fsl,imx25-wdt 21 - fsl,imx27-wdt 22 - fsl,imx31-wdt 23 - fsl,imx35-wdt 24 - fsl,imx50-wdt 25 - fsl,imx51-wdt 26 - fsl,imx53-wdt [all …]
|
H A D | renesas,wdt.yaml | 4 $id: http://devicetree.org/schemas/watchdog/renesas,wdt.yaml# 7 title: Renesas Watchdog Timer (WDT) Controller 18 - renesas,r7s72100-wdt # RZ/A1 19 - renesas,r7s9210-wdt # RZ/A2 20 - const: renesas,rza-wdt # RZ/A 24 - renesas,r9a06g032-wdt # RZ/N1D 25 - const: renesas,rzn1-wdt # RZ/N1 29 - renesas,r9a07g043-wdt # RZ/G2UL and RZ/Five 30 - renesas,r9a07g044-wdt # RZ/G2{L,LC} 31 - renesas,r9a07g054-wdt # RZ/V2L [all …]
|
H A D | qcom-wdt.yaml | 4 $id: http://devicetree.org/schemas/watchdog/qcom-wdt.yaml# 20 - qcom,kpss-wdt-ipq4019 21 - qcom,apss-wdt-ipq5018 22 - qcom,apss-wdt-ipq5332 23 - qcom,apss-wdt-ipq9574 24 - qcom,apss-wdt-msm8226 25 - qcom,apss-wdt-msm8974 26 - qcom,apss-wdt-msm8994 27 - qcom,apss-wdt-qcm2290 28 - qcom,apss-wdt-qcs404 [all …]
|
/linux/drivers/clocksource/ |
H A D | timer-tegra186.c | 87 struct tegra186_wdt *wdt; member 98 static void wdt_writel(struct tegra186_wdt *wdt, u32 value, unsigned int offset) in wdt_writel() argument 100 writel_relaxed(value, wdt->regs + offset); in wdt_writel() 103 static u32 wdt_readl(struct tegra186_wdt *wdt, unsigned int offset) in wdt_readl() argument 105 return readl_relaxed(wdt->regs + offset); in wdt_readl() 128 .identity = "NVIDIA Tegra186 WDT", 131 static void tegra186_wdt_disable(struct tegra186_wdt *wdt) in tegra186_wdt_disable() argument 134 wdt_writel(wdt, WDTUR_UNLOCK_PATTERN, WDTUR); in tegra186_wdt_disable() 135 wdt_writel(wdt, WDTCMDR_DISABLE_COUNTER, WDTCMDR); in tegra186_wdt_disable() 138 tmr_writel(wdt->tmr, 0, TMRCR); in tegra186_wdt_disable() [all …]
|