• Vaibhav Hiremath's avatar
    net: cpsw: Add parent<->child relation support between cpsw and mdio · 1fb19aa7
    Vaibhav Hiremath authored
    CPGMAC SubSystem consist of various sub-modules, like, mdio, cpdma,
    cpsw, etc... These sub-modules are also used in some of Davinci family
    of devices. Now based on requirement, use-case and available technology
    nodes the integration of these sub-modules varies across devices.
    
    So coming back to Linux net driver, currently separate and independent
    platform devices & drivers for CPSW and MDIO is implemented. In case of
    Davinci they both has separate control, from resources perspective,
    like clock.
    
    In case of AM33XX, the resources are shared and only one register
    bit-field is provided to control module/clock enable/disable, makes it
    difficult to handle common resource.
    
    So the solution here implemented in this patch is,
    
    Create parent<->child relationship between both the drivers, making
    CPSW as a parent and MDIO as its child and enumerate all the child nodes
    under CPSW module.
    Both the drivers will function exactly the way it was operating before,
    including runtime-pm functionality. No change is required in MDIO driver
    (for that matter to any child driver).
    
    As this is only supported during DT boot, the parent<->child relationship
    is created and populated in DT execution flow. The only required change
    is inside DTS file, making MDIO as a child to CPSW node.
    Signed-off-by: default avatarVaibhav Hiremath <hvaibhav@ti.com>
    Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
    Acked-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
    Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1fb19aa7
cpsw.c 40.7 KB