ARM: OMAP1: ams-delta: Hog "keybrd_dataout" GPIO pin
authorJanusz Krzysztofik <jmkrzyszt@gmail.com>
Thu, 21 Jun 2018 22:41:23 +0000 (00:41 +0200)
committerTony Lindgren <tony@atomide.com>
Mon, 2 Jul 2018 12:30:47 +0000 (05:30 -0700)
"keybrd_dataout" GPIO pin used to be initialized by ams-delta-serio
driver to a state safe for ams-delta-serio device function and not
changed thereafter.  As such, it may be assumed not under the driver
control and responsibility for its initialization handed over to board
init file.

Introduce a GPIO hog table and take over control of the
"keybrd_dataout" GPIO pin from the ams-delta-serio driver.

Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap1/board-ams-delta.c
drivers/input/serio/ams_delta_serio.c

index 6573e10..9b3073e 100644 (file)
@@ -607,6 +607,12 @@ static int gpiochip_match_by_label(struct gpio_chip *chip, void *data)
        return !strcmp(label, chip->label);
 }
 
+static struct gpiod_hog ams_delta_gpio_hogs[] = {
+       GPIO_HOG(LATCH2_LABEL, LATCH2_PIN_KEYBRD_DATAOUT, "keybrd_dataout",
+                GPIO_ACTIVE_HIGH, GPIOD_OUT_LOW),
+       {},
+};
+
 static void __init ams_delta_init(void)
 {
        /* mux pins for uarts */
@@ -627,6 +633,8 @@ static void __init ams_delta_init(void)
        omap_cfg_reg(J19_1610_CAM_D6);
        omap_cfg_reg(J18_1610_CAM_D7);
 
+       gpiod_add_hogs(ams_delta_gpio_hogs);
+
        omap_serial_init();
        omap_register_i2c_bus(1, 100, NULL, 0);
 
index 854d0d3..b955c6a 100644 (file)
@@ -121,11 +121,6 @@ static const struct gpio ams_delta_gpios[] __initconst_or_module = {
                .flags  = GPIOF_DIR_IN,
                .label  = "serio-clock",
        },
-       {
-               .gpio   = AMS_DELTA_GPIO_PIN_KEYBRD_DATAOUT,
-               .flags  = GPIOF_OUT_INIT_LOW,
-               .label  = "serio-dataout",
-       },
 };
 
 static int ams_delta_serio_init(struct platform_device *pdev)