> +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