
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