Lines Matching refs:mtx1_wdt_device

69 } mtx1_wdt_device;  variable
73 spin_lock(&mtx1_wdt_device.lock); in mtx1_wdt_trigger()
74 if (mtx1_wdt_device.running) in mtx1_wdt_trigger()
78 mtx1_wdt_device.gstate = !mtx1_wdt_device.gstate; in mtx1_wdt_trigger()
79 gpio_set_value(mtx1_wdt_device.gpio, mtx1_wdt_device.gstate); in mtx1_wdt_trigger()
81 if (mtx1_wdt_device.queue && ticks) in mtx1_wdt_trigger()
82 mod_timer(&mtx1_wdt_device.timer, jiffies + MTX1_WDT_INTERVAL); in mtx1_wdt_trigger()
84 complete(&mtx1_wdt_device.stop); in mtx1_wdt_trigger()
85 spin_unlock(&mtx1_wdt_device.lock); in mtx1_wdt_trigger()
90 ticks = mtx1_wdt_device.default_ticks; in mtx1_wdt_reset()
98 spin_lock_irqsave(&mtx1_wdt_device.lock, flags); in mtx1_wdt_start()
99 if (!mtx1_wdt_device.queue) { in mtx1_wdt_start()
100 mtx1_wdt_device.queue = 1; in mtx1_wdt_start()
101 mtx1_wdt_device.gstate = 1; in mtx1_wdt_start()
102 gpio_set_value(mtx1_wdt_device.gpio, 1); in mtx1_wdt_start()
103 mod_timer(&mtx1_wdt_device.timer, jiffies + MTX1_WDT_INTERVAL); in mtx1_wdt_start()
105 mtx1_wdt_device.running++; in mtx1_wdt_start()
106 spin_unlock_irqrestore(&mtx1_wdt_device.lock, flags); in mtx1_wdt_start()
113 spin_lock_irqsave(&mtx1_wdt_device.lock, flags); in mtx1_wdt_stop()
114 if (mtx1_wdt_device.queue) { in mtx1_wdt_stop()
115 mtx1_wdt_device.queue = 0; in mtx1_wdt_stop()
116 mtx1_wdt_device.gstate = 0; in mtx1_wdt_stop()
117 gpio_set_value(mtx1_wdt_device.gpio, 0); in mtx1_wdt_stop()
119 ticks = mtx1_wdt_device.default_ticks; in mtx1_wdt_stop()
120 spin_unlock_irqrestore(&mtx1_wdt_device.lock, flags); in mtx1_wdt_stop()
128 if (test_and_set_bit(0, &mtx1_wdt_device.inuse)) in mtx1_wdt_open()
136 clear_bit(0, &mtx1_wdt_device.inuse); in mtx1_wdt_release()
210 mtx1_wdt_device.gpio = pdev->resource[0].start; in mtx1_wdt_probe()
211 ret = devm_gpio_request_one(&pdev->dev, mtx1_wdt_device.gpio, in mtx1_wdt_probe()
218 spin_lock_init(&mtx1_wdt_device.lock); in mtx1_wdt_probe()
219 init_completion(&mtx1_wdt_device.stop); in mtx1_wdt_probe()
220 mtx1_wdt_device.queue = 0; in mtx1_wdt_probe()
221 clear_bit(0, &mtx1_wdt_device.inuse); in mtx1_wdt_probe()
222 setup_timer(&mtx1_wdt_device.timer, mtx1_wdt_trigger, 0L); in mtx1_wdt_probe()
223 mtx1_wdt_device.default_ticks = ticks; in mtx1_wdt_probe()
238 if (mtx1_wdt_device.queue) { in mtx1_wdt_remove()
239 mtx1_wdt_device.queue = 0; in mtx1_wdt_remove()
240 wait_for_completion(&mtx1_wdt_device.stop); in mtx1_wdt_remove()