Changing from of_* to device_* interface, then we can also extract
the properties from ACPI tables as well as from DT.

Signed-off-by: Kefeng Wang <wangkefeng.w...@huawei.com>
---

- APCI will be supported in hisi504_nand.c, and it will use nand_scan_ident().

 drivers/mtd/nand/nand_base.c | 54 ++++++++++++++++++++++----------------------
 1 file changed, 27 insertions(+), 27 deletions(-)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index c6c18b8..27a0947 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -46,7 +46,7 @@
 #include <linux/bitops.h>
 #include <linux/io.h>
 #include <linux/mtd/partitions.h>
-#include <linux/of.h>
+#include <linux/property.h>
 
 static int nand_get_device(struct mtd_info *mtd, int new_state);
 
@@ -4209,12 +4209,12 @@ static int nand_detect(struct nand_chip *chip, struct 
nand_flash_dev *type)
        [NAND_ECC_ON_DIE]       = "on-die",
 };
 
-static int of_get_nand_ecc_mode(struct device_node *np)
+static int device_get_nand_ecc_mode(struct device *dev)
 {
        const char *pm;
        int err, i;
 
-       err = of_property_read_string(np, "nand-ecc-mode", &pm);
+       err = device_property_read_string(dev, "nand-ecc-mode", &pm);
        if (err < 0)
                return err;
 
@@ -4238,12 +4238,12 @@ static int of_get_nand_ecc_mode(struct device_node *np)
        [NAND_ECC_BCH]          = "bch",
 };
 
-static int of_get_nand_ecc_algo(struct device_node *np)
+static int device_get_nand_ecc_algo(struct device *dev)
 {
        const char *pm;
        int err, i;
 
-       err = of_property_read_string(np, "nand-ecc-algo", &pm);
+       err = device_property_read_string(dev, "nand-ecc-algo", &pm);
        if (!err) {
                for (i = NAND_ECC_HAMMING; i < ARRAY_SIZE(nand_ecc_algos); i++)
                        if (!strcasecmp(pm, nand_ecc_algos[i]))
@@ -4255,7 +4255,7 @@ static int of_get_nand_ecc_algo(struct device_node *np)
         * For backward compatibility we also read "nand-ecc-mode" checking
         * for some obsoleted values that were specifying ECC algorithm.
         */
-       err = of_property_read_string(np, "nand-ecc-mode", &pm);
+       err = device_property_read_string(dev, "nand-ecc-mode", &pm);
        if (err < 0)
                return err;
 
@@ -4267,29 +4267,29 @@ static int of_get_nand_ecc_algo(struct device_node *np)
        return -ENODEV;
 }
 
-static int of_get_nand_ecc_step_size(struct device_node *np)
+static int device_get_nand_ecc_step_size(struct device *dev)
 {
        int ret;
        u32 val;
 
-       ret = of_property_read_u32(np, "nand-ecc-step-size", &val);
+       ret = device_property_read_u32(dev, "nand-ecc-step-size", &val);
        return ret ? ret : val;
 }
 
-static int of_get_nand_ecc_strength(struct device_node *np)
+static int device_get_nand_ecc_strength(struct device *dev)
 {
        int ret;
        u32 val;
 
-       ret = of_property_read_u32(np, "nand-ecc-strength", &val);
+       ret = device_property_read_u32(dev, "nand-ecc-strength", &val);
        return ret ? ret : val;
 }
 
-static int of_get_nand_bus_width(struct device_node *np)
+static int device_get_nand_bus_width(struct device *dev)
 {
        u32 val;
 
-       if (of_property_read_u32(np, "nand-bus-width", &val))
+       if (device_property_read_u32(dev, "nand-bus-width", &val))
                return 8;
 
        switch (val) {
@@ -4301,29 +4301,28 @@ static int of_get_nand_bus_width(struct device_node *np)
        }
 }
 
-static bool of_get_nand_on_flash_bbt(struct device_node *np)
+static bool device_get_nand_on_flash_bbt(struct device *dev)
 {
-       return of_property_read_bool(np, "nand-on-flash-bbt");
+       return device_property_read_bool(dev, "nand-on-flash-bbt");
 }
 
-static int nand_dt_init(struct nand_chip *chip)
+static int nand_chip_init(struct nand_chip *chip, struct device *dev)
 {
-       struct device_node *dn = nand_get_flash_node(chip);
        int ecc_mode, ecc_algo, ecc_strength, ecc_step;
 
-       if (!dn)
+       if (!dev)
                return 0;
 
-       if (of_get_nand_bus_width(dn) == 16)
+       if (device_get_nand_bus_width(dev) == 16)
                chip->options |= NAND_BUSWIDTH_16;
 
-       if (of_get_nand_on_flash_bbt(dn))
+       if (device_get_nand_on_flash_bbt(dev))
                chip->bbt_options |= NAND_BBT_USE_FLASH;
 
-       ecc_mode = of_get_nand_ecc_mode(dn);
-       ecc_algo = of_get_nand_ecc_algo(dn);
-       ecc_strength = of_get_nand_ecc_strength(dn);
-       ecc_step = of_get_nand_ecc_step_size(dn);
+       ecc_mode = device_get_nand_ecc_mode(dev);
+       ecc_algo = device_get_nand_ecc_algo(dev);
+       ecc_strength = device_get_nand_ecc_strength(dev);
+       ecc_step = device_get_nand_ecc_step_size(dev);
 
        if (ecc_mode >= 0)
                chip->ecc.mode = ecc_mode;
@@ -4337,7 +4336,7 @@ static int nand_dt_init(struct nand_chip *chip)
        if (ecc_step > 0)
                chip->ecc.size = ecc_step;
 
-       if (of_property_read_bool(dn, "nand-ecc-maximize"))
+       if (device_property_read_bool(dev, "nand-ecc-maximize"))
                chip->ecc.options |= NAND_ECC_MAXIMIZE;
 
        return 0;
@@ -4358,14 +4357,15 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips,
 {
        int i, nand_maf_id, nand_dev_id;
        struct nand_chip *chip = mtd_to_nand(mtd);
+       struct device *dev = mtd->dev.parent;
        int ret;
 
-       ret = nand_dt_init(chip);
+       ret = nand_chip_init(chip, dev);
        if (ret)
                return ret;
 
-       if (!mtd->name && mtd->dev.parent)
-               mtd->name = dev_name(mtd->dev.parent);
+       if (!mtd->name && dev)
+               mtd->name = dev_name(dev);
 
        if ((!chip->cmdfunc || !chip->select_chip) && !chip->cmd_ctrl) {
                /*
-- 
1.8.3.1

Reply via email to