devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 0/7] add at91sam9 LCDC DRM driver
@ 2018-08-12 18:41 Sam Ravnborg
  2018-08-12 18:46 ` [PATCH v1 1/7] atmel-hlcdc: renamed directory to drm/atmel/ Sam Ravnborg
                   ` (9 more replies)
  0 siblings, 10 replies; 50+ messages in thread
From: Sam Ravnborg @ 2018-08-12 18:41 UTC (permalink / raw)
  To: Boris Brezillon, Rob Herring, Mark Rutland, Lee Jones,
	Nicolas Ferre, Alexandre Belloni
  Cc: devicetree, Sam Ravnborg, linux-arm-kernel, dri-devel, linux-pwm

New DRM based driver for at91sam9 SOC's that uses the
Atmel LCDC IP core.

This is first version of a patch set that adds
drivers for the Atmel LCDC IP core.
Posted for review as the basics works now.

The LCDC IP core contains two devices:
- a PWM often used for backlight
- a LCD display controller

Both devices are supported today by the atmel_lcdfb driver.
For this new set of drivers the compatible strings was
selected to avoid clash with the existing compatible
strings used for the atmel_lcdfb driver to allow them
to co-exist.

This patchset implements three drivers.
- A MFD driver that include the generic parts.
- A PWM driver.
- A DRM display controller driver.
This is the same split as used for the Atmel hlcdc IP.

The hlcdc and lcdc has only a few things in common and
trying to share the code for them was not a viable solution.

The DRM implementation has a few shortcomings compared to the
existing fbdev based driver:
    - STN displays are not supported
            Binding support is missing but most of the
            STN specific functionality is otherwise ported
            from the fbdev driver.
            I assume the info should come from the panel
            but as I lack HW I have not looked too much
            into what is required.
    - gamma support is missing
            The driver utilises drm_simple_kms_helper and
            this helper lacks support for setting up gamma.
            If this is useful please let me know and I
            will extend drm_simple_kms_helper to support this
            and update the driver.
    - modesetting is not checked (see TODO in file)
            Is this required for such a simple setup?
    - support for extra modes as applicable (and lcd-wiring-mode)
    - support for AVR32 (is it relevant?)

The first patch renames .../drm/atmel-hlcdc to .../drm/atmel
to have a nice home for both drivers.

The drivers _works_ on a proprietary at91sam9263 based board
and I will eventually migrate the at91sam9263ek over
to use it as well.

Works is maybe a stretch - the following was tested:
  modetest shows reasonable output
  modetest -s shows some nice colored squares
  vbltest shows 45.70 Hz (after terminating modetest -s with SIGINT)
  drmdevice shows reasonable output
  brightness can be controlled

Anything else that can be recommended for some basic tests?
How to test suspend/resume?

REVIEW
Please give feedback on general structure/architecture
Please check if the drm framework is used in the optimal way
And then the usual review from spelling errors, names, style etc.

All feedback (from spelling errors to general structure) appreciated!

	Sam

Sam Ravnborg (7):
      atmel-hlcdc: renamed directory to drm/atmel/
      dt-binding: add bindings for Atmel LCDC mfd
      mfd: add atmel-lcdc driver
      dt-bindings: add bindings for Atmel LCDC pwm
      pwm: add pwm-atmel-lcdc driver
      dt-bindings: add bindings for Atmel lcdc-display-controller
      drm: add Atmel LCDC display controller support

 .../display/atmel/lcdc-display-controller.txt      |   40 +
 .../devicetree/bindings/mfd/atmel-lcdc.txt         |   75 ++
 .../devicetree/bindings/pwm/atmel-lcdc-pwm.txt     |   30 +
 MAINTAINERS                                        |    9 +-
 drivers/gpu/drm/Kconfig                            |    2 +-
 drivers/gpu/drm/Makefile                           |    2 +-
 drivers/gpu/drm/atmel-hlcdc/Kconfig                |   10 -
 drivers/gpu/drm/atmel/Kconfig                      |   28 +
 drivers/gpu/drm/{atmel-hlcdc => atmel}/Makefile    |    2 +
 .../drm/{atmel-hlcdc => atmel}/atmel_hlcdc_crtc.c  |    0
 .../drm/{atmel-hlcdc => atmel}/atmel_hlcdc_dc.c    |    0
 .../drm/{atmel-hlcdc => atmel}/atmel_hlcdc_dc.h    |    0
 .../{atmel-hlcdc => atmel}/atmel_hlcdc_output.c    |    0
 .../drm/{atmel-hlcdc => atmel}/atmel_hlcdc_plane.c |    0
 drivers/gpu/drm/atmel/atmel_lcdc-dc.c              | 1094 ++++++++++++++++++++
 drivers/mfd/Kconfig                                |   10 +
 drivers/mfd/Makefile                               |    1 +
 drivers/mfd/atmel-lcdc.c                           |  158 +++
 drivers/pwm/Kconfig                                |   13 +
 drivers/pwm/Makefile                               |    1 +
 drivers/pwm/pwm-atmel-lcdc.c                       |  178 ++++
 include/linux/mfd/atmel-lcdc.h                     |  184 ++++
 22 files changed, 1824 insertions(+), 13 deletions(-)

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

