Re: [PATCH v12 3/3] dt-bindings: mfd: Document Renesas R-Car Gen3 RPC-IF MFD bindings
From: masonccyang
Date: Mon May 20 2019 - 03:27:04 EST
Hi Sergei,
> >>> -------------------------------------------------------------->
> >>>
> >>> Renesas R-Car Gen3 RPC-IF controller Device Tree Bindings
> >>> ---------------------------------------------------------
> >>>
> >>> RPC-IF supports both SPI NOR and HyperFlash (CFI-compliant flash)
> >>>
> >>> Required properties:
> >>> - compatible: should be an SoC-specific compatible value, followed
> > by
> >>> "renesas,rcar-gen3-rpc" as a fallback.
> >>> supported SoC-specific values are:
> >>> "renesas,r8a77995-rpc" (R-Car D3)
> >>> - reg: should contain three register areas:
> >>> first for the base address of RPC-IF registers,
> >>
> >> I'd drop "the base address" here.
> >
> > okay.
> >
> >>> second for the direct mapping read mode and
> >>> third for the write buffer area.
> >>> - reg-names: should contain "regs", "dirmap" and "wbuf"
> >>> - clocks: should contain 1 entries for the module's clock
> >>> - clock-names: should contain "rpc"
> >>
> >> I suspect we'd need the RPC/RPCD2 clocks mentioned as well (not
sure
> > yet)...
> >
> > Need it ?
>
> You seem to call clk_get_rate() on the module clock, I doubt that's
> correct topologically...
I think it's correct but just like Geert mentioned that there is no any
patch
in drivers/clk/renesas/r8a77995-cpg-mssr.c adding RPC-related clocks.
I patched dt-bindings/clock/r8a77995-cpg-mssr.h for some simple testing
-#define R8A77995_CLK_RPC 29
-#define R8A77995_CLK_RPCD2 30
+#define R8A77995_CLK_RPC 31
+#define R8A77995_CLK_RPCD2 32
by clk_prepare_enable() & clk_disable_unprepare() with CPG_MOD 917
on D3 draak board, it is working fine.
> >>
> >>> - SPI mode:git
> >>>
> >>> rpc: rpc-if@ee200000 {
> >>
> >> The node names should be generic, based on the device class. And
in
> > this
> >> case I'd like to use "spi@ee200000" as otherwise dtc keeps bitching
like
> > below:
> >
> > okay, patch to
> >
> > rpc_if: spi@<...>
>
> That, or just keep the node label.
okay.
> >>> - HF mode:
> >>> rpc: rpc-if@ee200000 {
> >>
> >> Again, spi@<...>.
> >
> > what about rpc_if: hf@<...>
>
> Can't change the node name, as it's declared in the .dtsi files, not
*.dts
> ones. And "spi" works for the HF case as well -- no complaints from dtc.
:-)
okay,
Patch DTS to
===============================================================>
+Renesas R-Car Gen3 RPC-IF controller Device Tree Bindings
+---------------------------------------------------------
+
+RPC-IF supports both SPI NOR and HyperFlash (CFI-compliant flash)
+
+Required properties:
+- compatible: should be an SoC-specific compatible value, followed by
+ "renesas,rcar-gen3-rpc" as a fallback.
+ supported SoC-specific values are:
+ "renesas,r8a77995-rpc" (R-Car
D3)
+- reg: should contain three register areas:
+ first for RPC-IF registers,
+ second for the direct mapping read mode and
+ third for the write buffer area.
+- reg-names: should contain "regs", "dirmap" and "wbuf"
+- clocks: should contain 1 entries for the module's clock
+- clock-names: should contain "rpc"
+- power-domains: should contain system-controller(sysc) for
power-domain-cell
+- resets: should contain clock pulse generator(cpg) for reset-cell,
+ power-domain-cell and clock-cell
+- #address-cells: should be 1
+- #size-cells: should be 0
+
+Example:
+- SPI mode:
+
+ rpc: spi@ee200000 {
+ compatible = "renesas,r8a77995-rpc",
"renesas,rcar-gen3-rpc";
+ reg = <0 0xee200000 0 0x200>, <0
0x08000000 0 0x4000000>,
+ <0 0xee208000 0 0x100>;
+ reg-names = "regs", "dirmap", "wbuf";
+ clocks = <&cpg CPG_MOD 917>;
+ clock-names = "rpc";
+ power-domains = <&sysc
R8A77995_PD_ALWAYS_ON>;
+ resets = <&cpg 917>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ flash@0 {
+ compatible =
"jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency =
<40000000>;
+ spi-tx-bus-width = <1>;
+ spi-rx-bus-width = <1>;
+ };
+ };
+
+- HF mode:
+ rpc: spi@ee200000 {
+ compatible = "renesas,r8a77995-rpc",
"renesas,rcar-gen3-rpc";
+ reg = <0 0xee200000 0 0x200>, <0
0x08000000 0 0x4000000>,
+ <0 0xee208000 0 0x100>;
+ reg-names = "regs", "dirmap", "wbuf";
+ clocks = <&cpg CPG_MOD 917>;
+ clock-names = "rpc";
+ power-domains = <&sysc
R8A77995_PD_ALWAYS_ON>;
+ resets = <&cpg 917>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ flash@0 {
+ compatible =
"cypress,hyperflash", "cfi-flash";
+ reg = <0>;
+ };
+ };
===============================================================<
thanks & best regards,
Mason
CONFIDENTIALITY NOTE:
This e-mail and any attachments may contain confidential information
and/or personal data, which is protected by applicable laws. Please be
reminded that duplication, disclosure, distribution, or use of this e-mail
(and/or its attachments) or any part thereof is prohibited. If you receive
this e-mail in error, please notify us immediately and delete this mail as
well as its attachment(s) from your system. In addition, please be
informed that collection, processing, and/or use of personal data is
prohibited unless expressly permitted by personal data protection laws.
Thank you for your attention and cooperation.
Macronix International Co., Ltd.
=====================================================================
============================================================================
CONFIDENTIALITY NOTE:
This e-mail and any attachments may contain confidential information and/or personal data, which is protected by applicable laws. Please be reminded that duplication, disclosure, distribution, or use of this e-mail (and/or its attachments) or any part thereof is prohibited. If you receive this e-mail in error, please notify us immediately and delete this mail as well as its attachment(s) from your system. In addition, please be informed that collection, processing, and/or use of personal data is prohibited unless expressly permitted by personal data protection laws. Thank you for your attention and cooperation.
Macronix International Co., Ltd.
=====================================================================