mbox series

[v5,0/2] Add Renesas RPC-IF support

Message ID 9969c8a1-e6be-38a9-ced5-ce8c5ff07046@cogentembedded.com
Headers show
Series Add Renesas RPC-IF support | expand

Message

Sergei Shtylyov June 16, 2020, 8 p.m. UTC
Hello!

Here's a set of 2 patches against Linus' repo. 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.
The memory controller driver for RPC-IF registers either SPI or HyperFLash
subdevice, depending on the contents of the device tree subnode; it also
provides the abstract "back end" API that can be used by the "front end"
SPI/MTD drivers to talk to the real hardware...

Based on the original patch by Mason Yang <masonccyang@mxic.com.tw>.

[1/2] dt-bindings: memory: document Renesas RPC-IF bindings
[2/2] memory: add Renesas RPC-IF driver

MBR, Sergei

Comments

Geert Uytterhoeven July 7, 2020, 9:33 a.m. UTC | #1
Hi Sergei,

On Tue, Jun 16, 2020 at 10:01 PM Sergei Shtylyov
<sergei.shtylyov@cogentembedded.com> 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@mxic.com.tw>.

>

> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>


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@gmail.com>

> +

> +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@linux-m68k.org

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