Skip to content

Commit

Permalink
mtd: lpc32xx_slc: Make wp gpio optional
Browse files Browse the repository at this point in the history
This patch supports missing wp gpio.

Signed-off-by: Alexandre Pereira da Silva <aletes.xgr@gmail.com>
Signed-off-by: Roland Stigge <stigge@antcom.de>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
  • Loading branch information
Alexandre Pereira da Silva authored and David Woodhouse committed Jul 6, 2012
1 parent 1c7b874 commit df63fe7
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions drivers/mtd/nand/lpc32xx_slc.c
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ struct lpc32xx_nand_cfg_slc {
uint32_t rhold;
uint32_t rsetup;
bool use_bbt;
unsigned wp_gpio;
int wp_gpio;
struct mtd_partition *parts;
unsigned num_parts;
};
Expand Down Expand Up @@ -295,15 +295,17 @@ static int lpc32xx_nand_device_ready(struct mtd_info *mtd)
*/
static void lpc32xx_wp_enable(struct lpc32xx_nand_host *host)
{
gpio_set_value(host->ncfg->wp_gpio, 0);
if (gpio_is_valid(host->ncfg->wp_gpio))
gpio_set_value(host->ncfg->wp_gpio, 0);
}

/*
* Disable NAND write protect
*/
static void lpc32xx_wp_disable(struct lpc32xx_nand_host *host)
{
gpio_set_value(host->ncfg->wp_gpio, 1);
if (gpio_is_valid(host->ncfg->wp_gpio))
gpio_set_value(host->ncfg->wp_gpio, 1);
}

/*
Expand Down Expand Up @@ -819,7 +821,8 @@ static int __devinit lpc32xx_nand_probe(struct platform_device *pdev)
dev_err(&pdev->dev, "Missing platform data\n");
return -ENOENT;
}
if (gpio_request(host->ncfg->wp_gpio, "NAND WP")) {
if (gpio_is_valid(host->ncfg->wp_gpio) &&
gpio_request(host->ncfg->wp_gpio, "NAND WP")) {
dev_err(&pdev->dev, "GPIO not available\n");
return -EBUSY;
}
Expand Down

0 comments on commit df63fe7

Please sign in to comment.