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

Simon Glass sjg at chromium.org
Sun Jan 31 00:37:39 CET 2016


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



More information about the U-Boot mailing list