]> git.sur5r.net Git - u-boot/blobdiff - drivers/mtd/nand/nand_plat.c
Merge http://git.denx.de/u-boot-samsung
[u-boot] / drivers / mtd / nand / nand_plat.c
index b35492b9fc425e096c0ff04384fc8ec029db1a89..335c3e34714cf4bf1d7655dd828846786a3f3db6 100644 (file)
 
 #include <common.h>
 #include <asm/io.h>
+#ifdef NAND_PLAT_GPIO_DEV_READY
+# include <asm/gpio.h>
+# define NAND_PLAT_DEV_READY(chip) gpio_get_value(NAND_PLAT_GPIO_DEV_READY)
+#endif
 
 #include <nand.h>
 
 static void plat_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
 {
-       struct nand_chip *this = mtd->priv;
+       struct nand_chip *this = mtd_to_nand(mtd);
 
        if (cmd == NAND_CMD_NONE)
                return;
@@ -35,7 +39,7 @@ static void plat_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
 #ifdef NAND_PLAT_DEV_READY
 static int plat_dev_ready(struct mtd_info *mtd)
 {
-       return NAND_PLAT_DEV_READY((struct nand_chip *)mtd->priv);
+       return NAND_PLAT_DEV_READY((struct nand_chip *)mtd_to_nand(mtd));
 }
 #else
 # define plat_dev_ready NULL
@@ -43,7 +47,14 @@ static int plat_dev_ready(struct mtd_info *mtd)
 
 int board_nand_init(struct nand_chip *nand)
 {
+#ifdef NAND_PLAT_GPIO_DEV_READY
+       gpio_request(NAND_PLAT_GPIO_DEV_READY, "nand-plat");
+       gpio_direction_input(NAND_PLAT_GPIO_DEV_READY);
+#endif
+
+#ifdef NAND_PLAT_INIT
        NAND_PLAT_INIT();
+#endif
 
        nand->cmd_ctrl = plat_cmd_ctrl;
        nand->dev_ready = plat_dev_ready;