Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c509aefd authored by Roger Quadros's avatar Roger Quadros
Browse files

mtd: nand: omap: Use gpmc_omap_get_nand_ops() to get NAND registers



Deprecate nand register passing via platform data and use
gpmc_omap_get_nand_ops() instead.

Signed-off-by: default avatarRoger Quadros <rogerq@ti.com>
Acked-by: default avatarBrian Norris <computersforpeace@gmail.com>
Acked-by: default avatarTony Lindgren <tony@atomide.com>
parent 384258f2
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -121,8 +121,6 @@ int gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data,
	if (err < 0)
		goto out_free_cs;

	gpmc_update_nand_reg(&gpmc_nand_data->reg, gpmc_nand_data->cs);

	if (!gpmc_hwecc_bch_capable(gpmc_nand_data->ecc_opt)) {
		pr_err("omap2-nand: Unsupported NAND ECC scheme selected\n");
		err = -EINVAL;
+8 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include <linux/mtd/nand_bch.h>
#include <linux/platform_data/elm.h>

#include <linux/omap-gpmc.h>
#include <linux/platform_data/mtd-nand-omap2.h>

#define	DRIVER_NAME	"omap2-nand"
@@ -168,7 +169,9 @@ struct omap_nand_info {
	} iomode;
	u_char				*buf;
	int					buf_len;
	/* Interface to GPMC */
	struct gpmc_nand_regs		reg;
	struct gpmc_nand_ops		*ops;
	/* generated at runtime depending on ECC algorithm and layout selected */
	struct nand_ecclayout		oobinfo;
	/* fields specific for BCHx_HW ECC scheme */
@@ -1665,9 +1668,13 @@ static int omap_nand_probe(struct platform_device *pdev)

	platform_set_drvdata(pdev, info);

	info->ops = gpmc_omap_get_nand_ops(&info->reg, info->gpmc_cs);
	if (!info->ops) {
		dev_err(&pdev->dev, "Failed to get GPMC->NAND interface\n");
		return -ENODEV;
	}
	info->pdev		= pdev;
	info->gpmc_cs		= pdata->cs;
	info->reg		= pdata->reg;
	info->of_node		= pdata->of_node;
	info->ecc_opt		= pdata->ecc_opt;
	nand_chip		= &info->nand;
+3 −1
Original line number Diff line number Diff line
@@ -75,10 +75,12 @@ struct omap_nand_platform_data {
	enum nand_io		xfer_type;
	int			devsize;
	enum omap_ecc           ecc_opt;
	struct gpmc_nand_regs	reg;

	/* for passing the partitions */
	struct device_node	*of_node;
	struct device_node	*elm_of_node;

	/* deprecated */
	struct gpmc_nand_regs	reg;
};
#endif