Skip to content

Commit

Permalink
ARM: mach-mxs/mx28evk: Only register devices if their GPIO requests s…
Browse files Browse the repository at this point in the history
…ucceeded

Currently framebuffer and MMC devices are registered even if their associated
GPIO pins fail to be requested.

Change the logic so that the registration of such devices only occurs if their
GPIO requests succeeded.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
  • Loading branch information
Fabio Estevam authored and Sascha Hauer committed Sep 20, 2011
1 parent 25c038e commit a35b914
Showing 1 changed file with 11 additions and 12 deletions.
23 changes: 11 additions & 12 deletions arch/arm/mach-mxs/mach-mx28evk.c
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,11 @@ static struct mxs_mmc_platform_data mx28evk_mmc_pdata[] __initdata = {
},
};

static struct gpio mx28evk_lcd_gpios[] = {
{ MX28EVK_LCD_ENABLE, GPIOF_OUT_INIT_HIGH, "lcd-enable" },
{ MX28EVK_BL_ENABLE, GPIOF_OUT_INIT_HIGH, "bl-enable" },
};

static void __init mx28evk_init(void)
{
int ret;
Expand All @@ -377,19 +382,12 @@ static void __init mx28evk_init(void)
mx28_add_flexcan(1, &mx28evk_flexcan_pdata[1]);
}

ret = gpio_request_one(MX28EVK_LCD_ENABLE, GPIOF_DIR_OUT, "lcd-enable");
ret = gpio_request_array(mx28evk_lcd_gpios,
ARRAY_SIZE(mx28evk_lcd_gpios));
if (ret)
pr_warn("failed to request gpio lcd-enable: %d\n", ret);
pr_warn("failed to request gpio pins for lcd: %d\n", ret);
else
gpio_set_value(MX28EVK_LCD_ENABLE, 1);

ret = gpio_request_one(MX28EVK_BL_ENABLE, GPIOF_DIR_OUT, "bl-enable");
if (ret)
pr_warn("failed to request gpio bl-enable: %d\n", ret);
else
gpio_set_value(MX28EVK_BL_ENABLE, 1);

mx28_add_mxsfb(&mx28evk_mxsfb_pdata);
mx28_add_mxsfb(&mx28evk_mxsfb_pdata);

/* power on mmc slot by writing 0 to the gpio */
ret = gpio_request_one(MX28EVK_MMC0_SLOT_POWER, GPIOF_OUT_INIT_LOW,
Expand All @@ -402,7 +400,8 @@ static void __init mx28evk_init(void)
"mmc1-slot-power");
if (ret)
pr_warn("failed to request gpio mmc1-slot-power: %d\n", ret);
mx28_add_mxs_mmc(1, &mx28evk_mmc_pdata[1]);
else
mx28_add_mxs_mmc(1, &mx28evk_mmc_pdata[1]);

gpio_led_register_device(0, &mx28evk_led_data);
}
Expand Down

0 comments on commit a35b914

Please sign in to comment.