Hi Sergei, On Tue, Jun 16, 2020 at 10:01 PM Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx> wrote: > Renesas Reduced Pin Count Interface (RPC-IF) allows a SPI flash or > HyperFlash connected to the SoC to be accessed via the external address > space read mode or the manual mode. > > Document the device tree bindings for the Renesas RPC-IF found in the R-Car > gen3 SoCs. > > Based on the original patch by Mason Yang <masonccyang@xxxxxxxxxxx>. > > Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx> Thanks for your patch! > --- /dev/null > +++ linux/Documentation/devicetree/bindings/memory-controllers/renesas,rpc-if.yaml > @@ -0,0 +1,88 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/memory-controllers/renesas,rpc-if.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Renesas Reduced Pin Count Interface (RPC-IF) > + > +maintainers: > + - Sergei Shtylyov <sergei.shtylyov@xxxxxxxxx> > + > +description: | > + Renesas RPC-IF allows a SPI flash or HyperFlash connected to the SoC to > + be accessed via the external address space read mode or the manual mode. > + > + The flash chip itself should be represented by a subnode of the RPC-IF node. > + The flash interface is selected based on the "compatible" property of this > + subnode: > + - if it contains "jedec,spi-nor", then SPI is used; > + - if it contains "cfi-flash", then HyperFlash is used. > +patternProperties: > + "flash@[0-9a-f]+$": > + type: object > + properties: > + compatible: > + enum: > + - cfi-flash > + - jedec,spi-nor The above does not allow specifying e.g. compatible = "spansion,s25fs512s", "jedec,spi-nor"; arch/arm64/boot/dts/renesas/r8a77970-eagle.dt.yaml: spi@ee200000: flash@0:compatible: Additional items are not allowed ('jedec,spi-nor' was unexpected) arch/arm64/boot/dts/renesas/r8a77970-eagle.dt.yaml: spi@ee200000: flash@0:compatible:0: 'spansion,s25fs512s' is not one of ['cfi-flash', 'jedec,spi-nor'] > + > +examples: > + - | > + #include <dt-bindings/clock/renesas-cpg-mssr.h> > + #include <dt-bindings/power/r8a77995-sysc.h> > + > + spi@ee200000 { > + compatible = "renesas,r8a77995-rpc-if", "renesas,rcar-gen3-rpc-if"; > + reg = <0xee200000 0x200>, > + <0x08000000 0x4000000>, > + <0xee208000 0x100>; > + reg-names = "regs", "dirmap", "wbuf"; > + clocks = <&cpg CPG_MOD 917>; > + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; > + resets = <&cpg 917>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + flash@0 { > + compatible = "jedec,spi-nor"; ... which you nicely circumvented in the example ;-) > + reg = <0>; > + spi-max-frequency = <40000000>; > + spi-tx-bus-width = <1>; > + spi-rx-bus-width = <1>; > + }; > + }; Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds