Re: [PATCH v2] video: fbdev: add Marvell PXA framebuffer binding

3 messages, 3 authors, 2015-10-08 · open the first message on its own page

Re: [PATCH v2] video: fbdev: add Marvell PXA framebuffer binding

From: Robert Jarzmik <robert.jarzmik@free.fr>
Date: 2015-10-06 19:37:48

Rob Herring [off-list ref] writes:
On Sun, Oct 4, 2015 at 5:31 AM, Robert Jarzmik [off-list ref] wrote:
quoted
Add documentation for the PXA frambuffer devicetree binding.
Strictly speaking this is a binding for PXA display controller, not a
Linux FB driver. There are lots of "framebuffer" and "DRM" bindings
which I'm trying to curb.
Yes, that's very true. That deserves a new commit message and a new file name
(marvell,pxa2xx-lcd).
quoted
 .../devicetree/bindings/video/marvell,pxafb.txt    | 80 ++++++++++++++++++++++
Please put in bindings/display/ as I'm consolidating all the display
related bindings there[1].
Of course, for v3.
quoted
+++ b/Documentation/devicetree/bindings/video/marvell,pxafb.txt
@@ -0,0 +1,80 @@
+PXA LCDC Framebuffer
+--------------------
+
+Required properties:
+ - compatible :
+       "marvell,pxa2xx-lcdc",
No differences in h/w for any of the chips?
All pxa25x, pxa27x and pxa3xx are compatible.
AFAIK, pxa3xx has an IP with additional registers. But :
 - these (this) register(s) is not necessary for the display controller to work
   (it's more a control to shift red/green/blue values, and energy management)
 - all the registers in pxa2{5,7}x are the same in pxa3xx

The pxafb driver acts today on the subset of registers which are the same across
all pxaXXX variants. This is what made me think only one compatible property was
required.

If I'm wrong, I could add "marvell,pxa3xx-lcdc", is that what you think I should
do ?
quoted
+ - reg : Should contain 1 register ranges(address and length).
+        Can contain an additional register range(address and length)
+        for fixed framebuffer memory. Useful for dedicated memories.
This is memory that can't be used for anything else? We already have
reserved-memory for this if it is just RAM. There's also a binding for
on-chip SRAM which should probably be used if the memory is usable for
other things.
That is a wrong copy paste I made. I was more thinking of having only 1 register
range, and no video memory reservation ...
quoted
+PXA LCDC Display
This should not be specific to PXA, but for this panel. This should be
in bindings/display/panel/.
Sure, for v3.
quoted
+----------------
+Required properties (as per of_videomode_helper):
+ - lcd-type: either "mono-stn", "mono-dstn", "color-stn", "color-dstn",
+                   "color-tft", "smart-panel"
+
+Optional properties (as per of_videomode_helper):
+ - power-supply: power supply regulator to the LCD to power it on or off
+                (see regulator.txt)
+ - backlight: backlight control (see backlight.txt)
+
+Required nodes:
+ - port: connection to the LCD controller
+ - display-timings: panel timings (see display-timing.txt)
If lcd-type is smart-panel, then this node would not make sense.
Ah I see, so this could be optional maybe ?

Actually when I'll move the panel definition to bindings/display/panel, is this
what I should do :
 - create a file marvell,pxa2xx-panel
 - input all these properties into this file

And then, when a board maintainer will create a devicetree description, he will
write something like :
      compatible = "toshiba,ltm0305a776";
      compatible = "marvell,pxa2xx-panel";
      lcd-type = "color-tft";
      ...

If that's the case, I wonder how to "enforce" that a panel used with
marvell,pxa2xx-lcdc (through the of_graph 'port' node) be compatible with
marvell,pxa2xx-panel ?

Cheers.

-- 
Robert

Re: [PATCH v2] video: fbdev: add Marvell PXA framebuffer binding

From: Philipp Zabel <hidden>
Date: 2015-10-08 06:50:01

On Tue, Oct 6, 2015 at 9:32 PM, Robert Jarzmik [off-list ref] wrote:
Rob Herring [off-list ref] writes:
quoted
quoted
+       "marvell,pxa2xx-lcdc",
No differences in h/w for any of the chips?
All pxa25x, pxa27x and pxa3xx are compatible.
AFAIK, pxa3xx has an IP with additional registers. But :
 - these (this) register(s) is not necessary for the display controller to work
   (it's more a control to shift red/green/blue values, and energy management)
 - all the registers in pxa2{5,7}x are the same in pxa3xx
So the pxa3xx is pxa2xx compatible. The pxa3xx device tree should
contain compatible = "marvell,pxa3xx-lcdc", "marvell,pxa2xx-lcdc";

That way we can just ignore the pxa3xx compatible value until the need
arises to do something different with the additional registers, and if
that happens we already have it in the device trees.
quoted
If lcd-type is smart-panel, then this node would not make sense.
Ah I see, so this could be optional maybe ?

Actually when I'll move the panel definition to bindings/display/panel, is this
what I should do :
 - create a file marvell,pxa2xx-panel
 - input all these properties into this file

And then, when a board maintainer will create a devicetree description, he will
write something like :
      compatible = "toshiba,ltm0305a776";
      compatible = "marvell,pxa2xx-panel";
      lcd-type = "color-tft";
      ...

If that's the case, I wonder how to "enforce" that a panel used with
marvell,pxa2xx-lcdc (through the of_graph 'port' node) be compatible with
marvell,pxa2xx-panel ?
I think we should move to use drm simple-panel as soon as possible,
but until this information can be derived from the compatible string,
it should maybe stay contained to the lcdc node. At least I don't
think adding a marvell panel compatible is a solution. Maybe this
could be generalized and added as an optional property to the
simple-panel bindings.

regards
Philipp

Re: [PATCH v2] video: fbdev: add Marvell PXA framebuffer binding

From: Rob Herring <robh@kernel.org>
Date: 2015-10-08 13:30:59

On Tue, Oct 6, 2015 at 2:32 PM, Robert Jarzmik [off-list ref] wrote:
Rob Herring [off-list ref] writes:
quoted
On Sun, Oct 4, 2015 at 5:31 AM, Robert Jarzmik [off-list ref] wrote:
quoted
Add documentation for the PXA frambuffer devicetree binding.
Strictly speaking this is a binding for PXA display controller, not a
Linux FB driver. There are lots of "framebuffer" and "DRM" bindings
which I'm trying to curb.
Yes, that's very true. That deserves a new commit message and a new file name
(marvell,pxa2xx-lcd).
quoted
quoted
 .../devicetree/bindings/video/marvell,pxafb.txt    | 80 ++++++++++++++++++++++
Please put in bindings/display/ as I'm consolidating all the display
related bindings there[1].
Of course, for v3.
quoted
quoted
+++ b/Documentation/devicetree/bindings/video/marvell,pxafb.txt
@@ -0,0 +1,80 @@
+PXA LCDC Framebuffer
+--------------------
+
+Required properties:
+ - compatible :
+       "marvell,pxa2xx-lcdc",
No differences in h/w for any of the chips?
All pxa25x, pxa27x and pxa3xx are compatible.
AFAIK, pxa3xx has an IP with additional registers. But :
 - these (this) register(s) is not necessary for the display controller to work
   (it's more a control to shift red/green/blue values, and energy management)
 - all the registers in pxa2{5,7}x are the same in pxa3xx

The pxafb driver acts today on the subset of registers which are the same across
all pxaXXX variants. This is what made me think only one compatible property was
required.

If I'm wrong, I could add "marvell,pxa3xx-lcdc", is that what you think I should
do ?
I would prefer specific compatibles (e.g. marvell,pxa270-lcdc) in
addition to a generic one. You never know when a specific chip will
have some quirk even though "the IP is the same".
quoted
quoted
+ - reg : Should contain 1 register ranges(address and length).
+        Can contain an additional register range(address and length)
+        for fixed framebuffer memory. Useful for dedicated memories.
This is memory that can't be used for anything else? We already have
reserved-memory for this if it is just RAM. There's also a binding for
on-chip SRAM which should probably be used if the memory is usable for
other things.
That is a wrong copy paste I made. I was more thinking of having only 1 register
range, and no video memory reservation ...
quoted
quoted
+PXA LCDC Display
This should not be specific to PXA, but for this panel. This should be
in bindings/display/panel/.
Sure, for v3.
quoted
quoted
+----------------
+Required properties (as per of_videomode_helper):
+ - lcd-type: either "mono-stn", "mono-dstn", "color-stn", "color-dstn",
+                   "color-tft", "smart-panel"
+
+Optional properties (as per of_videomode_helper):
+ - power-supply: power supply regulator to the LCD to power it on or off
+                (see regulator.txt)
+ - backlight: backlight control (see backlight.txt)
+
+Required nodes:
+ - port: connection to the LCD controller
+ - display-timings: panel timings (see display-timing.txt)
If lcd-type is smart-panel, then this node would not make sense.
Ah I see, so this could be optional maybe ?
Right.
Actually when I'll move the panel definition to bindings/display/panel, is this
what I should do :
 - create a file marvell,pxa2xx-panel
 - input all these properties into this file
Yes, but the file should be called toshiba,ltm0305a776.txt. It is
irrelevant to the binding that it is pared with pxa2xx. In theory, I
could attach this panel to any SOC.
And then, when a board maintainer will create a devicetree description, he will
write something like :
      compatible = "toshiba,ltm0305a776";
      compatible = "marvell,pxa2xx-panel";
Drop this compatible.
      lcd-type = "color-tft";
      ...

If that's the case, I wonder how to "enforce" that a panel used with
marvell,pxa2xx-lcdc (through the of_graph 'port' node) be compatible with
marvell,pxa2xx-panel ?
I'm not sure what you mean. Putting the panel into the dts ensures
that. The FB driver may check for toshiba,ltm0305a776 or a list of
panels. However, a DRM driver would probably not check that.

Rob
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help