> +static void b53_switch_reset_gpio(struct b53_device *dev)
> +{
> +     int gpio = dev->reset_gpio;
> +
> +     if (gpio < 0)
> +             return;
> +
> +     /* Reset sequence: RESET low(50ms)->high(20ms)
> +      */
> +     gpio_set_value(gpio, 0);
> +     mdelay(50);
> +
> +     gpio_set_value(gpio, 1);
> +     mdelay(20);
> +
> +     dev->current_page = 0xff;
> +}

Hi Florian

It would be better to use the gpiod API here, so the active hi/active
low flag is respected.

> +     dev->reset_gpio = b53_switch_get_reset_gpio(dev);
> +     if (dev->reset_gpio >= 0) {
> +             ret = devm_gpio_request_one(dev->dev, dev->reset_gpio,
> +                                         GPIOF_OUT_INIT_HIGH, "robo_reset");
> +             if (ret)
> +                     return ret;
> +     }
> +
> +     return 0;
> +}

> +static inline int b53_switch_get_reset_gpio(struct b53_device *dev)
> +{
> +     enum bcm47xx_board board = bcm47xx_board_get();
> +
> +     switch (board) {
> +     case BCM47XX_BOARD_LINKSYS_WRT300NV11:
> +     case BCM47XX_BOARD_LINKSYS_WRT310NV1:
> +             return 8;

Rather than hard coding it, could we get it from device tree?

       Andrew

Reply via email to