diff mbox

pinctrl: mcp23s08: improve I2C Kconfig dependency

Message ID 20170530091314.891224-1-arnd@arndb.de
State Accepted
Commit adeac77549ec13dc3bf87ec21f1b8a00f069bb1c
Headers show

Commit Message

Arnd Bergmann May 30, 2017, 9:11 a.m. UTC
With "SPI_MASTER=y && I2C=m", we can build mcp23s08 as a built-in driver,
which then results in a link failure:

drivers/pinctrl/built-in.o: In function `mcp23s08_probe_one.isra.0':
:(.text+0x7910): undefined reference to `__devm_regmap_init_i2c'
drivers/pinctrl/built-in.o: In function `mcp23s08_init':
:(.init.text+0x110): undefined reference to `i2c_register_driver'
drivers/pinctrl/built-in.o: In function `mcp23s08_exit':
:(.exit.text+0x3c): undefined reference to `i2c_del_driver'

To avoid the problem, this adds another dependency on I2C that enforces
mcp23s08 to be a loadable module whenever the I2C core is a module.

Fixes: 64ac43e6fa28 ("gpio: mcp23s08: move to pinctrl")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/pinctrl/Kconfig | 1 +
 1 file changed, 1 insertion(+)

-- 
2.9.0

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Sebastian Reichel May 30, 2017, 10:27 a.m. UTC | #1
Hi,

On Tue, May 30, 2017 at 11:11:28AM +0200, Arnd Bergmann wrote:
> With "SPI_MASTER=y && I2C=m", we can build mcp23s08 as a built-in driver,

> which then results in a link failure:

> 

> drivers/pinctrl/built-in.o: In function `mcp23s08_probe_one.isra.0':

> :(.text+0x7910): undefined reference to `__devm_regmap_init_i2c'

> drivers/pinctrl/built-in.o: In function `mcp23s08_init':

> :(.init.text+0x110): undefined reference to `i2c_register_driver'

> drivers/pinctrl/built-in.o: In function `mcp23s08_exit':

> :(.exit.text+0x3c): undefined reference to `i2c_del_driver'

> 

> To avoid the problem, this adds another dependency on I2C that enforces

> mcp23s08 to be a loadable module whenever the I2C core is a module.

> 

> Fixes: 64ac43e6fa28 ("gpio: mcp23s08: move to pinctrl")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>


-- Sebastian

> ---

>  drivers/pinctrl/Kconfig | 1 +

>  1 file changed, 1 insertion(+)

> 

> diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig

> index becda8f47e9e..ab4630ea305c 100644

> --- a/drivers/pinctrl/Kconfig

> +++ b/drivers/pinctrl/Kconfig

> @@ -149,6 +149,7 @@ config PINCTRL_FALCON

>  config PINCTRL_MCP23S08

>  	tristate "Microchip MCP23xxx I/O expander"

>  	depends on SPI_MASTER || I2C

> +	depends on I2C || I2C=n

>  	select GPIOLIB_IRQCHIP

>  	select REGMAP_I2C if I2C

>  	select REGMAP_SPI if SPI_MASTER

> -- 

> 2.9.0

>
diff mbox

Patch

diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index becda8f47e9e..ab4630ea305c 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -149,6 +149,7 @@  config PINCTRL_FALCON
 config PINCTRL_MCP23S08
 	tristate "Microchip MCP23xxx I/O expander"
 	depends on SPI_MASTER || I2C
+	depends on I2C || I2C=n
 	select GPIOLIB_IRQCHIP
 	select REGMAP_I2C if I2C
 	select REGMAP_SPI if SPI_MASTER