[U-Boot] [RFC PATCH v2 0/13] Enable driver model for GPIOs on Tegra

Simon Glass
2014-05-05T16:08:57Z

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.

Along the way some minor deficiencies were found with driver model - these
are corrected in this series.

Also it was difficult to exhaustively test the new driver against the old,
so a new 'iotrace' framework was created to make this easier for future
driver authors.

This series has been tested on Trimslice (Tegra 20). I will try it on a
beaver also.

Changes in v2:
- Add a new patch for an I/O tracing feature
- Add a new patch to enable iotrace for arm
- Add a new patch to enable iotrace for sandbox
- Add new patch to support include files for .dts files
- Add new patch to bring in Tegra device tree files from linux
- Update README to encourage conversion to driver model
- Add new patch to use case-insensitive comparison for GPIO banks
- Add new patch to add missing header files in lists and root
- Add new patch to deal with const-ness of the global_data pointer
- Add new patch to allow driver model tests only for sandbox
- Add new patch to fix printf() strings in the 'dm' command
- Split out a separate patch to enable driver model for tegra
- Split out driver model changes into separate patches
- Correct bugs found during testing

Simon Glass (13):
Add an I/O tracing feature
arm: Support iotrace feature
sandbox: Support iotrace feature
Makefile: Support include files for .dts files
tegra: dts: Bring in GPIO bindings from linux
dm: Update README to encourage conversion to driver model
dm: Use case-insensitive comparison for GPIO banks
dm: Add missing header files in lists and root
dm: Case away the const-ness of the global_data pointer
dm: Allow driver model tests only for sandbox
dm: Fix printf() strings in the 'dm' command
tegra: Enable driver model
tegra: Convert tegra GPIO driver to use driver model

README | 28 ++
arch/arm/dts/tegra20.dtsi | 15 +-
arch/arm/include/asm/arch-tegra/gpio.h | 14 +-
arch/arm/include/asm/io.h | 3 +
arch/sandbox/include/asm/io.h | 10 +
board/nvidia/seaboard/seaboard.c | 2 +-
common/Makefile | 2 +
common/cmd_iotrace.c | 73 ++++
common/iotrace.c | 169 +++++++++
drivers/core/lists.c | 1 +
drivers/core/root.c | 7 +-
drivers/core/uclass.c | 2 +-
drivers/gpio/gpio-uclass.c | 2 +-
drivers/gpio/tegra_gpio.c | 393 ++++++++++++++++-----
include/configs/sandbox.h | 3 +
include/configs/tegra-common.h | 4 +
include/dm/device-internal.h | 4 +
include/dt-bindings/gpio/gpio.h | 15 +
include/dt-bindings/gpio/tegra-gpio.h | 51 +++
include/dt-bindings/interrupt-controller/arm-gic.h | 22 ++
include/dt-bindings/interrupt-controller/irq.h | 19 +
include/iotrace.h | 102 ++++++
scripts/Makefile.lib | 1 +
test/dm/Makefile | 2 +
test/dm/cmd_dm.c | 19 +-
25 files changed, 848 insertions(+), 115 deletions(-)
create mode 100644 common/cmd_iotrace.c
create mode 100644 common/iotrace.c
create mode 100644 include/dt-bindings/gpio/gpio.h
create mode 100644 include/dt-bindings/gpio/tegra-gpio.h
create mode 100644 include/dt-bindings/interrupt-controller/arm-gic.h
create mode 100644 include/dt-bindings/interrupt-controller/irq.h
create mode 100644 include/iotrace.h

--
1.9.1.423.g4596e3a