Commit e627fc9f authored by Bartosz Golaszewski's avatar Bartosz Golaszewski
Browse files

ARM: omap1: ams-delta: convert GPIO hogs to using firmware nodes



Setup a software node hierarchy for the latch2 GPIO controller defining
the required hog and stop using legacy machine hog API.

Acked-by: default avatarKevin Hilman <khilman@baylibre.com>
Reviewed-by: default avatarLinus Walleij <linusw@kernel.org>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20260309-gpio-hog-fwnode-v2-4-4e61f3dbf06a@oss.qualcomm.com


Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
parent 5cfbd0eb
Loading
Loading
Loading
Loading
+27 −5
Original line number Diff line number Diff line
@@ -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);

	/*