[PATCH] pinctrl: samsung: fix missing GPIOLIB on ARM64 Exynos config

Arnd Bergmann arnd at arndb.de
Wed Apr 20 06:25:32 PDT 2022


On Wed, Apr 20, 2022 at 2:13 PM Krzysztof Kozlowski
<krzysztof.kozlowski at linaro.org> wrote:
> On 20/04/2022 14:10, Arnd Bergmann wrote:
> > On Wed, Apr 20, 2022 at 1:55 PM Krzysztof Kozlowski
> > <krzysztof.kozlowski at linaro.org> wrote:
> >>
> >> The Samsung pinctrl drivers depend on OF_GPIO, which is part of GPIOLIB.
> >> ARMv7 Exynos platform selects GPIOLIB and Samsung pinctrl drivers. ARMv8
> >> Exynos selects only the latter leading to possible wrong configuration
> >> on ARMv8 build:
> >>
> >>   WARNING: unmet direct dependencies detected for PINCTRL_EXYNOS
> >>     Depends on [n]: PINCTRL [=y] && OF_GPIO [=n] && (ARCH_EXYNOS [=y] || ARCH_S5PV210 || COMPILE_TEST [=y])
> >>     Selected by [y]:
> >>     - ARCH_EXYNOS [=y]
> >>
> >>  config PINCTRL_EXYNOS
> >>         bool "Pinctrl common driver part for Samsung Exynos SoCs"
> >> -       depends on OF_GPIO
> >>         depends on ARCH_EXYNOS || ARCH_S5PV210 || COMPILE_TEST
> >>         select PINCTRL_SAMSUNG
> >>         select PINCTRL_EXYNOS_ARM if ARM && (ARCH_EXYNOS || ARCH_S5PV210)
> >
> >
> > The problem here is that PINCTRL_EXYNOS and the others can be built for
> > compile-testing without CONFIG_OF on non-arm machines.
> >
> > I think the correct dependency line would be
> >
> >       depends on ARCH_EXYNOS || ARCH_S5PV210 || (COMPILE_TEST && OF)
> >
> > which guarantees that OF_GPIO is also enabled.
>
> I don't think OF is the problem here, because the error is in missing
> GPIOLIB.

You are correct that the added dependency is not the solution for the
original problem. What I meant is that by dropping the dependency on
OF_GPIO, you create a new problem for compile-testing without
CONFIG_OF. Adding back the OF dependency avoids the regression.

> The platform selects Samsung pinctrl but it does not select
> GPIOLIB. Possible fixes are:
> 1. Do not select Samsung pinctrl from the platform (but have some
> default), so on compile test build it might not work.
> 2. Select GPIOLIB from the platform (ARMv7 Exynos does it).
> 3. Select GPIOLIB from here - this is current proposal.

Agreed, either 2. or 3. is fine, as long as you keep the CONFIG_OF
dependency.

       Arnd



More information about the linux-arm-kernel mailing list