end of thread, other threads:[~2018-08-26 18:41 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-12 18:41 [RFC PATCH 0/7] add at91sam9 LCDC DRM driver Sam Ravnborg
2018-08-12 18:46 ` [PATCH v1 1/7] atmel-hlcdc: renamed directory to drm/atmel/ Sam Ravnborg
2018-08-14  8:39   ` Daniel Vetter
2018-08-14 16:19     ` Sam Ravnborg
2018-08-16  7:41       ` Daniel Vetter
2018-08-22 20:09         ` Sam Ravnborg
2018-08-22 20:22           ` Daniel Vetter
2018-08-24  8:28   ` Boris Brezillon
2018-08-24 15:43     ` Sam Ravnborg
2018-08-12 18:46 ` [PATCH v1 2/7] dt-binding: add bindings for Atmel LCDC mfd Sam Ravnborg
2018-08-24  8:45   ` Boris Brezillon
2018-08-24 15:58     ` Sam Ravnborg
2018-08-12 18:46 ` [PATCH v1 3/7] mfd: add atmel-lcdc driver Sam Ravnborg
2018-08-14 11:09   ` kbuild test robot
2018-08-15  5:24   ` Lee Jones
2018-08-15 20:40     ` Sam Ravnborg
2018-08-16  8:28       ` Nicolas Ferre
2018-08-16  8:42         ` Lee Jones
2018-08-24  8:37         ` Boris Brezillon
2018-08-24  8:15     ` Boris Brezillon
2018-08-24 10:58       ` Lee Jones
2018-08-15  8:11   ` kbuild test robot
2018-08-24  8:48   ` Boris Brezillon
2018-08-12 18:46 ` [PATCH v1 4/7] dt-bindings: add bindings for Atmel LCDC pwm Sam Ravnborg
2018-08-12 18:46 ` [PATCH v1 5/7] pwm: add pwm-atmel-lcdc driver Sam Ravnborg
2018-08-12 18:46 ` [PATCH v1 6/7] dt-bindings: add bindings for Atmel lcdc-display-controller Sam Ravnborg
2018-08-12 18:46 ` [PATCH v1 7/7] drm: add Atmel LCDC display controller support Sam Ravnborg
2018-08-24 12:31   ` Boris Brezillon
2018-08-26 18:41     ` Sam Ravnborg
2018-08-26 14:28   ` Noralf Trønnes
2018-08-26 14:58     ` Sam Ravnborg
2018-08-12 19:55 ` [RFC PATCH 0/7] add at91sam9 LCDC DRM driver Sam Ravnborg
2018-08-13 14:47   ` Nicolas Ferre
2018-08-14  8:41     ` Daniel Vetter
2018-08-22 20:12       ` Sam Ravnborg
2018-08-23  6:16         ` Daniel Vetter
2018-08-13 15:54 ` Nicolas Ferre
2018-08-13 18:18   ` Sam Ravnborg
2018-08-13 22:04     ` Rob Herring
2018-08-14 16:43       ` Sam Ravnborg
2018-08-14 22:42         ` Rob Herring
2018-08-15  4:48           ` Sam Ravnborg
2018-08-15 14:45             ` Rob Herring
2018-08-15 15:04               ` Daniel Vetter
2018-08-15 15:41                 ` Peter Rosin
2018-08-15 20:48                   ` Sam Ravnborg
2018-08-14 14:36     ` Alexandre Belloni
2018-08-14 16:16       ` Sam Ravnborg
2018-08-24  8:22 ` Boris Brezillon
2018-08-24 15:52   ` Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).