Re: [RFC PATCH 3/9] of: mtd: add NAND timings retrieval support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 08/01/2014 17:30, Rob Herring wrote:
On Wed, Jan 8, 2014 at 8:21 AM, Boris BREZILLON <b.brezillon@xxxxxxxxxxx> wrote:
Add a function to retrieve NAND timings from a given DT node.

Signed-off-by: Boris BREZILLON <b.brezillon@xxxxxxxxxxx>
---
  drivers/of/of_mtd.c    |   47 +++++++++++++++++++++++++++++++++++++++++++++++
  include/linux/of_mtd.h |    9 +++++++++
  2 files changed, 56 insertions(+)

diff --git a/drivers/of/of_mtd.c b/drivers/of/of_mtd.c
index a27ec94..52e07fd 100644
--- a/drivers/of/of_mtd.c
+++ b/drivers/of/of_mtd.c
@@ -83,3 +83,50 @@ bool of_get_nand_on_flash_bbt(struct device_node *np)
         return of_property_read_bool(np, "nand-on-flash-bbt");
  }
  EXPORT_SYMBOL_GPL(of_get_nand_on_flash_bbt);
+
+/**
+ * of_get_nand_timings - Get nand timings for the given device_node
+ * @np:        Pointer to the given device_node
+ *
+ * return 0 on success errno other wise
+ */
+int of_get_nand_timings(struct device_node *np, struct nand_timings *timings)
+{
+       memset(timings, 0, sizeof(*timings));
+
+       of_property_read_u32(np, "tCLS-min", &timings->tCLS_min);
+       of_property_read_u32(np, "tCLH-min", &timings->tCLH_min);
+       of_property_read_u32(np, "tCS-min", &timings->tCS_min);
+       of_property_read_u32(np, "tCH-min", &timings->tCH_min);
+       of_property_read_u32(np, "tWP-min", &timings->tWP_min);
+       of_property_read_u32(np, "tALS-min", &timings->tALS_min);
+       of_property_read_u32(np, "tALH-min", &timings->tALH_min);
+       of_property_read_u32(np, "tDS-min", &timings->tDS_min);
+       of_property_read_u32(np, "tDH-min", &timings->tDH_min);
+       of_property_read_u32(np, "tWC-min", &timings->tWC_min);
+       of_property_read_u32(np, "tWH-min", &timings->tWH_min);
+       of_property_read_u32(np, "tR-max", &timings->tR_max);
+       of_property_read_u32(np, "tAR-min", &timings->tAR_min);
+       of_property_read_u32(np, "tCLR-min", &timings->tCLR_min);
+       of_property_read_u32(np, "tRR-min", &timings->tRR_min);
+       of_property_read_u32(np, "tRP-min", &timings->tRP_min);
+       of_property_read_u32(np, "tWB-max", &timings->tWB_max);
+       of_property_read_u32(np, "tRC-min", &timings->tRC_min);
+       of_property_read_u32(np, "tREA-max", &timings->tREA_max);
+       of_property_read_u32(np, "tRHZ-max", &timings->tRHZ_max);
+       of_property_read_u32(np, "tCHZ-max", &timings->tCHZ_max);
+       of_property_read_u32(np, "tRHOH-min", &timings->tRHOH_min);
+       of_property_read_u32(np, "tRLOH-min", &timings->tRLOH_min);
+       of_property_read_u32(np, "tCOH-min", &timings->tCOH_min);
+       of_property_read_u32(np, "tREH-min", &timings->tREH_min);
+       of_property_read_u32(np, "tWHR-min", &timings->tWHR_min);
+       of_property_read_u32(np, "tRHW-min", &timings->tRHW_min);
+       of_property_read_u32(np, "tIR-min", &timings->tIR_min);
+       of_property_read_u32(np, "tCR-min", &timings->tCR_min);
+       of_property_read_u32(np, "tADL-min", &timings->tADL_min);
+       of_property_read_u32(np, "tRST-max", &timings->tRST_max);
+       of_property_read_u32(np, "tWW-min", &timings->tWW_min);
These all need to be documented.
They're document in PATCH 4/9 (but the description might be a bit
light).
These apply to which compatible
strings?
Actually this could apply to any nand chips.
The NAND Flash Controller driver is then responsible for converting
these values to use it.
They should also be suffixed with the unit the property is in
(i.e. -ms, -us, -ns).

Sure, I'll add the unit (which is -ns BTW).

Thanks.

Best Regards,

Boris

Rob

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux