All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 0/18] tegra: Add display driver and LCD support for Seaboard
@ 2012-07-12 15:25 Simon Glass
  2012-07-12 15:25   ` [U-Boot] " Simon Glass
                   ` (15 more replies)
  0 siblings, 16 replies; 81+ messages in thread
From: Simon Glass @ 2012-07-12 15:25 UTC (permalink / raw)
  To: u-boot

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, taken from pwm bindings that should be in linux-next,
a Tegra video binding that might be accepted in devicetree-discuss
and a proposed video mode binding posted to dri-devel.

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, and particular when the
dcache is off. 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

Changes in v3:
- Add new commit for pwm binding and node
- Add new panel binding to fit with tegra display controller binding
- Add probe function to read in fdt parameters in display driver
- Add separate call to pwm_init() in board_init()
- Adjust LCD driver to use new SOC display driver structures
- Bring in proposed tegra display controller binding
- Decode fdt node within the pwm driver
- Fix tiny bug in mult-line lcd scrolling
- Handle a cached frame buffer out of normal U-Boot memory
- Introduce concept of a pwm channel, rather than separate peripherals
- Move some fdt decode code from LCD driver to SOC display driver
- Put the LCD cache flush logic back into lcd_puts()
- Remove LPW1 pin which is not needed by display
- Remove spurious newline from fdtdec_get_addr() debug output
- Rename fdt config structures
- Rename pwfm driver to pwm
- Separate display driver and LCD driver more in fdt
- Tidy up fdtdec_decode_gpios() debug output
- Use displaymode binding for fdt
- Use new proposed upstream pwm binding
- Use new pwm binding from pre-linux-next
- Use new upstream proposed LCD definitions

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

Simon Glass (16):
  fdt: Tidy debugging, add to fdtdec_get_int/addr()
  fdt: Add header guard to fdtdec.h
  tegra: Use const for pinmux_config_pingroup/table()
  tegra: Add display support to funcmux
  tegra: fdt: Add pwm binding and node
  tegra: fdt: Add LCD definitions for Tegra
  tegra: Add support for PWM
  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            |  389 +++++++++++++++++
 arch/arm/cpu/armv7/tegra2/funcmux.c            |   38 ++
 arch/arm/cpu/armv7/tegra2/pinmux.c             |    4 +-
 arch/arm/cpu/armv7/tegra2/pwm.c                |   99 +++++
 arch/arm/dts/tegra20.dtsi                      |   96 +++++
 arch/arm/include/asm/arch-tegra2/dc.h          |  544 ++++++++++++++++++++++++
 arch/arm/include/asm/arch-tegra2/display.h     |  152 +++++++
 arch/arm/include/asm/arch-tegra2/pinmux.h      |    4 +-
 arch/arm/include/asm/arch-tegra2/pwm.h         |   75 ++++
 arch/arm/include/asm/system.h                  |   30 ++
 arch/arm/lib/cache-cp15.c                      |   62 +++-
 board/nvidia/common/board.c                    |   24 +-
 board/nvidia/dts/tegra2-seaboard.dts           |   32 ++
 common/lcd.c                                   |   86 +++-
 doc/device-tree-bindings/pwm/tegra20-pwm.txt   |   18 +
 doc/device-tree-bindings/video/displaymode.txt |   42 ++
 doc/device-tree-bindings/video/tegra20-dc.txt  |   89 ++++
 drivers/video/Makefile                         |    1 +
 drivers/video/tegra.c                          |  368 ++++++++++++++++
 include/configs/seaboard.h                     |   11 +-
 include/configs/tegra2-common.h                |    3 +
 include/fdtdec.h                               |    5 +
 include/lcd.h                                  |   11 +
 lib/fdtdec.c                                   |   29 +-
 27 files changed, 2199 insertions(+), 41 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/tegra2/display.c
 create mode 100644 arch/arm/cpu/armv7/tegra2/pwm.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/pwm.h
 create mode 100644 doc/device-tree-bindings/pwm/tegra20-pwm.txt
 create mode 100644 doc/device-tree-bindings/video/displaymode.txt
 create mode 100644 doc/device-tree-bindings/video/tegra20-dc.txt
 create mode 100644 drivers/video/tegra.c

-- 
1.7.7.3

^ permalink raw reply	[flat|nested] 81+ messages in thread

end of thread, other threads:[~2012-10-19 23:49 UTC | newest]

