[v3,3/5] dt-bindings: mtd: denali_dt: document reset property

Message ID 20191220113155.28177-4-yamada.masahiro@socionext.com
State New
Headers show
Series
  • mtd: rawnand: denali: a bungle of denali patches that is cleanly applicable
Related show

Commit Message

Masahiro Yamada Dec. 20, 2019, 11:31 a.m.
According to the Denali NAND Flash Memory Controller User's Guide,
this IP has two reset signals.

  rst_n:     reset most of FFs in the controller core
  reg_rst_n: reset all FFs in the register interface, and in the
             initialization sequencer

This commit specifies these reset signals.

It is possible to control them separately from the IP point of view
although they might be often tied up together in actual SoC integration.

At least for the upstream platforms, Altera/Intel SOCFPGA and Socionext
UniPhier, the reset controller seems to provide only 1-bit control for
the NAND controller. If it is the case, the resets property should
reference to the same phandles for "nand" and "reg" resets, like this:

    resets = <&nand_rst>, <&nand_rst>;
    reset-names = "nand", "reg";

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Acked-by: Rob Herring <robh@kernel.org>

---

Changes in v3: None
Changes in v2:
  - Split into two patches

 Documentation/devicetree/bindings/mtd/denali-nand.txt | 7 +++++++
 1 file changed, 7 insertions(+)

-- 
2.17.1


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

Comments

Miquel Raynal Jan. 14, 2020, 5:06 p.m. | #1
On Fri, 2019-12-20 at 11:31:53 UTC, Masahiro Yamada wrote:
> According to the Denali NAND Flash Memory Controller User's Guide,

> this IP has two reset signals.

> 

>   rst_n:     reset most of FFs in the controller core

>   reg_rst_n: reset all FFs in the register interface, and in the

>              initialization sequencer

> 

> This commit specifies these reset signals.

> 

> It is possible to control them separately from the IP point of view

> although they might be often tied up together in actual SoC integration.

> 

> At least for the upstream platforms, Altera/Intel SOCFPGA and Socionext

> UniPhier, the reset controller seems to provide only 1-bit control for

> the NAND controller. If it is the case, the resets property should

> reference to the same phandles for "nand" and "reg" resets, like this:

> 

>     resets = <&nand_rst>, <&nand_rst>;

>     reset-names = "nand", "reg";

> 

> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

> Acked-by: Rob Herring <robh@kernel.org>


Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next, thanks.

Miquel

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

Patch

diff --git a/Documentation/devicetree/bindings/mtd/denali-nand.txt b/Documentation/devicetree/bindings/mtd/denali-nand.txt
index b32aed1db46d..98916a84bbf6 100644
--- a/Documentation/devicetree/bindings/mtd/denali-nand.txt
+++ b/Documentation/devicetree/bindings/mtd/denali-nand.txt
@@ -14,6 +14,11 @@  Required properties:
     interface clock, and the ECC circuit clock.
   - clock-names: should contain "nand", "nand_x", "ecc"
 
+Optional properties:
+  - resets: may contain phandles to the controller core reset, the register
+    reset
+  - reset-names: may contain "nand", "reg"
+
 Sub-nodes:
   Sub-nodes represent available NAND chips.
 
@@ -46,6 +51,8 @@  nand: nand@ff900000 {
 	reg-names = "nand_data", "denali_reg";
 	clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>;
 	clock-names = "nand", "nand_x", "ecc";
+	resets = <&nand_rst>, <&nand_reg_rst>;
+	reset-names = "nand", "reg";
 	interrupts = <0 144 4>;
 
 	nand@0 {