[PATCH v6 04/15] dt-bindings: add BCM6328 pincontroller binding documentation

Linus Walleij linus.walleij at linaro.org
Thu Mar 11 01:22:29 GMT 2021


On Wed, Mar 10, 2021 at 7:03 PM Álvaro Fernández Rojas
<noltari at gmail.com> wrote:
> > El 10 mar 2021, a las 18:45, Rob Herring <robh+dt at kernel.org> escribió:

> >> +      reg = <0x10000080 0x80>;
> >> +
> >> +      pinctrl: pinctrl {
> >> +        compatible = "brcm,bcm6328-pinctrl";
> >> +
> >> +        gpio {
> >> +          compatible = "brcm,bcm6328-gpio";
> >
> > I'm still trying to understand why you need 3 levels of nodes here?
> > The gpio controller contains a pin controller plus other undefined
> > functions (because of 'syscon') and the pin controller contains a gpio
> > controller?
>
> In previous versions the gpio controller was registered along with the pin controller, but @Linus requested me to register the gpio pin controller ranges through device tree by using gpio-ranges and I decided to use this approach, which was already used by other pin controllers.
> However, there aren’t any pinctrl drivers using gpio-regmap, so this is kind of new…

I think the crucial point is that these hardwares (all patches in the series)
is very similar and some contain several GPIO blocks rather than just
one.

The structure needs to be seen as a common pattern. We are doing this
because it gives a common structure to all BCM SoCs in this
family, which is nice.

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list