gpio_restart
struct gpio_restart *gpio_restart = data->cb_data;
gpiod_direction_output(gpio_restart->reset_gpio, 1);
mdelay(gpio_restart->active_delay_ms);
gpiod_set_value(gpio_restart->reset_gpio, 0);
mdelay(gpio_restart->inactive_delay_ms);
gpiod_set_value(gpio_restart->reset_gpio, 1);
mdelay(gpio_restart->wait_delay_ms);
struct gpio_restart *gpio_restart;
gpio_restart = devm_kzalloc(&pdev->dev, sizeof(*gpio_restart),
if (!gpio_restart)
gpio_restart->reset_gpio = devm_gpiod_get(&pdev->dev, NULL,
ret = PTR_ERR_OR_ZERO(gpio_restart->reset_gpio);
gpio_restart->active_delay_ms = 100;
gpio_restart->inactive_delay_ms = 100;
gpio_restart->wait_delay_ms = 3000;
&gpio_restart->active_delay_ms);
&gpio_restart->inactive_delay_ms);
&gpio_restart->wait_delay_ms);
gpio_restart);