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

Reply via email to