devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Boris BREZILLON <boris.brezillon@free-electrons.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org,
	Nicolas Ferre <nicolas.ferre@atmel.com>,
	dri-devel@lists.freedesktop.org,
	Alexandre Belloni <alexandre.belloni@free-electrons.com>,
	Bo Shen <voice.shen@atmel.com>, Lee Jones <lee.jones@linaro.org>,
	Jean-Jacques Hiblot <jjhiblot@traphandler.com>,
	Samuel Ortiz <sameo@linux.intel.com>,
	Tim Niemeyer <tim.niemeyer@corscience.de>,
	Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
	linux-pwm@vger.kernel.org, Pawel Moll <pawel.moll@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Rob Herring <robh+dt@kernel.org>,
	Andrew Victor <linux@maxim.org.za>,
	linux-arm-kernel@lists.infradead.org,
	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Kumar Gala <galak@codeaurora.org>
Subject: Re: [RESEND PATCH v3 06/11] drm: add DT bindings documentation for atmel-hlcdc-dc driver
Date: Thu, 10 Jul 2014 14:56:26 +0200	[thread overview]
Message-ID: <20140710145626.48cb956f@bbrezillon> (raw)
In-Reply-To: <1584022.nQ4HpIUW7J@avalon>

Hi Laurent,

On Thu, 10 Jul 2014 13:16:21 +0200
Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote:

> Hi Boris,
> 
> Thank you for the patch.
> 
> On Monday 07 July 2014 18:42:59 Boris BREZILLON wrote:
> > The Atmel HLCDC (HLCD Controller) IP available on some Atmel SoCs (i.e.
> > at91sam9n12, at91sam9x5 family or sama5d3 family) provides a display
> > controller device.
> > 
> > The HLCDC block provides a single RGB output port, and only supports LCD
> > panels connection to LCD panels for now.
> > 
> > The atmel,panel property link the HLCDC RGB output with the LCD panel
> > connected on this port (note that the HLCDC RGB connector implementation
> > makes use of the DRM panel framework).
> > 
> > Connection to other external devices (DRM bridges) might be added later by
> > mean of a new atmel,xxx (atmel,bridge) property.
> > 
> > Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
> > ---
> >  .../devicetree/bindings/drm/atmel-hlcdc-dc.txt     | 59 +++++++++++++++++++
> >  1 file changed, 59 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/drm/atmel-hlcdc-dc.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/drm/atmel-hlcdc-dc.txt
> > b/Documentation/devicetree/bindings/drm/atmel-hlcdc-dc.txt new file mode
> > 100644
> > index 0000000..594bdb2
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/drm/atmel-hlcdc-dc.txt
> > @@ -0,0 +1,59 @@
> > +Device-Tree bindings for Atmel's HLCDC (High LCD Controller) DRM driver
> > +
> > +The Atmel HLCDC Display Controller is subdevice of the HLCDC MFD device.
> > +See Documentation/devicetree/bindings/mfd/atmel-hlcdc.txt for more details.
> > +
> > +Required properties:
> > + - compatible: value should be one of the following:
> > +   "atmel,hlcdc-dc"
> > + - interrupts: the HLCDC interrupt definition
> > + - pinctrl-names: the pin control state names. Should contain "default",
> > +   "rgb-444", "rgb-565", "rgb-666" and "rgb-888".
> > + - pinctrl-[0-4]: should contain the pinctrl states described by pinctrl
> > +   names.
> 
> Do you need to switch between the different pinctrl configurations at runtime, 
> or is the configuration selected from the panel type, which doesn't change ?

At the moment no, but if we ever need to support different devices on
the same RGB connector (actually Atmel's sama5d3xek boards have an
RGB to HDMI bridge connected on the same RGB connector) and these
devices do not support the same RGB mode (say your LCD panel supports
RGB888 and your RGB to HDMI bridge supports RGB555), then depending on
the output you select you'll have to change your pinctrl config at
runtime.

I'd say we could get rid of this runtime pinctrl config as a first step
if DT ABI stability was not required.
But it is, and I'd like to have a future proof binding to handle these
tricky cases when they occurs (if they ever do).

Anyway, I'm open to any other alternative that could let me add support
for this later on.

BTW, is there any reason for not defining an RGB connector type (I'm
currently defining HLCDC connector as an LVDS connector) ?

> 
> > + - atmel,panel: Should contain a phandle with 2 parameters.
> > +   The first cell is a phandle to a DRM panel device
> > +   The second cell encodes the RGB mode, which can take the following
> > values:
> > +   * 0: RGB444
> > +   * 1: RGB565
> > +   * 2: RGB666
> > +   * 3: RGB888
> > +   The third cell encodes specific flags describing LCD signals
> > configuration
> > +   (see Atmel's datasheet for a full description of these
> > fields):
> > +   * bit 0: HSPOL: Horizontal Synchronization Pulse Polarity
> > +   * bit 1: VSPOL: Vertical Synchronization Pulse Polarity
> > +   * bit 2: VSPDLYS: Vertical Synchronization Pulse Start
> > +   * bit 3: VSPDLYE: Vertical Synchronization Pulse End
> > +   * bit 4: DISPPOL: Display Signal Polarity
> > +   * bit 7: DISPDLY: LCD Controller Display Power Signal Synchronization
> > +   * bit 12: VSPSU: LCD Controller Vertical synchronization Pulse Setup
> > Configuration
> > +   * bit 13: VSPHO: LCD Controller Vertical synchronization Pulse Hold
> > Configuration
> > +   * bit 16-20: GUARDTIME: LCD DISPLAY Guard Time
> 
> If I'm not mistaken, those are HLCDC configuration values that depend on the 
> panel type and characteristics. Shouldn't they then be queries from the panel 
> through the drm_panel API at runtime instead of being specified in DT ? This 
> would likely require extending the drm_panel API.

