Re: [RFC 0/7] net: ethernet: bgmac: Add platform device support

2016-06-29 Thread Florian Fainelli
On 06/28/2016 12:34 PM, Jon Mason wrote:
> I'm sending out this RFC to see if this is the direction the maintainers
> would like to go to add support for other, non-bcma iProc SoC's to the
> bgmac driver.  Specifically, we are interested in adding support for the
> NSP, Cygnus, and NS2 families (with more possible down the road).
> 
> To support non-bcma enabled SoCs, we need to add the standard device
> tree "platform device" support.  Unfortunately, this driver is very
> tighly coupled with the bcma bus and much unwinding is needed.  I tried
> to break this up into a number of patches to make it more obvious what
> was being done to add platform device support.  I was able to verify
> that the bcma code still works using a 53012K board (NS SoC), and that
> the platform code works using a 58625K board (NSP SoC).
> 
> It is worth noting that the phy logic present in the driver needs to be
> moved to drivers/phy.  However, I was not able to fully decouple that
> code from the bgmac driver.  I was able to move it into a separate C
> file, with only 2 function calls needed to create and destroy the mii
> bus.  Someone with more knowledge of this and HW to test it needs to do
> it properly.  This would natually dovetail into creating an interface
> which the NSP bgmac can use for the external MDIO Phy to properly
> connect (instead of using the fixed phy).

This looks very good to me, and I just tested this with a BCM58625 w/
b53-srab on top of that, and everything works nicely:

Tested-by: Florian Fainelli 
-- 
Florian


[RFC 0/7] net: ethernet: bgmac: Add platform device support

2016-06-28 Thread Jon Mason
I'm sending out this RFC to see if this is the direction the maintainers
would like to go to add support for other, non-bcma iProc SoC's to the
bgmac driver.  Specifically, we are interested in adding support for the
NSP, Cygnus, and NS2 families (with more possible down the road).

To support non-bcma enabled SoCs, we need to add the standard device
tree "platform device" support.  Unfortunately, this driver is very
tighly coupled with the bcma bus and much unwinding is needed.  I tried
to break this up into a number of patches to make it more obvious what
was being done to add platform device support.  I was able to verify
that the bcma code still works using a 53012K board (NS SoC), and that
the platform code works using a 58625K board (NSP SoC).

It is worth noting that the phy logic present in the driver needs to be
moved to drivers/phy.  However, I was not able to fully decouple that
code from the bgmac driver.  I was able to move it into a separate C
file, with only 2 function calls needed to create and destroy the mii
bus.  Someone with more knowledge of this and HW to test it needs to do
it properly.  This would natually dovetail into creating an interface
which the NSP bgmac can use for the external MDIO Phy to properly
connect (instead of using the fixed phy).

Thanks,
Jon


Jon Mason (7):
  net: ethernet: bgmac: change bgmac_* prints to dev_* prints
  net: ethernet: bgmac: add dma_dev pointer
  net: ethernet: bgmac: move BCMA MDIO Phy code into a separate file
  net: ethernet: bgmac: convert to feature flags
  net: ethernet: bgmac: Add platform device support
  dt-bindings: net: bgmac: add bindings documentation for bgmac
  ARM: dts: NSP: Add bgmac entries

 .../devicetree/bindings/net/brcm,bgmac-enet.txt|  21 +
 arch/arm/boot/dts/bcm-nsp.dtsi |  16 +
 arch/arm/boot/dts/bcm958625k.dts   |   8 +
 drivers/net/ethernet/broadcom/Kconfig  |  23 +-
 drivers/net/ethernet/broadcom/Makefile |   2 +
 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c| 264 +
 drivers/net/ethernet/broadcom/bgmac-bcma.c | 315 ++
 drivers/net/ethernet/broadcom/bgmac-platform.c | 208 +++
 drivers/net/ethernet/broadcom/bgmac.c  | 658 +
 drivers/net/ethernet/broadcom/bgmac.h  | 112 +++-
 10 files changed,  insertions(+), 516 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/brcm,bgmac-enet.txt
 create mode 100644 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c
 create mode 100644 drivers/net/ethernet/broadcom/bgmac-bcma.c
 create mode 100644 drivers/net/ethernet/broadcom/bgmac-platform.c

-- 
1.9.1