Commit f8bd4934 authored by Jingoo Han's avatar Jingoo Han Committed by Florian Tobias Schandinat

video: use gpio_request_one

Using gpio_request_one can make the code simpler because it can
set the direction and initial value in one shot.
Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
Acked-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Michael Hennerich <michael.hennerich@analog.com>
Cc: Pavel Machek <pavel@ucw.cz>
Signed-off-by: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
parent 1c16697b
...@@ -383,23 +383,19 @@ static int __devinit request_ports(void) ...@@ -383,23 +383,19 @@ static int __devinit request_ports(void)
} }
#if (defined(UD) && defined(LBR)) #if (defined(UD) && defined(LBR))
if (gpio_request(UD, KBUILD_MODNAME)) { if (gpio_request_one(UD, GPIOF_OUT_INIT_LOW, KBUILD_MODNAME)) {
pr_err("requesting GPIO %d failed\n", UD); pr_err("requesting GPIO %d failed\n", UD);
return -EBUSY; return -EBUSY;
} }
if (gpio_request(LBR, KBUILD_MODNAME)) { if (gpio_request_one(LBR, GPIOF_OUT_INIT_HIGH, KBUILD_MODNAME)) {
pr_err("requesting GPIO %d failed\n", LBR); pr_err("requesting GPIO %d failed\n", LBR);
gpio_free(UD); gpio_free(UD);
return -EBUSY; return -EBUSY;
} }
gpio_direction_output(UD, 0);
gpio_direction_output(LBR, 1);
#endif #endif
if (gpio_request(MOD, KBUILD_MODNAME)) { if (gpio_request_one(MOD, GPIOF_OUT_INIT_HIGH, KBUILD_MODNAME)) {
pr_err("requesting GPIO %d failed\n", MOD); pr_err("requesting GPIO %d failed\n", MOD);
#if (defined(UD) && defined(LBR)) #if (defined(UD) && defined(LBR))
gpio_free(LBR); gpio_free(LBR);
...@@ -408,8 +404,6 @@ static int __devinit request_ports(void) ...@@ -408,8 +404,6 @@ static int __devinit request_ports(void)
return -EBUSY; return -EBUSY;
} }
gpio_direction_output(MOD, 1);
SSYNC(); SSYNC();
return 0; return 0;
} }
......
...@@ -240,7 +240,7 @@ static int request_ports(struct bfin_bf54xfb_info *fbi) ...@@ -240,7 +240,7 @@ static int request_ports(struct bfin_bf54xfb_info *fbi)
u16 eppi_req_18[] = EPPI0_18; u16 eppi_req_18[] = EPPI0_18;
u16 disp = fbi->mach_info->disp; u16 disp = fbi->mach_info->disp;
if (gpio_request(disp, DRIVER_NAME)) { if (gpio_request_one(disp, GPIOF_OUT_INIT_HIGH, DRIVER_NAME)) {
printk(KERN_ERR "Requesting GPIO %d failed\n", disp); printk(KERN_ERR "Requesting GPIO %d failed\n", disp);
return -EFAULT; return -EFAULT;
} }
...@@ -263,8 +263,6 @@ static int request_ports(struct bfin_bf54xfb_info *fbi) ...@@ -263,8 +263,6 @@ static int request_ports(struct bfin_bf54xfb_info *fbi)
} }
} }
gpio_direction_output(disp, 1);
return 0; return 0;
} }
......
...@@ -365,10 +365,10 @@ static int __devinit bfin_lq035q1_request_ports(struct platform_device *pdev, ...@@ -365,10 +365,10 @@ static int __devinit bfin_lq035q1_request_ports(struct platform_device *pdev,
* Drive PPI_FS3 Low * Drive PPI_FS3 Low
*/ */
if (ANOMALY_05000400) { if (ANOMALY_05000400) {
int ret = gpio_request(P_IDENT(P_PPI0_FS3), "PPI_FS3"); int ret = gpio_request_one(P_IDENT(P_PPI0_FS3),
GPIOF_OUT_INIT_LOW, "PPI_FS3");
if (ret) if (ret)
return ret; return ret;
gpio_direction_output(P_IDENT(P_PPI0_FS3), 0);
} }
if (ppi16) if (ppi16)
...@@ -716,14 +716,14 @@ static int __devinit bfin_lq035q1_probe(struct platform_device *pdev) ...@@ -716,14 +716,14 @@ static int __devinit bfin_lq035q1_probe(struct platform_device *pdev)
} }
if (info->disp_info->use_bl) { if (info->disp_info->use_bl) {
ret = gpio_request(info->disp_info->gpio_bl, "LQ035 Backlight"); ret = gpio_request_one(info->disp_info->gpio_bl,
GPIOF_OUT_INIT_LOW, "LQ035 Backlight");
if (ret) { if (ret) {
dev_err(&pdev->dev, "failed to request GPIO %d\n", dev_err(&pdev->dev, "failed to request GPIO %d\n",
info->disp_info->gpio_bl); info->disp_info->gpio_bl);
goto out9; goto out9;
} }
gpio_direction_output(info->disp_info->gpio_bl, 0);
} }
ret = register_framebuffer(fbinfo); ret = register_framebuffer(fbinfo);
......
...@@ -411,12 +411,13 @@ static int __devinit bfin_adv7393_fb_probe(struct i2c_client *client, ...@@ -411,12 +411,13 @@ static int __devinit bfin_adv7393_fb_probe(struct i2c_client *client,
/* Workaround "PPI Does Not Start Properly In Specific Mode" */ /* Workaround "PPI Does Not Start Properly In Specific Mode" */
if (ANOMALY_05000400) { if (ANOMALY_05000400) {
if (gpio_request(P_IDENT(P_PPI0_FS3), "PPI0_FS3")) { ret = gpio_request_one(P_IDENT(P_PPI0_FS3), GPIOF_OUT_INIT_LOW,
"PPI0_FS3")
if (ret) {
dev_err(&client->dev, "PPI0_FS3 GPIO request failed\n"); dev_err(&client->dev, "PPI0_FS3 GPIO request failed\n");
ret = -EBUSY; ret = -EBUSY;
goto out_8; goto out_8;
} }
gpio_direction_output(P_IDENT(P_PPI0_FS3), 0);
} }
if (peripheral_request_list(ppi_pins, DRIVER_NAME)) { if (peripheral_request_list(ppi_pins, DRIVER_NAME)) {
......
...@@ -155,14 +155,10 @@ static int setup_vsync(struct panel_info *panel, int init) ...@@ -155,14 +155,10 @@ static int setup_vsync(struct panel_info *panel, int init)
ret = 0; ret = 0;
goto uninit; goto uninit;
} }
ret = gpio_request(gpio, "vsync"); ret = gpio_request_one(gpio, GPIOF_IN, "vsync");
if (ret) if (ret)
goto err_request_gpio_failed; goto err_request_gpio_failed;
ret = gpio_direction_input(gpio);
if (ret)
goto err_gpio_direction_input_failed;
ret = irq = gpio_to_irq(gpio); ret = irq = gpio_to_irq(gpio);
if (ret < 0) if (ret < 0)
goto err_get_irq_num_failed; goto err_get_irq_num_failed;
...@@ -180,7 +176,6 @@ static int setup_vsync(struct panel_info *panel, int init) ...@@ -180,7 +176,6 @@ static int setup_vsync(struct panel_info *panel, int init)
free_irq(gpio_to_irq(gpio), panel->client_data); free_irq(gpio_to_irq(gpio), panel->client_data);
err_request_irq_failed: err_request_irq_failed:
err_get_irq_num_failed: err_get_irq_num_failed:
err_gpio_direction_input_failed:
gpio_free(gpio); gpio_free(gpio);
err_request_gpio_failed: err_request_gpio_failed:
return ret; return ret;
......
...@@ -186,14 +186,10 @@ static int setup_vsync(struct panel_info *panel, ...@@ -186,14 +186,10 @@ static int setup_vsync(struct panel_info *panel,
ret = 0; ret = 0;
goto uninit; goto uninit;
} }
ret = gpio_request(gpio, "vsync"); ret = gpio_request_one(gpio, GPIOF_IN, "vsync");
if (ret) if (ret)
goto err_request_gpio_failed; goto err_request_gpio_failed;
ret = gpio_direction_input(gpio);
if (ret)
goto err_gpio_direction_input_failed;
ret = irq = gpio_to_irq(gpio); ret = irq = gpio_to_irq(gpio);
if (ret < 0) if (ret < 0)
goto err_get_irq_num_failed; goto err_get_irq_num_failed;
...@@ -210,7 +206,6 @@ static int setup_vsync(struct panel_info *panel, ...@@ -210,7 +206,6 @@ static int setup_vsync(struct panel_info *panel,
free_irq(gpio_to_irq(gpio), panel); free_irq(gpio_to_irq(gpio), panel);
err_request_irq_failed: err_request_irq_failed:
err_get_irq_num_failed: err_get_irq_num_failed:
err_gpio_direction_input_failed:
gpio_free(gpio); gpio_free(gpio);
err_request_gpio_failed: err_request_gpio_failed:
return ret; return ret;
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <asm/gpio.h> #include <linux/gpio.h>
#include "omapfb.h" #include "omapfb.h"
#define MODULE_NAME "omapfb-lcd_h3" #define MODULE_NAME "omapfb-lcd_h3"
...@@ -32,20 +32,18 @@ static int innovator1610_panel_init(struct lcd_panel *panel, ...@@ -32,20 +32,18 @@ static int innovator1610_panel_init(struct lcd_panel *panel,
{ {
int r = 0; int r = 0;
if (gpio_request(14, "lcd_en0")) { /* configure GPIO(14, 15) as outputs */
if (gpio_request_one(14, GPIOF_OUT_INIT_LOW, "lcd_en0")) {
pr_err(MODULE_NAME ": can't request GPIO 14\n"); pr_err(MODULE_NAME ": can't request GPIO 14\n");
r = -1; r = -1;
goto exit; goto exit;
} }
if (gpio_request(15, "lcd_en1")) { if (gpio_request_one(15, GPIOF_OUT_INIT_LOW, "lcd_en1")) {
pr_err(MODULE_NAME ": can't request GPIO 15\n"); pr_err(MODULE_NAME ": can't request GPIO 15\n");
gpio_free(14); gpio_free(14);
r = -1; r = -1;
goto exit; goto exit;
} }
/* configure GPIO(14, 15) as outputs */
gpio_direction_output(14, 0);
gpio_direction_output(15, 0);
exit: exit:
return r; return r;
} }
......
...@@ -1019,14 +1019,12 @@ static int taal_probe(struct omap_dss_device *dssdev) ...@@ -1019,14 +1019,12 @@ static int taal_probe(struct omap_dss_device *dssdev)
if (panel_data->use_ext_te) { if (panel_data->use_ext_te) {
int gpio = panel_data->ext_te_gpio; int gpio = panel_data->ext_te_gpio;
r = gpio_request(gpio, "taal irq"); r = gpio_request_one(gpio, GPIOF_IN, "taal irq");
if (r) { if (r) {
dev_err(&dssdev->dev, "GPIO request failed\n"); dev_err(&dssdev->dev, "GPIO request failed\n");
goto err_gpio; goto err_gpio;
} }
gpio_direction_input(gpio);
r = request_irq(gpio_to_irq(gpio), taal_te_isr, r = request_irq(gpio_to_irq(gpio), taal_te_isr,
IRQF_TRIGGER_RISING, IRQF_TRIGGER_RISING,
"taal vsync", dssdev); "taal vsync", dssdev);
......
...@@ -408,17 +408,12 @@ static int tpo_td043_probe(struct omap_dss_device *dssdev) ...@@ -408,17 +408,12 @@ static int tpo_td043_probe(struct omap_dss_device *dssdev)
} }
if (gpio_is_valid(nreset_gpio)) { if (gpio_is_valid(nreset_gpio)) {
ret = gpio_request(nreset_gpio, "lcd reset"); ret = gpio_request_one(nreset_gpio, GPIOF_OUT_INIT_LOW,
"lcd reset");
if (ret < 0) { if (ret < 0) {
dev_err(&dssdev->dev, "couldn't request reset GPIO\n"); dev_err(&dssdev->dev, "couldn't request reset GPIO\n");
goto fail_gpio_req; goto fail_gpio_req;
} }
ret = gpio_direction_output(nreset_gpio, 0);
if (ret < 0) {
dev_err(&dssdev->dev, "couldn't set GPIO direction\n");
goto fail_gpio_direction;
}
} }
ret = sysfs_create_group(&dssdev->dev.kobj, &tpo_td043_attr_group); ret = sysfs_create_group(&dssdev->dev.kobj, &tpo_td043_attr_group);
...@@ -427,8 +422,6 @@ static int tpo_td043_probe(struct omap_dss_device *dssdev) ...@@ -427,8 +422,6 @@ static int tpo_td043_probe(struct omap_dss_device *dssdev)
return 0; return 0;
fail_gpio_direction:
gpio_free(nreset_gpio);
fail_gpio_req: fail_gpio_req:
regulator_put(tpo_td043->vcc_reg); regulator_put(tpo_td043->vcc_reg);
fail_regulator: fail_regulator:
......
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