On Wed, 18 Feb 2026, Bartosz Golaszewski wrote: > The lpc_ich MFD driver now exposes the software node associated with the > its GPIO controller cell. Remove the dummy software node from the > meraki-mx100 driver and reference the real one instead. > > Acked-by: Andy Shevchenko > Signed-off-by: Bartosz Golaszewski For merging through mfd tree, Acked-by: Ilpo Järvinen -- i. > --- > drivers/platform/x86/meraki-mx100.c | 41 ++++++++++++++++--------------------- > 1 file changed, 18 insertions(+), 23 deletions(-) > > diff --git a/drivers/platform/x86/meraki-mx100.c b/drivers/platform/x86/meraki-mx100.c > index 8c5276d98512390effcc9f2258a6061684420d11..9f4caa1f3a923164eeaf31765a4e83c874cff181 100644 > --- a/drivers/platform/x86/meraki-mx100.c > +++ b/drivers/platform/x86/meraki-mx100.c > @@ -20,16 +20,11 @@ > #include > #include > #include > +#include > #include > #include > #include > > -#define TINK_GPIO_DRIVER_NAME "gpio_ich" > - > -static const struct software_node gpio_ich_node = { > - .name = TINK_GPIO_DRIVER_NAME, > -}; > - > /* LEDs */ > static const struct software_node tink_gpio_leds_node = { > .name = "meraki-mx100-leds", > @@ -38,7 +33,7 @@ static const struct software_node tink_gpio_leds_node = { > static const struct property_entry tink_internet_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:internet"), > PROPERTY_ENTRY_STRING("linux,default-trigger", "default-on"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 11, GPIO_ACTIVE_LOW), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 11, GPIO_ACTIVE_LOW), > { } > }; > > @@ -50,7 +45,7 @@ static const struct software_node tink_internet_led_node = { > > static const struct property_entry tink_lan2_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:lan2"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 18, GPIO_ACTIVE_HIGH), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 18, GPIO_ACTIVE_HIGH), > { } > }; > > @@ -62,7 +57,7 @@ static const struct software_node tink_lan2_led_node = { > > static const struct property_entry tink_lan3_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:lan3"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 20, GPIO_ACTIVE_HIGH), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 20, GPIO_ACTIVE_HIGH), > { } > }; > > @@ -74,7 +69,7 @@ static const struct software_node tink_lan3_led_node = { > > static const struct property_entry tink_lan4_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:lan4"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 22, GPIO_ACTIVE_HIGH), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 22, GPIO_ACTIVE_HIGH), > { } > }; > > @@ -86,7 +81,7 @@ static const struct software_node tink_lan4_led_node = { > > static const struct property_entry tink_lan5_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:lan5"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 23, GPIO_ACTIVE_HIGH), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 23, GPIO_ACTIVE_HIGH), > { } > }; > > @@ -98,7 +93,7 @@ static const struct software_node tink_lan5_led_node = { > > static const struct property_entry tink_lan6_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:lan6"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 32, GPIO_ACTIVE_HIGH), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 32, GPIO_ACTIVE_HIGH), > { } > }; > > @@ -110,7 +105,7 @@ static const struct software_node tink_lan6_led_node = { > > static const struct property_entry tink_lan7_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:lan7"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 34, GPIO_ACTIVE_HIGH), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 34, GPIO_ACTIVE_HIGH), > { } > }; > > @@ -122,7 +117,7 @@ static const struct software_node tink_lan7_led_node = { > > static const struct property_entry tink_lan8_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:lan8"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 35, GPIO_ACTIVE_HIGH), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 35, GPIO_ACTIVE_HIGH), > { } > }; > > @@ -134,7 +129,7 @@ static const struct software_node tink_lan8_led_node = { > > static const struct property_entry tink_lan9_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:lan9"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 36, GPIO_ACTIVE_HIGH), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 36, GPIO_ACTIVE_HIGH), > { } > }; > > @@ -146,7 +141,7 @@ static const struct software_node tink_lan9_led_node = { > > static const struct property_entry tink_lan10_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:lan10"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 37, GPIO_ACTIVE_HIGH), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 37, GPIO_ACTIVE_HIGH), > { } > }; > > @@ -158,7 +153,7 @@ static const struct software_node tink_lan10_led_node = { > > static const struct property_entry tink_lan11_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:lan11"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 48, GPIO_ACTIVE_HIGH), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 48, GPIO_ACTIVE_HIGH), > { } > }; > > @@ -170,7 +165,7 @@ static const struct software_node tink_lan11_led_node = { > > static const struct property_entry tink_ha_green_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:ha"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 16, GPIO_ACTIVE_LOW), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 16, GPIO_ACTIVE_LOW), > { } > }; > > @@ -182,7 +177,7 @@ static const struct software_node tink_ha_green_led_node = { > > static const struct property_entry tink_ha_orange_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:orange:ha"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 7, GPIO_ACTIVE_LOW), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 7, GPIO_ACTIVE_LOW), > { } > }; > > @@ -194,7 +189,7 @@ static const struct software_node tink_ha_orange_led_node = { > > static const struct property_entry tink_usb_green_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:green:usb"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 21, GPIO_ACTIVE_LOW), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 21, GPIO_ACTIVE_LOW), > { } > }; > > @@ -206,7 +201,7 @@ static const struct software_node tink_usb_green_led_node = { > > static const struct property_entry tink_usb_orange_led_props[] = { > PROPERTY_ENTRY_STRING("label", "mx100:orange:usb"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 19, GPIO_ACTIVE_LOW), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 19, GPIO_ACTIVE_LOW), > { } > }; > > @@ -230,7 +225,7 @@ static const struct software_node tink_gpio_keys_node = { > static const struct property_entry tink_reset_key_props[] = { > PROPERTY_ENTRY_U32("linux,code", KEY_RESTART), > PROPERTY_ENTRY_STRING("label", "Reset"), > - PROPERTY_ENTRY_GPIO("gpios", &gpio_ich_node, 60, GPIO_ACTIVE_LOW), > + PROPERTY_ENTRY_GPIO("gpios", &lpc_ich_gpio_swnode, 60, GPIO_ACTIVE_LOW), > PROPERTY_ENTRY_U32("linux,input-type", EV_KEY), > PROPERTY_ENTRY_U32("debounce-interval", 100), > { } > @@ -243,7 +238,6 @@ static const struct software_node tink_reset_key_node = { > }; > > static const struct software_node *tink_swnodes[] = { > - &gpio_ich_node, > /* LEDs nodes */ > &tink_gpio_leds_node, > &tink_internet_led_node, > @@ -348,3 +342,4 @@ MODULE_AUTHOR("Chris Blake "); > MODULE_DESCRIPTION("Cisco Meraki MX100 Platform Driver"); > MODULE_LICENSE("GPL"); > MODULE_ALIAS("platform:meraki-mx100"); > +MODULE_IMPORT_NS("LPC_ICH"); > >