On 06/10/2016 05:11 AM, Andrew Lunn wrote: >> +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.
OK. > >> + 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? Difficult for now, this is for in-tree MIPS-based platforms under arch/mips/bcm47xx, which are using SSB/platform data. -- Florian