Thread overview: 81+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-12 15:25 [U-Boot] [PATCH v3 0/18] tegra: Add display driver and LCD support for Seaboard Simon Glass
2012-07-12 15:25 ` [PATCH v3 02/18] fdt: Add header guard to fdtdec.h Simon Glass
2012-07-12 15:25   ` [U-Boot] " Simon Glass
2012-07-19 13:49   ` Mike Frysinger
2012-07-19 13:49     ` [U-Boot] " Mike Frysinger
2012-09-21 20:08   ` Anatolij Gustschin
2012-07-12 15:25 ` [U-Boot] [PATCH v3 03/18] tegra: Use const for pinmux_config_pingroup/table() Simon Glass
2012-07-19 13:53   ` Mike Frysinger
2012-07-12 15:25 ` [U-Boot] [PATCH v3 04/18] tegra: Add display support to funcmux Simon Glass
2012-07-19 13:54   ` Mike Frysinger
2012-07-12 15:25 ` [U-Boot] [PATCH v3 07/18] tegra: Add support for PWM Simon Glass
2012-07-19 13:55   ` Mike Frysinger
2012-09-27 13:51     ` Simon Glass
2012-07-12 15:25 ` [U-Boot] [PATCH v3 08/18] tegra: Add SOC support for display/lcd Simon Glass
2012-07-19  7:37   ` Thierry Reding
2012-07-19  8:24     ` Adam Jiang
2012-07-19  8:28       ` Thierry Reding
2012-07-19  8:03   ` Adam Jiang
2012-07-19 14:13     ` Mike Frysinger
2012-09-27 17:44     ` Simon Glass
2012-07-12 15:25 ` [U-Boot] [PATCH v3 09/18] tegra: Add LCD driver Simon Glass
2012-07-19  7:41   ` Thierry Reding
2012-09-27 17:28     ` Simon Glass
2012-07-12 15:25 ` [U-Boot] [PATCH v3 10/18] tegra: Add LCD support to Nvidia boards Simon Glass
2012-07-12 15:25 ` [U-Boot] [PATCH v3 11/18] arm: Add control over cachability of memory regions Simon Glass
2012-07-12 18:12   ` Albert ARIBAUD
2012-07-19 14:10     ` Mike Frysinger
2012-09-27 17:54       ` Simon Glass
2012-07-12 15:25 ` [U-Boot] [PATCH v3 12/18] lcd: Add CONFIG_LCD_ALIGNMENT to select frame buffer alignment Simon Glass
2012-07-19 13:59   ` Mike Frysinger
2012-09-27 19:20     ` Simon Glass
2012-07-12 15:25 ` [U-Boot] [PATCH v3 13/18] lcd: Add support for flushing LCD fb from dcache after update Simon Glass
2012-07-19 14:01   ` Mike Frysinger
2012-07-19 16:52   ` Mike Frysinger
2012-08-09  7:43   ` Lukasz Majewski
2012-10-16 18:16     ` Simon Glass
2012-10-17 10:38       ` Lukasz Majewski
2012-10-17 15:34         ` Eric Nelson
2012-10-17 22:07           ` Simon Glass
2012-10-18  0:41             ` Eric Nelson
2012-10-18  0:50               ` Simon Glass
2012-10-18  1:07                 ` Eric Nelson
2012-10-19 23:49                   ` Simon Glass
2012-07-12 15:25 ` [U-Boot] [PATCH v3 14/18] tegra: Align LCD frame buffer to section boundary Simon Glass
2012-07-19 14:01   ` Mike Frysinger
2012-07-12 15:25 ` [U-Boot] [PATCH v3 15/18] tegra: Support control of cache settings for LCD Simon Glass
     [not found] ` <1342106718-3058-1-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2012-07-12 15:25   ` [PATCH v3 01/18] fdt: Tidy debugging, add to fdtdec_get_int/addr() Simon Glass
2012-07-12 15:25     ` [U-Boot] " Simon Glass
2012-09-21 20:06     ` Anatolij Gustschin
2012-07-12 15:25   ` [PATCH v3 05/18] tegra: fdt: Add pwm binding and node Simon Glass
2012-07-12 15:25     ` [U-Boot] " Simon Glass
2012-07-12 15:25   ` [PATCH v3 06/18] tegra: fdt: Add LCD definitions for Tegra Simon Glass
2012-07-12 15:25     ` [U-Boot] " Simon Glass
     [not found]     ` <1342106718-3058-7-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2012-07-31  9:27       ` Simon Glass
2012-07-31  9:27         ` [U-Boot] " Simon Glass
     [not found]         ` <CAPnjgZ2SbVVKxUdW1cvLf_9rAWLWeiVr-y6S_sz-Uw5_O_AyQA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-07-31  9:51           ` Thierry Reding
2012-07-31  9:51             ` [U-Boot] " Thierry Reding
     [not found]             ` <20120731095116.GA16155-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-09-27 19:44               ` Simon Glass
2012-09-27 19:44                 ` [U-Boot] " Simon Glass
2012-07-31 16:12           ` Stephen Warren
2012-07-31 16:12             ` [U-Boot] " Stephen Warren
2012-09-27 13:58             ` Simon Glass
2012-09-27 13:58               ` [U-Boot] " Simon Glass
     [not found]               ` <CAPnjgZ2NAf4PF0_U9hQeJzpdL87ZNq+WpxsbFJQHbh4rY2MoEg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-27 15:49                 ` Stephen Warren
2012-09-27 15:49                   ` [U-Boot] " Stephen Warren
2012-09-27 20:27                   ` Simon Glass
2012-09-27 20:27                     ` [U-Boot] " Simon Glass
     [not found]                     ` <CAPnjgZ2R=G=xmjdoP74JeAknwH9QGx8+mED7TQ8Kd_zEmcVwtQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-27 23:21                       ` Stephen Warren
2012-09-27 23:21                         ` [U-Boot] " Stephen Warren
2012-09-27 23:37                         ` Simon Glass
2012-09-27 23:37                           ` [U-Boot] " Simon Glass
     [not found]                           ` <CAPnjgZ3JuE_jiSRGW6o3eCbp4cLCf1uenKz4kPCpfqLJ3Mdmjw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-28  5:42                             ` Thierry Reding
2012-09-28  5:42                               ` [U-Boot] " Thierry Reding
2012-07-12 15:25   ` [PATCH v3 16/18] tegra: fdt: Add LCD definitions for Seaboard Simon Glass
2012-07-12 15:25     ` [U-Boot] " Simon Glass
2012-07-12 15:25 ` [U-Boot] [PATCH v3 17/18] lcd: Add CONSOLE_SCROLL_LINES option to speed console Simon Glass
2012-07-19 14:04   ` Mike Frysinger
2012-09-27 19:23     ` Simon Glass
2012-07-12 15:25 ` [U-Boot] [PATCH v3 18/18] tegra: Enable display/lcd support on Seaboard Simon Glass
2012-07-19  7:58 ` [U-Boot] [PATCH v3 0/18] tegra: Add display driver and LCD support for Seaboard Thierry Reding
2012-07-31  9:28   ` Simon Glass

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.