[PATCH v1 3/3] xea: config: Disable CONFIG_SPL_OF_PLATDATA_PARENT on XEA (imx28)

Simon Glass sjg at chromium.org
Tue Dec 29 04:32:48 CET 2020


Hi Lukasz,

On Fri, 25 Dec 2020 at 17:09, Lukasz Majewski <lukma at denx.de> wrote:
>
> On the XEA board (imx28) one needs in the SPL support for GPIO, MMC and
> SPI. Two last ones are necessary for booting the device. The GPIO support
> allows deciding which medium will be used. For example the GPIO DTS node
> (gpio at 0 at imx28.dtsi) has pinctrl parent (pinctrl at 80018000) for which we
> don't need driver asigned for correct operation.
> In the spl/dts/dt-platdata.c the gpio at 0 has index 4 and its parent -
> pinctrl at 80018000 has index 5.
>
> In the bind_drivers_pass() function (at drivers/core/lists.c) call to
> device_bind_by_name() for `fsl_imx23_pinctrl` returns -2, which is
> expected.
>
> With current setup - when the SPL_OF_PLATDATA_PARENT=y
> The gpio at 0 node with index 4 is skipped as its parent with 5 is not yet
> bound. It cannot be as we don't need and provide the driver for it.
> As a result the gpio at 0 is never bound and we end up with bricked board in
> the SPL stage.
>
> When CONFIG_SPL_OF_PLATDATA_PARENT is NOT set, all entries from
> spl/dts/dt-platdata.c are scanned in ascending index order, so gpio at 0 is
> properly initialized. For `fsl_imx_pinctrl` we simply check 10 times if
> the driver for is available (which is not) and exit.
>
> As a result the GPIOs are initialized and can be used in early SPL stage.
> This commit fixes XEA regression introduced with e41651fffda7da55f6.
>
> Signed-off-by: Lukasz Majewski <lukma at denx.de>
>
> ---
>
>  configs/imx28_xea_defconfig | 1 +
>  1 file changed, 1 insertion(+)

Would it not be better to provide the parent driver?

With the new of-platdata I don't think this is going to work.

Anyway, to fix for this release:

Reviewed-by: Simon Glass <sjg at chromium.org>

Regards,
Simon


More information about the U-Boot mailing list