Messages in this thread | | | From | Linus Walleij <> | Date | Thu, 19 Jan 2017 00:50:29 +0100 | Subject | Re: [PATCH 05/13] MIPS: jz4740: DTS: Add node for the jz4740-pinctrl driver |
| |
On Wed, Jan 18, 2017 at 12:14 AM, Paul Cercueil <paul@crapouillou.net> wrote:
> For a description of the devicetree node, please read > Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.txt > > Signed-off-by: Paul Cercueil <paul@crapouillou.net>
(...)
> + pinctrl: ingenic-pinctrl@10010000 { > + compatible = "ingenic,jz4740-pinctrl"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges; > + > + gpio-chips { > + #address-cells = <1>; > + #size-cells = <1>; > + ranges; > + > + gpa: gpa { > + reg = <0x10010000 0x100>; > + > + gpio-controller; > + #gpio-cells = <2>; > + > + interrupt-controller; > + #interrupt-cells = <2>; > + > + interrupt-parent = <&intc>; > + interrupts = <28>; > + > + ingenic,pull-ups = <0xffffffff>; > + }; > + > + gpb: gpb { > + reg = <0x10010100 0x100>; > + > + gpio-controller; > + #gpio-cells = <2>; > + > + interrupt-controller; > + #interrupt-cells = <2>; > + > + interrupt-parent = <&intc>; > + interrupts = <27>; > + > + ingenic,pull-ups = <0xffffffff>; > + }; > + > + gpc: gpc { > + reg = <0x10010200 0x100>; > + > + gpio-controller; > + #gpio-cells = <2>; > + > + interrupt-controller; > + #interrupt-cells = <2>; > + > + interrupt-parent = <&intc>; > + interrupts = <26>; > + > + ingenic,pull-ups = <0xffffffff>; > + }; > + > + gpd: gpd { > + reg = <0x10010300 0x100>; > + > + gpio-controller; > + #gpio-cells = <2>; > + > + interrupt-controller; > + #interrupt-cells = <2>; > + > + interrupt-parent = <&intc>; > + interrupts = <25>; > + > + ingenic,pull-ups = <0xdfffffff>; > + }; > + };
Just pull all these down two levels and make them one device each instead of having them inside the pin controller node like this.
Then make a pin controller node separately, it can reference the pin controller by phandles if necessary, and use the standard gpio-ranges property to cross make GPIO and pin control.
It seems you driver is similar to for example the drivers/pinctrl/nomadik/* pin controller.
Look in arch/arm/boot/dts/ste-dbx500.dtsi for examples, NB: I'm not fully using standard bindings in it, because they were not invented at the time.
Yours, Linus Walleij
| |