HSPOL and VSPOL can be deduced from DRM_MODE_FLAG_[PN]HSYNC and
DRM_MODE_FLAG_[PN]VSYNC, I'm not sure for the other flags or the
GUARDTIME value.

Another question I had regarding these flags is whether they were LCD
panel specific or a mix of panel and board implementation.
Take the VSYNC HSYNC polarity, of course the LCD panel defines what it
expects in terms of polarity, but nothing prevents the HW designer from
inverting the VSYNC/HSYNC polarity (expect common sense :-)), right ?
A solution would be to override some drm_display_mode settings with
informations taken from the DT.

Thanks for your review.

Best Regards,

Boris

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

  reply	other threads:[~2014-07-10 12:56 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 ` [RESEND PATCH v3 01/11] mfd: add atmel-hlcdc driver 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 ` [RESEND PATCH v3 03/11] pwm: add support for atmel-hlcdc-pwm device 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 ` [RESEND PATCH v3 05/11] drm: add Atmel HLCDC Display Controller support Boris BREZILLON
2014-07-08  3:45   ` Rob Clark
2014-07-08  7:23     ` Boris BREZILLON
2014-07-08 12:49       ` Rob Clark
2014-07-08 14:37         ` Boris BREZILLON
2014-07-08 15:41           ` Rob Clark
2014-07-08 17:08             ` Boris BREZILLON
2014-07-08 23:51               ` Matt Roper
2014-07-09  7:14                 ` Boris BREZILLON
2014-07-09 14:02                   ` Daniel Vetter
2014-07-09  8:18     ` Boris BREZILLON
2014-07-09 11:53       ` Rob Clark
2014-07-12 18:16   ` Boris BREZILLON
2014-07-12 18:37     ` Rob Clark
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-10 11:16   ` Laurent Pinchart
2014-07-10 12:56     ` Boris BREZILLON [this message]
2014-07-11 10:37       ` Laurent Pinchart
2014-07-11 12:00         ` Boris BREZILLON
2014-07-11 12:19           ` Boris BREZILLON
2014-07-14 10:18           ` Thierry Reding
2014-07-15 11:45             ` Boris BREZILLON
2014-07-14 10:05   ` Thierry Reding
2014-07-15 10:06     ` Boris BREZILLON
2014-07-15 10:20       ` Laurent Pinchart
2014-07-15 10:37         ` Thierry Reding
2014-07-15 10:43           ` Laurent Pinchart
2014-07-15 10:52             ` Thierry Reding
2014-07-15 11:07               ` Laurent Pinchart
2014-07-16 13:05                 ` Boris BREZILLON
2014-07-16 13:20                   ` Laurent Pinchart
2014-07-16 13:44                     ` Boris BREZILLON
2014-07-15 12:14               ` Boris BREZILLON
2014-07-15 10:31       ` Thierry Reding
2014-07-18 14:51         ` Boris BREZILLON
2014-07-18 15:43           ` Boris BREZILLON
2014-07-21  8:59             ` Thierry Reding
2014-07-21  9:24               ` Boris BREZILLON
2014-07-21  9:32                 ` Laurent Pinchart
2014-07-21  9:57                   ` Boris BREZILLON
2014-07-21 12:12                     ` Thierry Reding
2014-07-21 12:16                       ` Laurent Pinchart
2014-07-21 12:34                         ` Boris BREZILLON
2014-07-21 12:55                           ` Thierry Reding
2014-07-21 13:22                             ` Laurent Pinchart
2014-07-21 13:30                               ` Thierry Reding
2014-07-21 13:43                                 ` Boris BREZILLON
2014-07-21 13:47                                   ` Laurent Pinchart
2014-07-21 13:54                                     ` Thierry Reding
2014-07-21 14:21                                       ` Boris BREZILLON
2014-07-21 18:30                                         ` Laurent Pinchart
2014-07-21 22:04                                           ` Thierry Reding
2014-07-21 14:18                                     ` Boris BREZILLON
2014-07-21 18:32                                       ` Laurent Pinchart
2014-07-21 17:06                                   ` Russell King - ARM Linux
2014-07-21 22:17                                     ` Thierry Reding
2014-07-21 12:15           ` Thierry Reding
2014-07-21 12:33             ` Boris BREZILLON
2014-07-21 12:56               ` Thierry Reding
2014-07-21 13:26                 ` Laurent Pinchart
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 ` [RESEND PATCH v3 08/11] ARM: AT91/dt: add alternative pin muxing for sama5d3 lcd pins 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 ` [RESEND PATCH v3 10/11] ARM: at91/dt: add LCD panel description to sama5d3xdm.dtsi Boris BREZILLON
2014-07-07 16:43 ` [RESEND PATCH v3 11/11] ARM: at91/dt: enable the LCD panel on sama5d3xek boards Boris BREZILLON

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140710145626.48cb956f@bbrezillon \
    --to=boris.brezillon@free-electrons.com \
    --cc=alexandre.belloni@free-electrons.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=galak@codeaurora.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=jjhiblot@traphandler.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux@maxim.org.za \
    --cc=mark.rutland@arm.com \
    --cc=nicolas.ferre@atmel.com \
    --cc=pawel.moll@arm.com \
    --cc=plagnioj@jcrosoft.com \
    --cc=robh+dt@kernel.org \
    --cc=sameo@linux.intel.com \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=tim.niemeyer@corscience.de \
    --cc=voice.shen@atmel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).