Subject: Re: [PATCH 6/7] dt-bindings: net: bgmac: add bindings documentation for bgmac

From: Arnd Bergmann <[email-masked]>
Date: Tue, 05 Jul 2016 15:37:20 +0200

On Monday, July 4, 2016 9:34:35 AM CEST Ray Jui wrote:
> On 7/1/2016 8:42 AM, Arnd Bergmann wrote:
> > On Friday, July 1, 2016 11:17:25 AM CEST Jon Mason wrote:
> >> On Fri, Jul 1, 2016 at 5:46 AM, Arnd Bergmann <[email-masked]> wrote:
> >>> On Thursday, June 30, 2016 6:59:13 PM CEST Jon Mason wrote:
> >>>> +
> >>>> +Required properties:
> >>>> + - compatible: "brcm,bgmac-nsp"
> >>>> + - reg:                Address and length of the GMAC registers,
> >>>> +               Address and length of the GMAC IDM registers
> >>>> + - reg-names:  Names of the registers.  Must have both "gmac_base" and
> >>>> +               "idm_base"
> >>>> + - interrupts: Interrupt number
> >>>> +
> >>>
> >>>
> >>> "brcm,bgmac-nsp" sounds a bit too general. As I understand, this is a family
> >>> of SoCs that might not all have the exact same implementation of this
> >>> ethernet device, as we can see from the long lookup table in bgmac_probe().
> >>
> >> The Broadcom iProc family of SoCs contains:
> >> Northstar
> >> Northstar Plus
> >> Cygnus
> >> Northstar 2
> >> a few SoCs that are under development
> >> and a number of ethernet switches (which might never be officially supported)
> >>
> >> Each one of these SoCs could have a different revision of the gmac IP
> >> block, but they should be uniform within each SoC (though there might
> >> be a A0/B0 change necessary).  The Northstar Plus product family has a
> >> number of different implementations, but the SoC is unchanged.  So, I
> >> think this might be too specific, when we really need a general compat
> >> string.
> >
> > Ok, thanks for the clarification, that sounds good enough.
> >
> >> Broadcom has a history of sharing IP blocks amongst the different
> >> divisions.  So, this driver might be used on other SoC families (as it
> >> apparently has been done in the past, based on the code you
> >> reference).  I do not know of any way to know what legacy, non-iProc
> >> chips have used this IP block.  I can make this "brcm,iproc-bgmac",
> >> and add "brcm,iproc-nsp-bgmac" as an alternative compatible string in
> >> this file (which I believe you are suggesting), but there might be
> >> non-iProc SoCs that use this driver.  Is this acceptable?
> >
> > If it is also used outside of iProc, then I see no need for the
> > extra compatible string, although it would not do any harm either.
> >
> > Ideally we should name it whatever the name for this IP block is
> > inside of the company, with "nsp" as the designation for the variant
> > in Northstar Plus. A lot of Broadcom IP blocks themselves seem to have
> > some four-digit or five-digit number, maybe this one does too?
> >
> >       Arnd
> >
> 
> Note this IP block has an official IP controller name of "amac" from the 
> ASIC team.

Ok, then I'd suggest making the compatible string here

	compatible = "brcm,nsp-amac", "brcm,amac";

or even better if you have a version number associated with it, make that

	compatible = "brcm,nsp-amac", "brcm,amac-1.234", "brcm,amac";

replacing 1.234 with the actual version of course.

	Arnd