[U-Boot] [PATCH 3/4] mtd: nand: denali_dt: add clock support

Masahiro Yamada yamada.masahiro at socionext.com
Fri Oct 13 17:21:18 UTC 2017


Enable clock in the probe hook.  The clock rate will be necessary
when setup_data_interface hook is supported.

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

 drivers/mtd/nand/denali.h    |  1 +
 drivers/mtd/nand/denali_dt.c | 12 ++++++++++++
 2 files changed, 13 insertions(+)

diff --git a/drivers/mtd/nand/denali.h b/drivers/mtd/nand/denali.h
index 08db488..f796f0d 100644
--- a/drivers/mtd/nand/denali.h
+++ b/drivers/mtd/nand/denali.h
@@ -435,6 +435,7 @@ struct nand_buf {
 
 struct denali_nand_info {
 	struct nand_chip nand;
+	unsigned long clk_x_rate;	/* bus interface clock rate */
 	int flash_bank; /* currently selected chip */
 	int status;
 	int platform;
diff --git a/drivers/mtd/nand/denali_dt.c b/drivers/mtd/nand/denali_dt.c
index 4afd679..805c066 100644
--- a/drivers/mtd/nand/denali_dt.c
+++ b/drivers/mtd/nand/denali_dt.c
@@ -6,6 +6,7 @@
  */
 
 #include <common.h>
+#include <clk.h>
 #include <dm.h>
 #include <linux/io.h>
 #include <linux/ioport.h>
@@ -52,6 +53,7 @@ static int denali_dt_probe(struct udevice *dev)
 {
 	struct denali_nand_info *denali = dev_get_priv(dev);
 	const struct denali_dt_data *data;
+	struct clk clk;
 	struct resource res;
 	int ret;
 
@@ -73,6 +75,16 @@ static int denali_dt_probe(struct udevice *dev)
 
 	denali->flash_mem = devm_ioremap(dev, res.start, resource_size(&res));
 
+	ret = clk_get_by_index(dev, 0, &clk);
+	if (ret)
+		return ret;
+
+	ret = clk_enable(&clk);
+	if (ret)
+		return ret;
+
+	denali->clk_x_rate = clk_get_rate(&clk);
+
 	return denali_init(denali);
 }
 
-- 
2.7.4



More information about the U-Boot mailing list