[U-Boot] [PATCH v7 0/13] Enable driver model for GPIOs on Tegra and Exynos

Simon Glass sjg at chromium.org
Fri Sep 5 22:50:28 CEST 2014


Hi,

On 3 September 2014 17:36, Simon Glass <sjg at chromium.org> wrote:
> Now that driver model is part of U-Boot, the task of converting drivers over
> to it begins. GPIO is one of the easiest to convert, since it already has a
> sandbox driver and a uclass driver.
>
> The Tegra GPIO driver is relatively simple since it has a linear numbering
> and already uses the generic GPIO framework. Each GPIO bank has a separate
> device. Some arguments have been made that a single device should support
> all the GPIO banks, but currently the driver model uclass does not work that
> way and it would require a second-level data structure to handle the bank
> feature.
>
> This driver has been tested on:
>
> - Seaboard (Tegra 20)
> - Beaver (Tegra 30)
> - Jetson-TK1 (Tegra 124).
>
> I don't have a Tegra 114 board (Dalmore seems to be the only one with U-Boot
> support) but I am quite confident that it works.
>
> For exynos, the pinctrl device tree files are brought in from the kernel
> and cut down to remove the groupings which we don't yet use. Very small
> additions are made to avoid replicating the awful tables that Linux has
> for every exynos SoC. This series sits on top of the exynos refactors.
>
> The 'gpio' command is updated to support display of only the allocated
> GPIOs. This is much more friendly than displaying a large table.
>
> A few related clean-ups are provided as well.
>
> This series is available at u-boot-dm.git, branch working.

Are there any final comments on this series please?

I plan to apply the non-exynos portions to dm/master early next week.

>
> Changes in v7:
> - Add new patch to init driver model before board_early_init_f()
> - Add new patch to enable pre-reloc malloc() for tegra
> - Set up pin config in tegra_spl_gpio_direction_output()
> - Bring in patches from the SPI series to move post-reloc DM init earlier
>
> Changes in v6:
> - Use base_gpio instead of base_port for simplicity
> - Add an implementation of the get_function() method
> - Fix typo in compatible string
> - Remove exynos5420.dtsi which is not used in U-Boot
> - Move U-Boot changes into their own file
> - Use exynos54xx everywhere instead of exynos5420
>
> Changes in v5:
> - Put this patch before the others to avoid breaking bisectability
> - Add additional gpio_request() calls for other samsung boards
> - Use a mask instead of division in gpio_request() naming call
> - Remove RFC label now that build errors are fixed
> - Tidy up and update cover letter message
> - Avoid reordering functions
>
> Changes in v4:
> - Rename struct device to struct udevice
> - Add patches for exynos GPIO support
>
> Changes in v3:
> - Move dm command enable to previous patch
> - Use gpio number for the internal helper functions
>
> Changes in v2:
> - Remove RFC status
> - Add exynos serial support
> - Split out core driver model patches into a separate set
> - Split out driver model changes into separate patches
> - Correct bugs found during testing
>
> Simon Glass (13):
>   dm: Move pre-reloc init earlier to cope with board_early_init_f()
>   Set up stdio earlier when using driver model
>   dm: Make driver model available before board_init()
>   dm: tegra: Set up a pre-reloc malloc()
>   tegra: Convert tegra GPIO driver to use driver model
>   exynos: dts: Convert /include/ to #include
>   exynos: Bring in pinctrl dts files from Linux kernel
>   exynos: dts: Remove unused pinctrl information to save space
>   exynos: dts: Adjust device tree files for U-Boot
>   exynos: Tidy up GPIO headers
>   exynos: Tidy up GPIO defines
>   exynos: Make sure that GPIOs are requested
>   exynos: gpio: Convert to driver model

Regards,
Simon


More information about the U-Boot mailing list