[U-Boot] [PATCH v2 0/19] tegra: Add display driver and LCD support for Seaboard

Simon Glass
2012-06-13T16:19:36Z

This series adds support for the Tegra2x's display peripheral. This
supports the LCD display on Seaboard and we use this to enable console
output in U-Boot on the LCD.

Configuration is via the device tree. Proposed bindings are included
in this series.

I looked at the message "[RFC 4/4] drm: Add NVIDIA Tegra support" on
device-tree-discuss. There does not seem to be any conclusion for now.

While I agree EDID is convenient for machines I would prefer to provide
a user-friendly way of selecting LCD settings as well, with EDID more
as a fallback and auto-detection when available.

To improve performance two optimisations are offered:

1. The LCD frame buffer is cached, with the cache being flushed after
each newline sent to putc(), and in a few other situations. This
dramatically increases performance (around 10x). This requires a few
additions to the ARM cache support.

2. The console supports scrolling in steps of more than 1 line. This
speeds up scrolling output considerably, particularly commands like
'printenv' which display a lot of output. This requires a new CONFIG
and a change to the console_scrollup() function.

Changes in v2:
- Add new patch to use const in pinmux_config_pingroup/table()
- Add nvidia prefix to device tree properties
- Align tegra display using new CONFIG_LCD_ALIGNMENT feature
- Put the LCD cache flush logic into lcd_putc() instead of lcd_puts()
- Update LCD driver to deal with new fdt bindings
- Update seaboard LCD definitions for new fdt binding
- Use a more generic config CONFIG_LCD_ALIGNMENT for lcd alignment
- Use const where possible in funcmux

Mayuresh Kulkarni (1):
tegra: Enable display/lcd support on Seaboard

Simon Glass (17):
Add gpio_request() to asm-generic header
fdt: Add debugging to fdtdec_get_int/addr()
fdt: Add function to look up a phandle's register address
fdt: Add header guard to fdtdec.h
tegra: Use const for pinmux_config_pingroup/table()
tegra: Add display support to funcmux
tegra: fdt: Add LCD definitions for Tegra
tegra: Add support for PWFM
tegra: Add LCD driver
tegra: Add LCD support to Nvidia boards
arm: Add control over cachability of memory regions
lcd: Add CONFIG_LCD_ALIGNMENT to select frame buffer alignment
lcd: Add support for flushing LCD fb from dcache after update
tegra: Align LCD frame buffer to section boundary
tegra: Support control of cache settings for LCD
tegra: fdt: Add LCD definitions for Seaboard
lcd: Add CONSOLE_SCROLL_LINES option to speed console

Wei Ni (1):
tegra: Add SOC support for display/lcd

README | 16 +
arch/arm/cpu/armv7/cache_v7.c | 11 +
arch/arm/cpu/armv7/tegra2/Makefile | 1 +
arch/arm/cpu/armv7/tegra2/display.c | 271 +++++++++++
arch/arm/cpu/armv7/tegra2/funcmux.c | 39 ++
arch/arm/cpu/armv7/tegra2/pinmux.c | 4 +-
arch/arm/cpu/armv7/tegra2/pwfm.c | 40 ++
arch/arm/dts/tegra20.dtsi | 25 +
arch/arm/include/asm/arch-tegra2/dc.h | 544 +++++++++++++++++++++++
arch/arm/include/asm/arch-tegra2/display.h | 133 ++++++
arch/arm/include/asm/arch-tegra2/pinmux.h | 4 +-
arch/arm/include/asm/arch-tegra2/pwfm.h | 54 +++
arch/arm/include/asm/system.h | 30 ++
arch/arm/lib/cache-cp15.c | 62 +++-
board/nvidia/common/board.c | 21 +-
board/nvidia/dts/tegra2-seaboard.dts | 21 +
common/cmd_echo.c | 3 +-
common/lcd.c | 84 +++-
doc/device-tree-bindings/video/nvidia-video.txt | 88 ++++
drivers/video/Makefile | 1 +
drivers/video/tegra.c | 392 ++++++++++++++++
include/asm-generic/gpio.h | 9 +
include/configs/seaboard.h | 12 +-
include/configs/tegra2-common.h | 3 +
include/fdtdec.h | 17 +
include/lcd.h | 11 +
lib/fdtdec.c | 34 ++-
27 files changed, 1891 insertions(+), 39 deletions(-)
create mode 100644 arch/arm/cpu/armv7/tegra2/display.c
create mode 100644 arch/arm/cpu/armv7/tegra2/pwfm.c
create mode 100644 arch/arm/include/asm/arch-tegra2/dc.h
create mode 100644 arch/arm/include/asm/arch-tegra2/display.h
create mode 100644 arch/arm/include/asm/arch-tegra2/pwfm.h
create mode 100644 doc/device-tree-bindings/video/nvidia-video.txt
create mode 100644 drivers/video/tegra.c

--
1.7.7.3