Lines Matching refs:drv
45 static unsigned int a21_wdt_get_bootstatus(struct a21_wdt_drv *drv) in a21_wdt_get_bootstatus() argument
49 reset |= gpio_get_value(drv->gpios[GPIO_WD_RST0]) ? (1 << 0) : 0; in a21_wdt_get_bootstatus()
50 reset |= gpio_get_value(drv->gpios[GPIO_WD_RST1]) ? (1 << 1) : 0; in a21_wdt_get_bootstatus()
51 reset |= gpio_get_value(drv->gpios[GPIO_WD_RST2]) ? (1 << 2) : 0; in a21_wdt_get_bootstatus()
58 struct a21_wdt_drv *drv = watchdog_get_drvdata(wdt); in a21_wdt_start() local
60 mutex_lock(&drv->lock); in a21_wdt_start()
62 gpio_set_value(drv->gpios[GPIO_WD_ENAB], 1); in a21_wdt_start()
64 mutex_unlock(&drv->lock); in a21_wdt_start()
71 struct a21_wdt_drv *drv = watchdog_get_drvdata(wdt); in a21_wdt_stop() local
73 mutex_lock(&drv->lock); in a21_wdt_stop()
75 gpio_set_value(drv->gpios[GPIO_WD_ENAB], 0); in a21_wdt_stop()
77 mutex_unlock(&drv->lock); in a21_wdt_stop()
84 struct a21_wdt_drv *drv = watchdog_get_drvdata(wdt); in a21_wdt_ping() local
86 mutex_lock(&drv->lock); in a21_wdt_ping()
88 gpio_set_value(drv->gpios[GPIO_WD_TRIG], 0); in a21_wdt_ping()
90 gpio_set_value(drv->gpios[GPIO_WD_TRIG], 1); in a21_wdt_ping()
92 mutex_unlock(&drv->lock); in a21_wdt_ping()
100 struct a21_wdt_drv *drv = watchdog_get_drvdata(wdt); in a21_wdt_set_timeout() local
113 mutex_lock(&drv->lock); in a21_wdt_set_timeout()
116 gpio_set_value(drv->gpios[GPIO_WD_FAST], 1); in a21_wdt_set_timeout()
118 gpio_set_value(drv->gpios[GPIO_WD_FAST], 0); in a21_wdt_set_timeout()
122 mutex_unlock(&drv->lock); in a21_wdt_set_timeout()
150 struct a21_wdt_drv *drv; in a21_wdt_probe() local
156 drv = devm_kzalloc(&pdev->dev, sizeof(struct a21_wdt_drv), GFP_KERNEL); in a21_wdt_probe()
157 if (!drv) in a21_wdt_probe()
177 drv->gpios[i] = val; in a21_wdt_probe()
182 ret = devm_gpio_request(&pdev->dev, drv->gpios[i], in a21_wdt_probe()
188 ret = gpio_direction_output(drv->gpios[i], in a21_wdt_probe()
189 gpio_get_value(drv->gpios[i])); in a21_wdt_probe()
191 ret = gpio_direction_input(drv->gpios[i]); in a21_wdt_probe()
196 mutex_init(&drv->lock); in a21_wdt_probe()
199 watchdog_set_drvdata(&a21_wdt, drv); in a21_wdt_probe()
202 reset = a21_wdt_get_bootstatus(drv); in a21_wdt_probe()
212 drv->wdt = a21_wdt; in a21_wdt_probe()
213 dev_set_drvdata(&pdev->dev, drv); in a21_wdt_probe()
226 mutex_destroy(&drv->lock); in a21_wdt_probe()
233 struct a21_wdt_drv *drv = dev_get_drvdata(&pdev->dev); in a21_wdt_remove() local
238 watchdog_unregister_device(&drv->wdt); in a21_wdt_remove()
240 mutex_destroy(&drv->lock); in a21_wdt_remove()
247 struct a21_wdt_drv *drv = dev_get_drvdata(&pdev->dev); in a21_wdt_shutdown() local
249 gpio_set_value(drv->gpios[GPIO_WD_ENAB], 0); in a21_wdt_shutdown()