Re: [PATCH] ARM: imx: only enable pinctrl as needed

From: Arnd Bergmann
Date: Fri May 28 2021 - 03:55:11 EST


On Tue, May 25, 2021 at 1:22 PM Esben Haabendal <esben@xxxxxxxxxx> wrote:
>
> As not all mach-imx platforms has support for run-time changes of pin
> configurations (such as LS1021A), a more selective approach to enabling
> pinctrl infrastructure makes sense, so that an e.g. an LS1021A only kernel
> could be built without pinctrl support.
>
> Signed-off-by: Esben Haabendal <esben@xxxxxxxxxx>

I think it would be even better to leave all these drivers to be
user-configurable. The symbols are currently defined as e.g.

config PINCTRL_IMX51
bool "IMX51 pinctrl driver"
depends on SOC_IMX51
select PINCTRL_IMX
help
Say Y here to enable the imx51 pinctrl driver

which could be changed to

config PINCTRL_IMX51
bool "IMX51 pinctrl driver" if COMPILE_TEST && !SOC_IMX51
depends on OF
default SOC_IMX51
select PINCTRL_IMX
help
Say Y here to enable the imx51 pinctrl driver

Today, having it configurable is pointless because you can't turn it off
when SOC_IMX51 is set, and you can't turn it on when SOC_IMX51
is disabled.

The second version allows turning off PINCTRL completely though, as
we do for other top-level subsystems that would likely make the system
unusable when disabled (block, serial, ...), and it allows compile-testing
on other machines, provided some dependencies (CONFIG_OF in the
example) are met. It could theoretically also allow making it a 'tristate'
option, as we do for an increasing number of drivers.

Arnd