[U-Boot] [PATCH v6 0/12] Enable driver model for GPIOs on Tegra and Exynos
Simon Glass
sjg at chromium.org
Mon Aug 11 17:23:51 CEST 2014
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 Beaver (Tegra 30).
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.
Changes in v6:
- Add new patch to allow gpio command to adjust GPIOs that are busy
- 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
- Avoid reordering functions
- Remove RFC label now that build errors are fixed
- Tidy up and update cover letter message
Changes in v4:
- Add new patch to enhance 'gpio' command
- 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:
- Split out driver model changes into separate patches
- Correct bugs found during testing
Simon Glass (12):
dm: gpio: Enhance gpio command to show only active GPIOs
dm: gpio: Allow gpio command to adjust GPIOs that are busy
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
dm: sandbox: dts: Add a GPIO bank
arch/arm/cpu/armv7/exynos/pinmux.c | 5 +-
arch/arm/dts/exynos4.dtsi | 9 +-
arch/arm/dts/exynos4210-origen.dts | 4 +-
arch/arm/dts/exynos4210-pinctrl-uboot.dtsi | 27 ++
arch/arm/dts/exynos4210-pinctrl.dtsi | 306 ++++++++++++++++++++
arch/arm/dts/exynos4210-smdkv310.dts | 2 +-
arch/arm/dts/exynos4210-trats.dts | 2 +-
arch/arm/dts/exynos4210-universal_c210.dts | 2 +-
arch/arm/dts/exynos4210.dtsi | 155 ++++++++++
arch/arm/dts/exynos4412-trats2.dts | 2 +-
arch/arm/dts/exynos4412.dtsi | 38 +++
arch/arm/dts/exynos4x12-pinctrl-uboot.dtsi | 46 +++
arch/arm/dts/exynos4x12-pinctrl.dtsi | 346 ++++++++++++++++++++++
arch/arm/dts/exynos4x12.dtsi | 114 ++++++++
arch/arm/dts/exynos5.dtsi | 56 +++-
arch/arm/dts/exynos5250-pinctrl-uboot.dtsi | 40 +++
arch/arm/dts/exynos5250-pinctrl.dtsi | 333 ++++++++++++++++++++++
arch/arm/dts/exynos5250-smdk5250.dts | 2 +-
arch/arm/dts/exynos5250-snow.dts | 2 +-
arch/arm/dts/exynos5250.dtsi | 40 ++-
arch/arm/dts/exynos5420-peach-pit.dts | 2 +-
arch/arm/dts/exynos5420-smdk5420.dts | 2 +-
arch/arm/dts/exynos54xx-pinctrl-uboot.dtsi | 52 ++++
arch/arm/dts/exynos54xx-pinctrl.dtsi | 305 ++++++++++++++++++++
arch/arm/dts/exynos54xx.dtsi | 57 +++-
arch/arm/dts/s5pc1xx-goni.dts | 2 +-
arch/arm/dts/s5pc1xx-smdkc100.dts | 2 +-
arch/arm/include/asm/arch-exynos/gpio.h | 5 -
arch/arm/include/asm/arch-s5pc1xx/gpio.h | 4 -
arch/arm/include/asm/arch-tegra/gpio.h | 15 +-
arch/sandbox/dts/sandbox.dts | 8 +
board/nvidia/seaboard/seaboard.c | 2 +-
board/samsung/arndale/arndale.c | 4 +-
board/samsung/common/board.c | 2 +-
board/samsung/common/misc.c | 3 +-
board/samsung/goni/goni.c | 4 +-
board/samsung/origen/origen.c | 2 +-
board/samsung/smdk5250/exynos5-dt.c | 7 +
board/samsung/smdk5420/smdk5420.c | 6 +-
board/samsung/smdkc100/smdkc100.c | 2 +-
board/samsung/smdkv310/smdkv310.c | 2 +-
board/samsung/trats/trats.c | 17 +-
board/samsung/trats2/trats2.c | 27 +-
board/samsung/universal_c210/universal.c | 4 +-
common/cmd_gpio.c | 110 ++++---
drivers/gpio/s5p_gpio.c | 444 +++++++++++++++++++----------
drivers/gpio/tegra_gpio.c | 326 +++++++++++++++++----
drivers/mmc/s5p_sdhci.c | 7 +-
include/asm-generic/gpio.h | 15 +-
include/configs/exynos-common.h | 4 +
include/configs/tegra-common.h | 1 +
51 files changed, 2683 insertions(+), 291 deletions(-)
create mode 100644 arch/arm/dts/exynos4210-pinctrl-uboot.dtsi
create mode 100644 arch/arm/dts/exynos4210-pinctrl.dtsi
create mode 100644 arch/arm/dts/exynos4210.dtsi
create mode 100644 arch/arm/dts/exynos4412.dtsi
create mode 100644 arch/arm/dts/exynos4x12-pinctrl-uboot.dtsi
create mode 100644 arch/arm/dts/exynos4x12-pinctrl.dtsi
create mode 100644 arch/arm/dts/exynos4x12.dtsi
create mode 100644 arch/arm/dts/exynos5250-pinctrl-uboot.dtsi
create mode 100644 arch/arm/dts/exynos5250-pinctrl.dtsi
create mode 100644 arch/arm/dts/exynos54xx-pinctrl-uboot.dtsi
create mode 100644 arch/arm/dts/exynos54xx-pinctrl.dtsi
--
2.0.0.526.g5318336
More information about the U-Boot
mailing list