• Linus Walleij's avatar
    net: smsc911x: request and deassert optional RESET GPIO · dd0cb7db
    Linus Walleij authored
    On some systems (such as the Qualcomm APQ8060 Dragonboard) the
    RESET signal of the SMSC911x is not pulled up by a resistor (or
    the internal pull-up that will pull it up if the pin is not
    even connected) but instead connected to a GPIO line, so that
    the operating system must explicitly deassert RESET before use.
    
    Support this in the SMSC911x driver so this ethernet connector
    can be used on such targets.
    
    Notice that we request the line to go logical low (deassert)
    whilst the line on the actual component is active low. This
    is managed in the respective hardware description when
    specifying the GPIO line with e.g. device tree or ACPI. With
    device tree it looks like this in one case:
    
      reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
    
    Which means that logically requesting the RESET line to be
    deasserted will result in the line being driven high, taking
    the device out of reset.
    
    Cc: Jeremy Linton <jeremy.linton@arm.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Reviewed-by: default avatarJeremy Linton <jeremy.linton@arm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    dd0cb7db
smsc911x.c 69.6 KB