Lines Matching +full:kona +full:- +full:timer
1 // SPDX-License-Identifier: GPL-2.0
32 #define SECS_TO_TICKS(x, w) ((x) << (w)->resolution)
33 #define TICKS_TO_SECS(x, w) ((x) >> (w)->resolution)
41 * the values 0-15, meaning one tick can be 1s to 30.52us. Our default
65 * updated in hardware. Once the WD timer is updated in hardware, it in secure_register_read()
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()
83 return -ETIMEDOUT; in secure_register_read()
97 struct bcm_kona_wdt *wdt = s->private; in bcm_kona_show()
104 spin_lock_irqsave(&wdt->lock, flags); in bcm_kona_show()
107 spin_unlock_irqrestore(&wdt->lock, flags); in bcm_kona_show()
124 res, wdt->resolution, in bcm_kona_show()
127 wdt->busy_count); in bcm_kona_show()
143 wdt->debugfs = NULL; in bcm_kona_wdt_debug_init()
149 wdt->debugfs = dir; in bcm_kona_wdt_debug_init()
157 debugfs_remove_recursive(wdt->debugfs); in bcm_kona_wdt_debug_exit()
174 spin_lock_irqsave(&wdt->lock, flags); in bcm_kona_wdt_ctrl_reg_modify()
182 writel_relaxed(val, wdt->base + SECWDOG_CTRL_REG); in bcm_kona_wdt_ctrl_reg_modify()
185 spin_unlock_irqrestore(&wdt->lock, flags); in bcm_kona_wdt_ctrl_reg_modify()
192 if (wdt->resolution > SECWDOG_MAX_RES) in bcm_kona_wdt_set_resolution_reg()
193 return -EINVAL; in bcm_kona_wdt_set_resolution_reg()
196 wdt->resolution << SECWDOG_CLKS_SHIFT); in bcm_kona_wdt_set_resolution_reg()
205 SECS_TO_TICKS(wdog->timeout, wdt) | in bcm_kona_wdt_set_timeout_reg()
212 wdog->timeout = t; in bcm_kona_wdt_set_timeout()
222 spin_lock_irqsave(&wdt->lock, flags); in bcm_kona_wdt_get_timeleft()
224 spin_unlock_irqrestore(&wdt->lock, flags); in bcm_kona_wdt_get_timeleft()
257 .identity = "Broadcom Kona Watchdog Timer",
270 struct device *dev = &pdev->dev; in bcm_kona_wdt_probe()
276 return -ENOMEM; in bcm_kona_wdt_probe()
278 spin_lock_init(&wdt->lock); in bcm_kona_wdt_probe()
280 wdt->base = devm_platform_ioremap_resource(pdev, 0); in bcm_kona_wdt_probe()
281 if (IS_ERR(wdt->base)) in bcm_kona_wdt_probe()
282 return PTR_ERR(wdt->base); in bcm_kona_wdt_probe()
284 wdt->resolution = SECWDOG_DEFAULT_RESOLUTION; in bcm_kona_wdt_probe()
308 dev_dbg(dev, "Broadcom Kona Watchdog Timer"); in bcm_kona_wdt_probe()
316 dev_dbg(&pdev->dev, "Watchdog driver disabled"); in bcm_kona_wdt_remove()
320 { .compatible = "brcm,kona-wdt", },
338 MODULE_DESCRIPTION("Broadcom Kona Watchdog Driver");