[U-Boot] [PATCH v2 00/23] dm: tegra: Convert tegra20 and tegra124 video drivers to driver model

Simon Glass
2016-01-30T23:37:39Z

This series moves these two drivers over to use driver model for video.

This involves the following steps:
- Sync up some device tree files with Linux
- Implement a proper PWM driver
- Clean up and unify the driver code
- Modify the existing drivers to work with driver model

The tegra20 display driver uses device tree bindings invented in 2011 before
Linux had this or anyone was able to agree a standard. It seems possible to
move it to the new bindings (like tegra124) except for the issue of time
delays between stages. It isn't clear how this should work, and Linux
implements this by including all LCD definitions in the kernel source code,
and not using any delays. This causes strange display artifacts on the
display when starting up, but perhaps is harmless to the display. Future
work will sync up the device tree more for seaboard, and thus tidy this up
for nvidia boards.

A bug in the keyboard driver is also fixed by this series. The series is
tested on seaboard and nyan-big, the two boards I have which support a
display.

This series is available at u-boot-dm/tegra-working.

Changes in v2:
- Fix a checkpatch warning
- Fix erroneous Kconfig change for colibri
- Rebase to master

Simon Glass (23):
tegra: keyboard: Fix the init order
dm: video: Flush the cache after a puts()
tegra: mmc: Fix comments in the MMC driver init
tegra: dts: Sync up the tegra124 device tree files with Linux
tegra: dts: Sync up nyan-big files with Linux
tegra: gpio: Show the GPIO value for outputs
tegra: pwm: Add a driver for the tegra PWM
tegra: lcd: Merge tegra124-lcd.c into display.c
tegra: Allow driver model to be used for the PWM
tegra: Allow CONFIG_DM_VIDEO to be used as well as CONFIG_LCD
tegra: nyan-big: Move the LCD driver to driver model
tegra: video: Rename CONFIG_VIDEO_TEGRA to CONFIG_VIDEO_TEGRA20
tegra: dts: Sync tegra20.dtsi with Linux v4.4
tegra: video: Merge the display driver into one file
tegra: video: Move the check for CONFIG_OF_CONTROL to Kconfig
tegra: video: Merge the two config structures together
tegra: video: Convert tegra20 LCD driver to driver model
tegra: video: Remove the static variables
tegra: video: Move LCD enums into the driver
tegra: video: Move all fdt-decoding into a single function
tegra: Convert CONFIG_PWM_TEGRA to Kconfig
tegra: video: Move LCD driver to use the DM PWM driver
tegra: video: Clean up the old LCD/PWM driver code

arch/arm/dts/tegra124-jetson-tk1.dts | 13 +
arch/arm/dts/tegra124-nyan-big.dts | 1676 ++++++++++++++++++-----
arch/arm/dts/tegra124-nyan.dtsi | 718 ++++++++++
arch/arm/dts/tegra124-venice2.dts | 14 +
arch/arm/dts/tegra124.dtsi | 693 ++++++++--
arch/arm/dts/tegra20-colibri.dts | 22 +-
arch/arm/dts/tegra20-harmony.dts | 44 +-
arch/arm/dts/tegra20-medcom-wide.dts | 26 +-
arch/arm/dts/tegra20-paz00.dts | 43 +-
arch/arm/dts/tegra20-plutux.dts | 8 -
arch/arm/dts/tegra20-seaboard.dts | 36 +-
arch/arm/dts/tegra20-tamonten.dtsi | 15 +-
arch/arm/dts/tegra20-tec.dts | 10 +-
arch/arm/dts/tegra20-trimslice.dts | 34 +-
arch/arm/dts/tegra20-ventana.dts | 43 +-
arch/arm/dts/tegra20-whistler.dts | 35 +-
arch/arm/dts/tegra20.dtsi | 541 ++++++--
arch/arm/include/asm/arch-tegra/dc.h | 5 -
arch/arm/include/asm/arch-tegra/pwm.h | 30 -
arch/arm/include/asm/arch-tegra20/display.h | 108 --
arch/arm/mach-tegra/Kconfig | 1 +
arch/arm/mach-tegra/Makefile | 1 -
arch/arm/mach-tegra/board2.c | 24 +-
arch/arm/mach-tegra/pwm.c | 89 --
arch/arm/mach-tegra/tegra20/Makefile | 2 -
arch/arm/mach-tegra/tegra20/display.c | 378 -----
board/compal/paz00/paz00.c | 2 +-
board/toradex/colibri_t20/colibri_t20.c | 2 +-
configs/colibri_t20_defconfig | 6 +
configs/harmony_defconfig | 6 +
configs/medcom-wide_defconfig | 6 +
configs/nyan-big_defconfig | 10 +
configs/paz00_defconfig | 6 +
configs/seaboard_defconfig | 6 +
configs/tec_defconfig | 6 +
configs/ventana_defconfig | 6 +
drivers/gpio/tegra_gpio.c | 5 +-
drivers/input/tegra-kbc.c | 2 +-
drivers/mmc/tegra_mmc.c | 4 +-
drivers/pwm/Kconfig | 9 +
drivers/pwm/Makefile | 3 +
drivers/pwm/tegra_pwm.c | 85 ++
drivers/video/Kconfig | 10 +
drivers/video/Makefile | 2 +-
drivers/video/simple_panel.c | 1 +
drivers/video/tegra.c | 658 +++++++--
drivers/video/tegra124/Makefile | 1 -
drivers/video/tegra124/display.c | 184 ++-
drivers/video/tegra124/dp.c | 53 +-
drivers/video/tegra124/sor.c | 162 ++-
drivers/video/tegra124/sor.h | 45 +-
drivers/video/tegra124/tegra124-lcd.c | 95 --
drivers/video/vidconsole-uclass.c | 1 +
include/configs/colibri_t20.h | 4 -
include/configs/harmony.h | 4 -
include/configs/medcom-wide.h | 4 -
include/configs/nyan-big.h | 3 -
include/configs/paz00.h | 4 -
include/configs/seaboard.h | 4 -
include/configs/tec.h | 4 -
include/configs/tegra-common-post.h | 10 +-
include/configs/ventana.h | 4 -
include/dt-bindings/clock/tegra124-car-common.h | 345 +++++
include/dt-bindings/clock/tegra124-car.h | 341 +----
include/dt-bindings/memory/tegra124-mc.h | 31 +
include/dt-bindings/reset/tegra124-car.h | 12 +
include/dt-bindings/thermal/tegra124-soctherm.h | 13 +
include/fdtdec.h | 1 -
lib/fdtdec.c | 1 -
69 files changed, 4596 insertions(+), 2174 deletions(-)
create mode 100644 arch/arm/dts/tegra124-nyan.dtsi
delete mode 100644 arch/arm/mach-tegra/pwm.c
create mode 100644 drivers/pwm/tegra_pwm.c
delete mode 100644 drivers/video/tegra124/tegra124-lcd.c
create mode 100644 include/dt-bindings/clock/tegra124-car-common.h
create mode 100644 include/dt-bindings/memory/tegra124-mc.h
create mode 100644 include/dt-bindings/reset/tegra124-car.h
create mode 100644 include/dt-bindings/thermal/tegra124-soctherm.h

--
2.7.0.rc3.207.g0ac5344