diff options
Diffstat (limited to 'arch/arm/mach-omap1/board-ams-delta.c')
| -rw-r--r-- | arch/arm/mach-omap1/board-ams-delta.c | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c index 16392720296c..1bec4fa0bd5e 100644 --- a/arch/arm/mach-omap1/board-ams-delta.c +++ b/arch/arm/mach-omap1/board-ams-delta.c @@ -556,10 +556,30 @@ static struct gpiod_lookup_table *ams_delta_gpio_tables[] __initdata = { &ams_delta_nand_gpio_table, }; -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 const struct software_node latch2_gpio_swnode = { + .name = LATCH2_LABEL, +}; + +static const u32 latch2_hog_gpios[] = { LATCH2_PIN_KEYBRD_DATAOUT, 0 }; + +static const struct property_entry latch2_gpio_hog_props[] = { + PROPERTY_ENTRY_BOOL("gpio-hog"), + PROPERTY_ENTRY_U32_ARRAY("gpios", latch2_hog_gpios), + PROPERTY_ENTRY_STRING("line-name", "keybrd_dataout"), + PROPERTY_ENTRY_BOOL("output-low"), + { } +}; + +static const struct software_node latch2_gpio_hog_swnode = { + .parent = &latch2_gpio_swnode, + .name = "latch2-hog", + .properties = latch2_gpio_hog_props, +}; + +static const struct software_node *const latch2_gpio_swnodes[] = { + &latch2_gpio_swnode, + &latch2_gpio_hog_swnode, + NULL }; static struct plat_serial8250_port ams_delta_modem_ports[]; @@ -684,7 +704,6 @@ static void __init ams_delta_init(void) omap_gpio_deps_init(); ams_delta_latch2_init(); - gpiod_add_hogs(ams_delta_gpio_hogs); omap_serial_init(); omap_register_i2c_bus(1, 100, NULL, 0); @@ -693,6 +712,9 @@ static void __init ams_delta_init(void) platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices)); platform_device_register_full(&latch1_gpio_devinfo); + + software_node_register_node_group(latch2_gpio_swnodes); + latch2_gpio_devinfo.fwnode = software_node_fwnode(&latch2_gpio_swnode); platform_device_register_full(&latch2_gpio_devinfo); /* |
