• Grygorii Strashko's avatar
    drivers: net: davinci_mdio: implement pm runtime auto mode · 8ea63bba
    Grygorii Strashko authored
    Davinci MDIO is always used as slave device which services
    read/write requests from MDIO/PHY core. It doesn't use IRQ also.
    
    As result, It's possible to relax PM runtime constraints for Davinci
    MDIO and enable it on demand, instead of powering it during probe
    and powering off during removal.
    
    Hence, implement PM runtime autosuspend for Davinci MDIO, but keep it
    disabled by default, because Davinci MDIO is integrated in big set of
    TI devices and not all of them expected to work corectly with RPM
     autosuspend enabled:
    - expected to work on SoCs where MDIO is part of TI CPSW
    (cpsw.c DRA7/am57x, am437x, am335x, dm814x)
    - not verified on Keystone 2 and other SoCs where MDIO is used with TI EMAC IP
    (davinci_emac.c:  dm6467-emac, am3517-emac, dm816-emac).
    
    Davinci MDIO RPM autosuspend can be enabled through sysfs:
     echo 100 > /sys/devices/../48484000.ethernet/48485000.mdio/power/autosuspend_delay_ms
    Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8ea63bba
davinci_mdio.c 12.8 KB