Commit a35b9147 authored by Fabio Estevam's avatar Fabio Estevam Committed by Sascha Hauer

ARM: mach-mxs/mx28evk: Only register devices if their GPIO requests succeeded

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: default avatarFabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
parent 25c038ee
...@@ -351,6 +351,11 @@ static struct mxs_mmc_platform_data mx28evk_mmc_pdata[] __initdata = { ...@@ -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) static void __init mx28evk_init(void)
{ {
int ret; int ret;
...@@ -377,19 +382,12 @@ static void __init mx28evk_init(void) ...@@ -377,19 +382,12 @@ static void __init mx28evk_init(void)
mx28_add_flexcan(1, &mx28evk_flexcan_pdata[1]); 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) 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 else
gpio_set_value(MX28EVK_LCD_ENABLE, 1); mx28_add_mxsfb(&mx28evk_mxsfb_pdata);
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);
/* power on mmc slot by writing 0 to the gpio */ /* power on mmc slot by writing 0 to the gpio */
ret = gpio_request_one(MX28EVK_MMC0_SLOT_POWER, GPIOF_OUT_INIT_LOW, ret = gpio_request_one(MX28EVK_MMC0_SLOT_POWER, GPIOF_OUT_INIT_LOW,
...@@ -402,7 +400,8 @@ static void __init mx28evk_init(void) ...@@ -402,7 +400,8 @@ static void __init mx28evk_init(void)
"mmc1-slot-power"); "mmc1-slot-power");
if (ret) if (ret)
pr_warn("failed to request gpio mmc1-slot-power: %d\n", 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); gpio_led_register_device(0, &mx28evk_led_data);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment