diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index fa4f0079614c..bdad90f210e4 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -3026,7 +3026,7 @@ config GEODE_COMMON config ALIX bool "PCEngines ALIX System Support (LED setup)" - select GPIOLIB + depends on GPIO_CS5535=y select GEODE_COMMON help This option enables system support for the PCEngines ALIX. @@ -3034,21 +3034,21 @@ config ALIX ALIX2/3/6 boards. However, other system specific setup should get added here. - Note: You must still enable the drivers for GPIO and LED support - (GPIO_CS5535 & LEDS_GPIO) to actually use the LEDs + Note: You must still enable the drivers for LED support (LEDS_GPIO) + to actually use the LEDs Note: You have to set alix.force=1 for boards with Award BIOS. config NET5501 bool "Soekris Engineering net5501 System Support (LEDS, GPIO, etc)" - select GPIOLIB + depends on GPIO_CS5535=y select GEODE_COMMON help This option enables system support for the Soekris Engineering net5501. config GEOS bool "Traverse Technologies GEOS System Support (LEDS, GPIO, etc)" - select GPIOLIB + depends on GPIO_CS5535=y select GEODE_COMMON depends on DMI help diff --git a/arch/x86/platform/geode/geode-common.c b/arch/x86/platform/geode/geode-common.c index 1843ae385e2d..679b4b07b790 100644 --- a/arch/x86/platform/geode/geode-common.c +++ b/arch/x86/platform/geode/geode-common.c @@ -9,15 +9,12 @@ #include #include #include +#include #include #include #include "geode-common.h" -static const struct software_node geode_gpiochip_node = { - .name = "cs5535-gpio", -}; - static const struct property_entry geode_gpio_keys_props[] = { PROPERTY_ENTRY_U32("poll-interval", 20), { } @@ -44,7 +41,6 @@ static const struct software_node geode_restart_key_node = { }; static const struct software_node *geode_gpio_keys_swnodes[] __initconst = { - &geode_gpiochip_node, &geode_gpio_keys_node, &geode_restart_key_node, NULL @@ -66,7 +62,7 @@ int __init geode_create_restart_key(unsigned int pin) struct platform_device *pd; int err; - geode_restart_gpio_ref = SOFTWARE_NODE_REFERENCE(&geode_gpiochip_node, + geode_restart_gpio_ref = SOFTWARE_NODE_REFERENCE(&cs5535_gpio_swnode, pin, GPIO_ACTIVE_LOW); err = software_node_register_node_group(geode_gpio_keys_swnodes); @@ -143,7 +139,7 @@ int __init geode_create_leds(const char *label, const struct geode_led *leds, goto err_free_names; } - gpio_refs[i] = SOFTWARE_NODE_REFERENCE(&geode_gpiochip_node, + gpio_refs[i] = SOFTWARE_NODE_REFERENCE(&cs5535_gpio_swnode, leds[i].pin, GPIO_ACTIVE_LOW); props[i * 3 + 0] = @@ -188,3 +184,5 @@ int __init geode_create_leds(const char *label, const struct geode_led *leds, kfree(swnodes); return err; } + +MODULE_IMPORT_NS("CS5535");