All of lore.kernel.org
 help / color / mirror / Atom feed
* [RESEND PATCH v3 00/11] drm: add support for Atmel HLCDC Display Controller
@ 2014-07-07 16:42 ` Boris BREZILLON
  0 siblings, 0 replies; 149+ messages in thread
From: Boris BREZILLON @ 2014-07-07 16:42 UTC (permalink / raw)
  To: Samuel Ortiz, Lee Jones, Thierry Reding, linux-pwm, David Airlie,
	dri-devel, Nicolas Ferre, Jean-Christophe Plagniol-Villard,
	Alexandre Belloni, Andrew Victor
  Cc: Jean-Jacques Hiblot, Laurent Pinchart, Rob Herring, Pawel Moll,
	Mark Rutland, Ian Campbell, Kumar Gala, devicetree, Bo Shen,
	Thomas Petazzoni, linux-arm-kernel, Robert Nelson, Tim Niemeyer,
	Boris BREZILLON

Hello,

Sorry for the noise, but I forgot to add the LAKML in Cc.

This patch series adds support for Atmel HLCDC (HLCD Controller) available
on some Atmel SoCs (i.e. the sama5d3 family).

The first two versions of this series didn't receive any reviews from DRM
maintainers or experienced DRM developers.
Anyway, I hope I'll get some feedback on this version.

The HLCDC actually provides a Display Controller and a PWM device, hence I
decided to declare an MFD device exposing 2 subdevices: a display
controller and a PWM chip.
This also solves a circular dependency issue preventing HLCDC driver from
unloading.
The HLCDC request a drm_panel device, which request a backlight device
(a PWM backlight), which depends on a PWM which is provided by the HLCDC
driver (hlcdc -> panel -> backlight -> hlcdc (pwm part)).

The current implementation only supports sama5d3 SoCs but other SoCs should
be easily ported by defining new compatible strings and adding HLCDC
description structures for these SoCs.

The drivers supports basic CRTC functionalities, several overlays and an
hardware cursor.

At the moment, it only supports connection to LCD panels through an RGB
connector (defined as an LVDS connector in my implementation), though
connection to other kind of devices (like DRM bridges) can be added later.

It also supports several RGB format on all planes and some YUV formats on
the HEO overlay plane.

Best Regards,

Boris

Changes since v2:
- fix coding style issues (macro indentation)
- make use of GENMASK in several places
- declare regmap config as a static structure
- rework hlcdc plane update API
- rework cursor handling to make use of the new plane update API
- fix backporch config
- do not use devm_regmap_init_mmio_clk to avoid extra clk_enable
  clk disable calls when accessing registers
- explicitely include regmap and clk headers instead of relying on
  atmel-hlcdc.h inclusions
- make the atmel-hlcdc driver depends on CONFIG_OF
- separate DT bindings documentation from driver implementation
- support several pin muxing for HLCDC pins on sama5d3 SoCs

Changes since v1:
- replace the backlight driver by a PWM driver
- make use of drm_panel infrastructure
- split driver code in several subsystem: MFD, PWM and DRM
- add support for overlays
- add support for hardware cursor


Boris BREZILLON (11):
  mfd: add atmel-hlcdc driver
  mfd: add documentation for atmel-hlcdc DT bindings
  pwm: add support for atmel-hlcdc-pwm device
  pwm: add DT bindings documentation for atmel-hlcdc-pwm driver
  drm: add Atmel HLCDC Display Controller support
  drm: add DT bindings documentation for atmel-hlcdc-dc driver
  ARM: AT91/dt: split sama5d3 lcd pin definitions to match RGB mode
    configs
  ARM: AT91/dt: add alternative pin muxing for sama5d3 lcd pins
  ARM: at91/dt: define the HLCDC node available on sama5d3 SoCs
  ARM: at91/dt: add LCD panel description to sama5d3xdm.dtsi
  ARM: at91/dt: enable the LCD panel on sama5d3xek boards

 .../devicetree/bindings/drm/atmel-hlcdc-dc.txt     |  59 ++
 .../devicetree/bindings/mfd/atmel-hlcdc.txt        |  40 ++
 .../devicetree/bindings/pwm/atmel-hlcdc-pwm.txt    |  46 ++
 arch/arm/boot/dts/sama5d31ek.dts                   |  24 +
 arch/arm/boot/dts/sama5d33ek.dts                   |  24 +
 arch/arm/boot/dts/sama5d34ek.dts                   |  24 +
 arch/arm/boot/dts/sama5d36ek.dts                   |  24 +
 arch/arm/boot/dts/sama5d3_lcd.dtsi                 | 197 +++++-
 arch/arm/boot/dts/sama5d3xdm.dtsi                  |  43 ++
 drivers/gpu/drm/Kconfig                            |   2 +
 drivers/gpu/drm/Makefile                           |   1 +
 drivers/gpu/drm/atmel-hlcdc/Kconfig                |  11 +
 drivers/gpu/drm/atmel-hlcdc/Makefile               |   7 +
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c     | 469 +++++++++++++
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c       | 474 ++++++++++++++
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h       | 210 ++++++
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.c    | 706 ++++++++++++++++++++
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.h    | 422 ++++++++++++
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_panel.c    | 351 ++++++++++
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c    | 729 +++++++++++++++++++++
 drivers/mfd/Kconfig                                |  12 +
 drivers/mfd/Makefile                               |   1 +
 drivers/mfd/atmel-hlcdc.c                          | 119 ++++
 drivers/pwm/Kconfig                                |   9 +
 drivers/pwm/Makefile                               |   1 +
 drivers/pwm/pwm-atmel-hlcdc.c                      | 229 +++++++
 include/linux/mfd/atmel-hlcdc.h                    |  78 +++
 27 files changed, 4281 insertions(+), 31 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/drm/atmel-hlcdc-dc.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/atmel-hlcdc.txt
 create mode 100644 Documentation/devicetree/bindings/pwm/atmel-hlcdc-pwm.txt
 create mode 100644 drivers/gpu/drm/atmel-hlcdc/Kconfig
 create mode 100644 drivers/gpu/drm/atmel-hlcdc/Makefile
 create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
 create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
 create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h
 create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.c
 create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.h
 create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_panel.c
 create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
 create mode 100644 drivers/mfd/atmel-hlcdc.c
 create mode 100644 drivers/pwm/pwm-atmel-hlcdc.c
 create mode 100644 include/linux/mfd/atmel-hlcdc.h

-- 
1.8.3.2


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

end of thread, other threads:[~2014-07-21 22:17 UTC | newest]

Thread overview: 149+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-07 16:42 [RESEND PATCH v3 00/11] drm: add support for Atmel HLCDC Display Controller Boris BREZILLON
2014-07-07 16:42 ` Boris BREZILLON
2014-07-07 16:42 ` [RESEND PATCH v3 01/11] mfd: add atmel-hlcdc driver Boris BREZILLON
2014-07-07 16:42   ` Boris BREZILLON
2014-07-07 16:42 ` [RESEND PATCH v3 02/11] mfd: add documentation for atmel-hlcdc DT bindings Boris BREZILLON
2014-07-07 16:42   ` Boris BREZILLON
2014-07-07 16:42 ` [RESEND PATCH v3 03/11] pwm: add support for atmel-hlcdc-pwm device Boris BREZILLON
2014-07-07 16:42   ` Boris BREZILLON
2014-07-07 16:42 ` [RESEND PATCH v3 04/11] pwm: add DT bindings documentation for atmel-hlcdc-pwm driver Boris BREZILLON
2014-07-07 16:42   ` Boris BREZILLON
2014-07-07 16:42 ` [RESEND PATCH v3 05/11] drm: add Atmel HLCDC Display Controller support Boris BREZILLON
2014-07-07 16:42   ` Boris BREZILLON
2014-07-08  3:45   ` Rob Clark
2014-07-08  7:23     ` Boris BREZILLON
2014-07-08  7:23       ` Boris BREZILLON
2014-07-08 12:49       ` Rob Clark
2014-07-08 12:49         ` Rob Clark
2014-07-08 14:37         ` Boris BREZILLON
2014-07-08 14:37           ` Boris BREZILLON
2014-07-08 15:41           ` Rob Clark
2014-07-08 15:41             ` Rob Clark
2014-07-08 17:08             ` Boris BREZILLON
2014-07-08 17:08               ` Boris BREZILLON
2014-07-08 23:51               ` Matt Roper
2014-07-08 23:51                 ` Matt Roper
2014-07-09  7:14                 ` Boris BREZILLON
2014-07-09  7:14                   ` Boris BREZILLON
2014-07-09 14:02                   ` Daniel Vetter
2014-07-09 14:02                     ` Daniel Vetter
2014-07-09  8:18     ` Boris BREZILLON
2014-07-09  8:18       ` Boris BREZILLON
2014-07-09 11:53       ` Rob Clark
2014-07-09 11:53         ` Rob Clark
2014-07-11 15:17         ` [RFC PATCH] drm: rework flip-work helpers to avoid calling func when the FIFO is full Boris BREZILLON
2014-07-11 15:41           ` Rob Clark
2014-07-11 15:47             ` Boris BREZILLON
2014-07-11 15:57               ` Boris BREZILLON
2014-07-11 16:05               ` Rob Clark
2014-07-12 18:16   ` [RESEND PATCH v3 05/11] drm: add Atmel HLCDC Display Controller support Boris BREZILLON
2014-07-12 18:16     ` Boris BREZILLON
2014-07-12 18:37     ` Rob Clark
2014-07-12 18:37       ` Rob Clark
2014-07-15 11:26       ` Boris BREZILLON
2014-07-15 11:26         ` Boris BREZILLON
2014-07-07 16:42 ` [RESEND PATCH v3 06/11] drm: add DT bindings documentation for atmel-hlcdc-dc driver Boris BREZILLON
2014-07-07 16:42   ` Boris BREZILLON
2014-07-10 11:16   ` Laurent Pinchart
2014-07-10 11:16     ` Laurent Pinchart
2014-07-10 12:56     ` Boris BREZILLON
2014-07-10 12:56       ` Boris BREZILLON
2014-07-11 10:37       ` Laurent Pinchart
2014-07-11 10:37         ` Laurent Pinchart
2014-07-11 12:00         ` Boris BREZILLON
2014-07-11 12:00           ` Boris BREZILLON
2014-07-11 12:19           ` Boris BREZILLON
2014-07-11 12:19             ` Boris BREZILLON
2014-07-14 10:18           ` Thierry Reding
2014-07-14 10:18             ` Thierry Reding
2014-07-15 11:45             ` Boris BREZILLON
2014-07-15 11:45               ` Boris BREZILLON
2014-07-14 10:05   ` Thierry Reding
2014-07-14 10:05     ` Thierry Reding
2014-07-15 10:06     ` Boris BREZILLON
2014-07-15 10:06       ` Boris BREZILLON
2014-07-15 10:20       ` Laurent Pinchart
2014-07-15 10:20         ` Laurent Pinchart
2014-07-15 10:37         ` Thierry Reding
2014-07-15 10:37           ` Thierry Reding
2014-07-15 10:43           ` Laurent Pinchart
2014-07-15 10:43             ` Laurent Pinchart
2014-07-15 10:52             ` Thierry Reding
2014-07-15 10:52               ` Thierry Reding
2014-07-15 11:07               ` Laurent Pinchart
2014-07-15 11:07                 ` Laurent Pinchart
2014-07-16 13:05                 ` Boris BREZILLON
2014-07-16 13:05                   ` Boris BREZILLON
2014-07-16 13:20                   ` Laurent Pinchart
2014-07-16 13:20                     ` Laurent Pinchart
2014-07-16 13:20                     ` Laurent Pinchart
2014-07-16 13:44                     ` Boris BREZILLON
2014-07-16 13:44                       ` Boris BREZILLON
2014-07-15 12:14               ` Boris BREZILLON
2014-07-15 12:14                 ` Boris BREZILLON
2014-07-15 10:31       ` Thierry Reding
2014-07-15 10:31         ` Thierry Reding
2014-07-18 14:51         ` Boris BREZILLON
2014-07-18 14:51           ` Boris BREZILLON
2014-07-18 15:43           ` Boris BREZILLON
2014-07-18 15:43             ` Boris BREZILLON
2014-07-21  8:59             ` Thierry Reding
2014-07-21  8:59               ` Thierry Reding
2014-07-21  9:24               ` Boris BREZILLON
2014-07-21  9:24                 ` Boris BREZILLON
2014-07-21  9:32                 ` Laurent Pinchart
2014-07-21  9:32                   ` Laurent Pinchart
2014-07-21  9:57                   ` Boris BREZILLON
2014-07-21  9:57                     ` Boris BREZILLON
2014-07-21 12:12                     ` Thierry Reding
2014-07-21 12:12                       ` Thierry Reding
2014-07-21 12:16                       ` Laurent Pinchart
2014-07-21 12:16                         ` Laurent Pinchart
2014-07-21 12:34                         ` Boris BREZILLON
2014-07-21 12:34                           ` Boris BREZILLON
2014-07-21 12:55                           ` Thierry Reding
2014-07-21 12:55                             ` Thierry Reding
2014-07-21 13:22                             ` Laurent Pinchart
2014-07-21 13:22                               ` Laurent Pinchart
2014-07-21 13:30                               ` Thierry Reding
2014-07-21 13:30                                 ` Thierry Reding
2014-07-21 13:43                                 ` Boris BREZILLON
2014-07-21 13:43                                   ` Boris BREZILLON
2014-07-21 13:47                                   ` Laurent Pinchart
2014-07-21 13:47                                     ` Laurent Pinchart
2014-07-21 13:54                                     ` Thierry Reding
2014-07-21 13:54                                       ` Thierry Reding
2014-07-21 14:21                                       ` Boris BREZILLON
2014-07-21 14:21                                         ` Boris BREZILLON
2014-07-21 18:30                                         ` Laurent Pinchart
2014-07-21 18:30                                           ` Laurent Pinchart
2014-07-21 22:04                                           ` Thierry Reding
2014-07-21 22:04                                             ` Thierry Reding
2014-07-21 14:18                                     ` Boris BREZILLON
2014-07-21 14:18                                       ` Boris BREZILLON
2014-07-21 18:32                                       ` Laurent Pinchart
2014-07-21 18:32                                         ` Laurent Pinchart
2014-07-21 17:06                                   ` Russell King - ARM Linux
2014-07-21 17:06                                     ` Russell King - ARM Linux
2014-07-21 22:17                                     ` Thierry Reding
2014-07-21 22:17                                       ` Thierry Reding
2014-07-21 12:15           ` Thierry Reding
2014-07-21 12:15             ` Thierry Reding
2014-07-21 12:33             ` Boris BREZILLON
2014-07-21 12:33               ` Boris BREZILLON
2014-07-21 12:56               ` Thierry Reding
2014-07-21 12:56                 ` Thierry Reding
2014-07-21 13:26                 ` Laurent Pinchart
2014-07-21 13:26                   ` Laurent Pinchart
2014-07-21 13:33                   ` Thierry Reding
2014-07-21 13:33                     ` Thierry Reding
2014-07-07 16:43 ` [RESEND PATCH v3 07/11] ARM: AT91/dt: split sama5d3 lcd pin definitions to match RGB mode configs Boris BREZILLON
2014-07-07 16:43   ` Boris BREZILLON
2014-07-07 16:43 ` [RESEND PATCH v3 08/11] ARM: AT91/dt: add alternative pin muxing for sama5d3 lcd pins Boris BREZILLON
2014-07-07 16:43   ` Boris BREZILLON
2014-07-07 16:43 ` [RESEND PATCH v3 09/11] ARM: at91/dt: define the HLCDC node available on sama5d3 SoCs Boris BREZILLON
2014-07-07 16:43   ` Boris BREZILLON
2014-07-07 16:43 ` [RESEND PATCH v3 10/11] ARM: at91/dt: add LCD panel description to sama5d3xdm.dtsi Boris BREZILLON
2014-07-07 16:43   ` Boris BREZILLON
2014-07-07 16:43 ` [RESEND PATCH v3 11/11] ARM: at91/dt: enable the LCD panel on sama5d3xek boards Boris BREZILLON
2014-07-07 16:43   ` Boris BREZILLON

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.