* [PATCHv5][ 2/8] staging: imx-drm: Add RGB666 support for parallel display.
2013-12-05 18:28 [PATCHv5][ 1/8] [media] v4l2: add new V4L2_PIX_FMT_RGB666 pixel format Denis Carikli
@ 2013-12-05 18:28 ` Denis Carikli
2013-12-06 13:14 ` Thierry Reding
2013-12-05 18:28 ` [PATCHv5][ 3/8] staging: imx-drm: Correct BGR666 and the board's dts that use them Denis Carikli
` (5 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Denis Carikli @ 2013-12-05 18:28 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Cc: devicetree at vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: driverdev-devel at linuxdriverproject.org
Cc: David Airlie <airlied@linux.ie>
Cc: dri-devel at lists.freedesktop.org
Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-media at vger.kernel.org
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: linux-arm-kernel at lists.infradead.org
Cc: Eric B?nard <eric@eukrea.com>
Signed-off-by: Denis Carikli <denis@eukrea.com>
---
ChangeLog v3->v5:
- Use the correct RGB order.
ChangeLog v2->v3:
- Added some interested people in the Cc list.
- Removed the commit message long desciption that was just a copy of the short
description.
- Rebased the patch.
- Fixed a copy-paste error in the ipu_dc_map_clear parameter.
---
.../bindings/staging/imx-drm/fsl-imx-drm.txt | 2 +-
drivers/staging/imx-drm/ipu-v3/ipu-dc.c | 9 +++++++++
drivers/staging/imx-drm/parallel-display.c | 2 ++
3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt b/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
index b876d49..2d24425 100644
--- a/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
+++ b/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
@@ -29,7 +29,7 @@ Required properties:
- crtc: the crtc this display is connected to, see below
Optional properties:
- interface_pix_fmt: How this display is connected to the
- crtc. Currently supported types: "rgb24", "rgb565", "bgr666"
+ crtc. Currently supported types: "rgb24", "rgb565", "bgr666", "rgb666"
- edid: verbatim EDID data block describing attached display.
- ddc: phandle describing the i2c bus handling the display data
channel
diff --git a/drivers/staging/imx-drm/ipu-v3/ipu-dc.c b/drivers/staging/imx-drm/ipu-v3/ipu-dc.c
index d0e3bc3..617e65b 100644
--- a/drivers/staging/imx-drm/ipu-v3/ipu-dc.c
+++ b/drivers/staging/imx-drm/ipu-v3/ipu-dc.c
@@ -92,6 +92,7 @@ enum ipu_dc_map {
IPU_DC_MAP_GBR24, /* TVEv2 */
IPU_DC_MAP_BGR666,
IPU_DC_MAP_BGR24,
+ IPU_DC_MAP_RGB666,
};
struct ipu_dc {
@@ -155,6 +156,8 @@ static int ipu_pixfmt_to_map(u32 fmt)
return IPU_DC_MAP_BGR666;
case V4L2_PIX_FMT_BGR24:
return IPU_DC_MAP_BGR24;
+ case V4L2_PIX_FMT_RGB666:
+ return IPU_DC_MAP_RGB666;
default:
return -EINVAL;
}
@@ -404,6 +407,12 @@ int ipu_dc_init(struct ipu_soc *ipu, struct device *dev,
ipu_dc_map_config(priv, IPU_DC_MAP_BGR24, 1, 15, 0xff); /* green */
ipu_dc_map_config(priv, IPU_DC_MAP_BGR24, 0, 23, 0xff); /* blue */
+ /* rgb666 */
+ ipu_dc_map_clear(priv, IPU_DC_MAP_RGB666);
+ ipu_dc_map_config(priv, IPU_DC_MAP_RGB666, 0, 5, 0xfc); /* blue */
+ ipu_dc_map_config(priv, IPU_DC_MAP_RGB666, 1, 11, 0xfc); /* green */
+ ipu_dc_map_config(priv, IPU_DC_MAP_RGB666, 2, 17, 0xfc); /* red */
+
return 0;
}
diff --git a/drivers/staging/imx-drm/parallel-display.c b/drivers/staging/imx-drm/parallel-display.c
index 24aa9be..bb71d6d 100644
--- a/drivers/staging/imx-drm/parallel-display.c
+++ b/drivers/staging/imx-drm/parallel-display.c
@@ -222,6 +222,8 @@ static int imx_pd_probe(struct platform_device *pdev)
imxpd->interface_pix_fmt = V4L2_PIX_FMT_RGB565;
else if (!strcmp(fmt, "bgr666"))
imxpd->interface_pix_fmt = V4L2_PIX_FMT_BGR666;
+ else if (!strcmp(fmt, "rgb666"))
+ imxpd->interface_pix_fmt = V4L2_PIX_FMT_RGB666;
}
imxpd->dev = &pdev->dev;
--
1.7.9.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCHv5][ 2/8] staging: imx-drm: Add RGB666 support for parallel display.
2013-12-05 18:28 ` [PATCHv5][ 2/8] staging: imx-drm: Add RGB666 support for parallel display Denis Carikli
@ 2013-12-06 13:14 ` Thierry Reding
2013-12-06 13:29 ` Lucas Stach
0 siblings, 1 reply; 18+ messages in thread
From: Thierry Reding @ 2013-12-06 13:14 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Dec 05, 2013 at 07:28:06PM +0100, Denis Carikli wrote:
[...]
> diff --git a/drivers/staging/imx-drm/ipu-v3/ipu-dc.c b/drivers/staging/imx-drm/ipu-v3/ipu-dc.c
[...]
> @@ -155,6 +156,8 @@ static int ipu_pixfmt_to_map(u32 fmt)
> return IPU_DC_MAP_BGR666;
> case V4L2_PIX_FMT_BGR24:
> return IPU_DC_MAP_BGR24;
> + case V4L2_PIX_FMT_RGB666:
> + return IPU_DC_MAP_RGB666;
Why is this DRM driver even using V4L2 pixel formats in the first place?
Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20131206/29376d8d/attachment.sig>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCHv5][ 2/8] staging: imx-drm: Add RGB666 support for parallel display.
2013-12-06 13:14 ` Thierry Reding
@ 2013-12-06 13:29 ` Lucas Stach
2013-12-06 14:16 ` Thierry Reding
0 siblings, 1 reply; 18+ messages in thread
From: Lucas Stach @ 2013-12-06 13:29 UTC (permalink / raw)
To: linux-arm-kernel
Am Freitag, den 06.12.2013, 14:14 +0100 schrieb Thierry Reding:
> On Thu, Dec 05, 2013 at 07:28:06PM +0100, Denis Carikli wrote:
> [...]
> > diff --git a/drivers/staging/imx-drm/ipu-v3/ipu-dc.c b/drivers/staging/imx-drm/ipu-v3/ipu-dc.c
> [...]
> > @@ -155,6 +156,8 @@ static int ipu_pixfmt_to_map(u32 fmt)
> > return IPU_DC_MAP_BGR666;
> > case V4L2_PIX_FMT_BGR24:
> > return IPU_DC_MAP_BGR24;
> > + case V4L2_PIX_FMT_RGB666:
> > + return IPU_DC_MAP_RGB666;
>
> Why is this DRM driver even using V4L2 pixel formats in the first place?
>
Because imx-drm is actually a misnomer. The i.MX IPU is a multifunction
device, which as one part has the display controllers, but also camera
interfaces and mem-to-mem scaler devices, which are hooked up via the
V4L2 interface.
The generic IPU part, which is used for example for programming the DMA
channels is using V4L2 pixel formats as a common base. We have patches
to split this out and make this fact more visible. (The IPU core will be
placed aside the Tegra host1x driver)
Regards,
Lucas
--
Pengutronix e.K. | Lucas Stach |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-5076 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCHv5][ 2/8] staging: imx-drm: Add RGB666 support for parallel display.
2013-12-06 13:29 ` Lucas Stach
@ 2013-12-06 14:16 ` Thierry Reding
0 siblings, 0 replies; 18+ messages in thread
From: Thierry Reding @ 2013-12-06 14:16 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Dec 06, 2013 at 02:29:22PM +0100, Lucas Stach wrote:
> Am Freitag, den 06.12.2013, 14:14 +0100 schrieb Thierry Reding:
> > On Thu, Dec 05, 2013 at 07:28:06PM +0100, Denis Carikli wrote:
> > [...]
> > > diff --git a/drivers/staging/imx-drm/ipu-v3/ipu-dc.c b/drivers/staging/imx-drm/ipu-v3/ipu-dc.c
> > [...]
> > > @@ -155,6 +156,8 @@ static int ipu_pixfmt_to_map(u32 fmt)
> > > return IPU_DC_MAP_BGR666;
> > > case V4L2_PIX_FMT_BGR24:
> > > return IPU_DC_MAP_BGR24;
> > > + case V4L2_PIX_FMT_RGB666:
> > > + return IPU_DC_MAP_RGB666;
> >
> > Why is this DRM driver even using V4L2 pixel formats in the first place?
> >
> Because imx-drm is actually a misnomer. The i.MX IPU is a multifunction
> device, which as one part has the display controllers, but also camera
> interfaces and mem-to-mem scaler devices, which are hooked up via the
> V4L2 interface.
>
> The generic IPU part, which is used for example for programming the DMA
> channels is using V4L2 pixel formats as a common base. We have patches
> to split this out and make this fact more visible. (The IPU core will be
> placed aside the Tegra host1x driver)
Have you considered splitting thing up further and move out the display
controller driver to DRM and the camera driver to V4L2? I mean, if that
is even possible with a reasonable amount of work.
Is the "mem-to-mem" the same as the "DMA channels" you mentioned? If it
only does DMA, why does it even need to worry about pixel formats?
Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20131206/1a271527/attachment.sig>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCHv5][ 3/8] staging: imx-drm: Correct BGR666 and the board's dts that use them.
2013-12-05 18:28 [PATCHv5][ 1/8] [media] v4l2: add new V4L2_PIX_FMT_RGB666 pixel format Denis Carikli
2013-12-05 18:28 ` [PATCHv5][ 2/8] staging: imx-drm: Add RGB666 support for parallel display Denis Carikli
@ 2013-12-05 18:28 ` Denis Carikli
2013-12-05 20:52 ` Marek Vasut
2013-12-06 13:07 ` Thierry Reding
2013-12-05 18:28 ` [PATCHv5][ 4/8] staging: imx-drm: Use de-active and pixelclk-active display-timings Denis Carikli
` (4 subsequent siblings)
6 siblings, 2 replies; 18+ messages in thread
From: Denis Carikli @ 2013-12-05 18:28 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Cc: devicetree at vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: driverdev-devel at linuxdriverproject.org
Cc: David Airlie <airlied@linux.ie>
Cc: dri-devel at lists.freedesktop.org
Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-media at vger.kernel.org
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: linux-arm-kernel at lists.infradead.org
Cc: Eric B?nard <eric@eukrea.com>
Signed-off-by: Denis Carikli <denis@eukrea.com>
---
ChangeLog v5:
- New patch.
---
arch/arm/boot/dts/imx51-apf51dev.dts | 2 +-
arch/arm/boot/dts/imx53-m53evk.dts | 2 +-
drivers/staging/imx-drm/ipu-v3/ipu-dc.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boot/dts/imx51-apf51dev.dts b/arch/arm/boot/dts/imx51-apf51dev.dts
index f36a3aa..3b6de6a 100644
--- a/arch/arm/boot/dts/imx51-apf51dev.dts
+++ b/arch/arm/boot/dts/imx51-apf51dev.dts
@@ -19,7 +19,7 @@
display at di1 {
compatible = "fsl,imx-parallel-display";
crtcs = <&ipu 0>;
- interface-pix-fmt = "bgr666";
+ interface-pix-fmt = "rgb666";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ipu_disp1>;
diff --git a/arch/arm/boot/dts/imx53-m53evk.dts b/arch/arm/boot/dts/imx53-m53evk.dts
index c623774..b98c897 100644
--- a/arch/arm/boot/dts/imx53-m53evk.dts
+++ b/arch/arm/boot/dts/imx53-m53evk.dts
@@ -24,7 +24,7 @@
display at di1 {
compatible = "fsl,imx-parallel-display";
crtcs = <&ipu 1>;
- interface-pix-fmt = "bgr666";
+ interface-pix-fmt = "rgb666";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ipu_disp1>;
diff --git a/drivers/staging/imx-drm/ipu-v3/ipu-dc.c b/drivers/staging/imx-drm/ipu-v3/ipu-dc.c
index 617e65b..b11a2aa 100644
--- a/drivers/staging/imx-drm/ipu-v3/ipu-dc.c
+++ b/drivers/staging/imx-drm/ipu-v3/ipu-dc.c
@@ -397,9 +397,9 @@ int ipu_dc_init(struct ipu_soc *ipu, struct device *dev,
/* bgr666 */
ipu_dc_map_clear(priv, IPU_DC_MAP_BGR666);
- ipu_dc_map_config(priv, IPU_DC_MAP_BGR666, 0, 5, 0xfc); /* blue */
+ ipu_dc_map_config(priv, IPU_DC_MAP_BGR666, 0, 17, 0xfc); /* blue */
ipu_dc_map_config(priv, IPU_DC_MAP_BGR666, 1, 11, 0xfc); /* green */
- ipu_dc_map_config(priv, IPU_DC_MAP_BGR666, 2, 17, 0xfc); /* red */
+ ipu_dc_map_config(priv, IPU_DC_MAP_BGR666, 2, 5, 0xfc); /* red */
/* bgr24 */
ipu_dc_map_clear(priv, IPU_DC_MAP_BGR24);
--
1.7.9.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCHv5][ 3/8] staging: imx-drm: Correct BGR666 and the board's dts that use them.
2013-12-05 18:28 ` [PATCHv5][ 3/8] staging: imx-drm: Correct BGR666 and the board's dts that use them Denis Carikli
@ 2013-12-05 20:52 ` Marek Vasut
2013-12-06 13:07 ` Thierry Reding
1 sibling, 0 replies; 18+ messages in thread
From: Marek Vasut @ 2013-12-05 20:52 UTC (permalink / raw)
To: linux-arm-kernel
On Thursday, December 05, 2013 at 07:28:07 PM, Denis Carikli wrote:
[...]
Can you please explain the correction here ? Why is it needed ? What was the
problem ?
Thanks!
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCHv5][ 3/8] staging: imx-drm: Correct BGR666 and the board's dts that use them.
2013-12-05 18:28 ` [PATCHv5][ 3/8] staging: imx-drm: Correct BGR666 and the board's dts that use them Denis Carikli
2013-12-05 20:52 ` Marek Vasut
@ 2013-12-06 13:07 ` Thierry Reding
1 sibling, 0 replies; 18+ messages in thread
From: Thierry Reding @ 2013-12-06 13:07 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Dec 05, 2013 at 07:28:07PM +0100, Denis Carikli wrote:
[...]
> diff --git a/arch/arm/boot/dts/imx51-apf51dev.dts b/arch/arm/boot/dts/imx51-apf51dev.dts
> index f36a3aa..3b6de6a 100644
> --- a/arch/arm/boot/dts/imx51-apf51dev.dts
> +++ b/arch/arm/boot/dts/imx51-apf51dev.dts
> @@ -19,7 +19,7 @@
> display at di1 {
^^^^
I know this isn't introduced by your patch, but WTF???
Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20131206/6a4dcda7/attachment.sig>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCHv5][ 4/8] staging: imx-drm: Use de-active and pixelclk-active display-timings.
2013-12-05 18:28 [PATCHv5][ 1/8] [media] v4l2: add new V4L2_PIX_FMT_RGB666 pixel format Denis Carikli
2013-12-05 18:28 ` [PATCHv5][ 2/8] staging: imx-drm: Add RGB666 support for parallel display Denis Carikli
2013-12-05 18:28 ` [PATCHv5][ 3/8] staging: imx-drm: Correct BGR666 and the board's dts that use them Denis Carikli
@ 2013-12-05 18:28 ` Denis Carikli
2013-12-05 20:54 ` Marek Vasut
2013-12-05 18:28 ` [PATCHv5][ 5/8] staging: imx-drm: parallel display: add regulator support Denis Carikli
` (3 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Denis Carikli @ 2013-12-05 18:28 UTC (permalink / raw)
To: linux-arm-kernel
If de-active and/or pixelclk-active properties were set in the
display-timings DT node, they were not used.
Instead the data-enable and the pixel data clock polarity
were hardcoded.
This change is needed for making the eukrea-cpuimx51
QVGA display work.
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: driverdev-devel at linuxdriverproject.org
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: linux-arm-kernel at lists.infradead.org
Cc: David Airlie <airlied@linux.ie>
Cc: dri-devel at lists.freedesktop.org
Cc: Eric B?nard <eric@eukrea.com>
Signed-off-by: Denis Carikli <denis@eukrea.com>
---
ChangeLog v3->v4:
- The old patch was named "staging: imx-drm: ipuv3-crtc: don't harcode some mode".
- Reworked the patch entierly: we now takes the mode flags from the device tree.
ChangeLog v2->v3:
- Added some interested people in the Cc list.
- Ajusted the flags to match the changes in "drm: Add the lacking
DRM_MODE_FLAG_* for matching the DISPLAY_FLAGS_*"
---
drivers/staging/imx-drm/imx-drm.h | 3 +++
drivers/staging/imx-drm/ipuv3-crtc.c | 11 +++++++++--
drivers/staging/imx-drm/parallel-display.c | 28 ++++++++++++++++++++++++++++
3 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/imx-drm/imx-drm.h b/drivers/staging/imx-drm/imx-drm.h
index ae90c9c..dfdc180 100644
--- a/drivers/staging/imx-drm/imx-drm.h
+++ b/drivers/staging/imx-drm/imx-drm.h
@@ -5,6 +5,9 @@
#define IPU_PIX_FMT_GBR24 v4l2_fourcc('G', 'B', 'R', '3')
+#define IMXDRM_MODE_FLAG_DE_HIGH (1<<0)
+#define IMXDRM_MODE_FLAG_PIXDATA_POSEDGE (1<<1)
+
struct drm_crtc;
struct drm_connector;
struct drm_device;
diff --git a/drivers/staging/imx-drm/ipuv3-crtc.c b/drivers/staging/imx-drm/ipuv3-crtc.c
index ce6ba98..f3d2cae 100644
--- a/drivers/staging/imx-drm/ipuv3-crtc.c
+++ b/drivers/staging/imx-drm/ipuv3-crtc.c
@@ -156,8 +156,15 @@ static int ipu_crtc_mode_set(struct drm_crtc *crtc,
if (mode->flags & DRM_MODE_FLAG_PVSYNC)
sig_cfg.Vsync_pol = 1;
- sig_cfg.enable_pol = 1;
- sig_cfg.clk_pol = 1;
+ /* Such flags are not availables in the DRM modes header,
+ * and we don't want to export them to userspace.
+ */
+ if (mode->private_flags & IMXDRM_MODE_FLAG_DE_HIGH)
+ sig_cfg.enable_pol = 1;
+
+ if (mode->private_flags & IMXDRM_MODE_FLAG_PIXDATA_POSEDGE)
+ sig_cfg.clk_pol = 1;
+
sig_cfg.width = mode->hdisplay;
sig_cfg.height = mode->vdisplay;
sig_cfg.pixel_fmt = out_pixel_fmt;
diff --git a/drivers/staging/imx-drm/parallel-display.c b/drivers/staging/imx-drm/parallel-display.c
index bb71d6d..65d0c18 100644
--- a/drivers/staging/imx-drm/parallel-display.c
+++ b/drivers/staging/imx-drm/parallel-display.c
@@ -74,7 +74,35 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
if (np) {
struct drm_display_mode *mode = drm_mode_create(connector->dev);
+ struct device_node *timings_np;
+ struct device_node *mode_np;
+ u32 val;
+
of_get_drm_display_mode(np, &imxpd->mode, 0);
+
+ /* Such flags are not availables in the DRM modes header,
+ * and we don't want to export them to userspace.
+ */
+ timings_np = of_get_child_by_name(np, "display-timings");
+ if (timings_np) {
+ /* get the display mode node */
+ mode_np = of_parse_phandle(timings_np,
+ "native-mode", 0);
+ if (!mode_np)
+ mode_np = of_get_next_child(timings_np, NULL);
+
+ /* set de-active to 1 if not set */
+ of_property_read_u32(mode_np, "de-active", &val);
+ if (!!val)
+ imxpd->mode.private_flags |=
+ IMXDRM_MODE_FLAG_DE_HIGH;
+
+ /* set pixelclk-active to 1 if not set */
+ of_property_read_u32(mode_np, "pixelclk-active", &val);
+ if (!!val)
+ imxpd->mode.private_flags |=
+ IMXDRM_MODE_FLAG_PIXDATA_POSEDGE;
+ }
drm_mode_copy(mode, &imxpd->mode);
mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
drm_mode_probed_add(connector, mode);
--
1.7.9.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCHv5][ 4/8] staging: imx-drm: Use de-active and pixelclk-active display-timings.
2013-12-05 18:28 ` [PATCHv5][ 4/8] staging: imx-drm: Use de-active and pixelclk-active display-timings Denis Carikli
@ 2013-12-05 20:54 ` Marek Vasut
0 siblings, 0 replies; 18+ messages in thread
From: Marek Vasut @ 2013-12-05 20:54 UTC (permalink / raw)
To: linux-arm-kernel
On Thursday, December 05, 2013 at 07:28:08 PM, Denis Carikli wrote:
> If de-active and/or pixelclk-active properties were set in the
> display-timings DT node, they were not used.
>
> Instead the data-enable and the pixel data clock polarity
> were hardcoded.
>
> This change is needed for making the eukrea-cpuimx51
> QVGA display work.
>
> Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: driverdev-devel at linuxdriverproject.org
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Sascha Hauer <kernel@pengutronix.de>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: David Airlie <airlied@linux.ie>
> Cc: dri-devel at lists.freedesktop.org
> Cc: Eric B?nard <eric@eukrea.com>
> Signed-off-by: Denis Carikli <denis@eukrea.com>
> ---
> ChangeLog v3->v4:
> - The old patch was named "staging: imx-drm: ipuv3-crtc: don't harcode some
> mode". - Reworked the patch entierly: we now takes the mode flags from the
> device tree.
>
> ChangeLog v2->v3:
> - Added some interested people in the Cc list.
> - Ajusted the flags to match the changes in "drm: Add the lacking
> DRM_MODE_FLAG_* for matching the DISPLAY_FLAGS_*"
> ---
> drivers/staging/imx-drm/imx-drm.h | 3 +++
> drivers/staging/imx-drm/ipuv3-crtc.c | 11 +++++++++--
> drivers/staging/imx-drm/parallel-display.c | 28
> ++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 2
> deletions(-)
>
> diff --git a/drivers/staging/imx-drm/imx-drm.h
> b/drivers/staging/imx-drm/imx-drm.h index ae90c9c..dfdc180 100644
> --- a/drivers/staging/imx-drm/imx-drm.h
> +++ b/drivers/staging/imx-drm/imx-drm.h
> @@ -5,6 +5,9 @@
>
> #define IPU_PIX_FMT_GBR24 v4l2_fourcc('G', 'B', 'R', '3')
>
> +#define IMXDRM_MODE_FLAG_DE_HIGH (1<<0)
> +#define IMXDRM_MODE_FLAG_PIXDATA_POSEDGE (1<<1)
> +
> struct drm_crtc;
> struct drm_connector;
> struct drm_device;
> diff --git a/drivers/staging/imx-drm/ipuv3-crtc.c
> b/drivers/staging/imx-drm/ipuv3-crtc.c index ce6ba98..f3d2cae 100644
> --- a/drivers/staging/imx-drm/ipuv3-crtc.c
> +++ b/drivers/staging/imx-drm/ipuv3-crtc.c
> @@ -156,8 +156,15 @@ static int ipu_crtc_mode_set(struct drm_crtc *crtc,
> if (mode->flags & DRM_MODE_FLAG_PVSYNC)
> sig_cfg.Vsync_pol = 1;
>
> - sig_cfg.enable_pol = 1;
> - sig_cfg.clk_pol = 1;
> + /* Such flags are not availables in the DRM modes header,
> + * and we don't want to export them to userspace.
> + */
The multiline comment here is not correct.
> + if (mode->private_flags & IMXDRM_MODE_FLAG_DE_HIGH)
> + sig_cfg.enable_pol = 1;
> +
> + if (mode->private_flags & IMXDRM_MODE_FLAG_PIXDATA_POSEDGE)
> + sig_cfg.clk_pol = 1;
> +
> sig_cfg.width = mode->hdisplay;
> sig_cfg.height = mode->vdisplay;
> sig_cfg.pixel_fmt = out_pixel_fmt;
> diff --git a/drivers/staging/imx-drm/parallel-display.c
> b/drivers/staging/imx-drm/parallel-display.c index bb71d6d..65d0c18 100644
> --- a/drivers/staging/imx-drm/parallel-display.c
> +++ b/drivers/staging/imx-drm/parallel-display.c
> @@ -74,7 +74,35 @@ static int imx_pd_connector_get_modes(struct
> drm_connector *connector)
>
> if (np) {
> struct drm_display_mode *mode = drm_mode_create(connector->dev);
> + struct device_node *timings_np;
> + struct device_node *mode_np;
> + u32 val;
> +
> of_get_drm_display_mode(np, &imxpd->mode, 0);
> +
> + /* Such flags are not availables in the DRM modes header,
> + * and we don't want to export them to userspace.
> + */
DTTO
> + timings_np = of_get_child_by_name(np, "display-timings");
> + if (timings_np) {
> + /* get the display mode node */
> + mode_np = of_parse_phandle(timings_np,
> + "native-mode", 0);
> + if (!mode_np)
> + mode_np = of_get_next_child(timings_np, NULL);
> +
> + /* set de-active to 1 if not set */
> + of_property_read_u32(mode_np, "de-active", &val);
> + if (!!val)
'if (val)' is enough.
> + imxpd->mode.private_flags |=
> + IMXDRM_MODE_FLAG_DE_HIGH;
> +
> + /* set pixelclk-active to 1 if not set */
> + of_property_read_u32(mode_np, "pixelclk-active", &val);
> + if (!!val)
DTTO, also please add {} around multiline expression.
> + imxpd->mode.private_flags |=
> + IMXDRM_MODE_FLAG_PIXDATA_POSEDGE;
> + }
> drm_mode_copy(mode, &imxpd->mode);
> mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
> drm_mode_probed_add(connector, mode);
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCHv5][ 5/8] staging: imx-drm: parallel display: add regulator support.
2013-12-05 18:28 [PATCHv5][ 1/8] [media] v4l2: add new V4L2_PIX_FMT_RGB666 pixel format Denis Carikli
` (2 preceding siblings ...)
2013-12-05 18:28 ` [PATCHv5][ 4/8] staging: imx-drm: Use de-active and pixelclk-active display-timings Denis Carikli
@ 2013-12-05 18:28 ` Denis Carikli
2013-12-05 20:55 ` Marek Vasut
2013-12-06 13:23 ` Thierry Reding
2013-12-05 18:28 ` [PATCHv5][ 6/8] ARM: dts: mbimx51sd: Add display support Denis Carikli
` (2 subsequent siblings)
6 siblings, 2 replies; 18+ messages in thread
From: Denis Carikli @ 2013-12-05 18:28 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Cc: devicetree at vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: driverdev-devel at linuxdriverproject.org
Cc: David Airlie <airlied@linux.ie>
Cc: dri-devel at lists.freedesktop.org
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: linux-arm-kernel at lists.infradead.org
Cc: Eric B?nard <eric@eukrea.com>
Signed-off-by: Denis Carikli <denis@eukrea.com>
---
ChangeLog v3->v5:
- Code clenaup.
ChangeLog v2->v3:
- Added some interested people in the Cc list.
- the lcd-supply is now called display-supply (not all display are LCD).
- The code and documentation was updated accordingly.
- regulator_is_enabled now guard the regulator enables/disables because
regulator_disable does not check the regulator state.
---
.../bindings/staging/imx-drm/fsl-imx-drm.txt | 1 +
drivers/staging/imx-drm/parallel-display.c | 22 ++++++++++++++++++++
2 files changed, 23 insertions(+)
diff --git a/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt b/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
index 2d24425..4dd7ce5 100644
--- a/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
+++ b/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
@@ -28,6 +28,7 @@ Required properties:
- compatible: Should be "fsl,imx-parallel-display"
- crtc: the crtc this display is connected to, see below
Optional properties:
+- display-supply : phandle to the regulator device tree node if needed.
- interface_pix_fmt: How this display is connected to the
crtc. Currently supported types: "rgb24", "rgb565", "bgr666", "rgb666"
- edid: verbatim EDID data block describing attached display.
diff --git a/drivers/staging/imx-drm/parallel-display.c b/drivers/staging/imx-drm/parallel-display.c
index 65d0c18..61c0aeb 100644
--- a/drivers/staging/imx-drm/parallel-display.c
+++ b/drivers/staging/imx-drm/parallel-display.c
@@ -22,6 +22,7 @@
#include <drm/drmP.h>
#include <drm/drm_fb_helper.h>
#include <drm/drm_crtc_helper.h>
+#include <linux/regulator/consumer.h>
#include <linux/videodev2.h>
#include "imx-drm.h"
@@ -35,6 +36,7 @@ struct imx_parallel_display {
struct drm_encoder encoder;
struct imx_drm_encoder *imx_drm_encoder;
struct device *dev;
+ struct regulator *disp_reg;
void *edid;
int edid_len;
u32 interface_pix_fmt;
@@ -141,6 +143,13 @@ static void imx_pd_encoder_prepare(struct drm_encoder *encoder)
{
struct imx_parallel_display *imxpd = enc_to_imxpd(encoder);
+ if (!IS_ERR(imxpd->disp_reg) &&
+ !regulator_is_enabled(imxpd->disp_reg)) {
+ if (regulator_enable(imxpd->disp_reg))
+ dev_err(imxpd->dev,
+ "Failed to enable regulator.\n");
+ }
+
imx_drm_crtc_panel_format(encoder->crtc, DRM_MODE_ENCODER_NONE,
imxpd->interface_pix_fmt);
}
@@ -157,6 +166,12 @@ static void imx_pd_encoder_mode_set(struct drm_encoder *encoder,
static void imx_pd_encoder_disable(struct drm_encoder *encoder)
{
+ struct imx_parallel_display *imxpd = enc_to_imxpd(encoder);
+
+ if (!IS_ERR(imxpd->disp_reg) && regulator_is_enabled(imxpd->disp_reg)) {
+ if (regulator_disable(imxpd->disp_reg))
+ dev_err(imxpd->dev, "Failed to disable regulator.\n");
+ }
}
static void imx_pd_encoder_destroy(struct drm_encoder *encoder)
@@ -260,6 +275,13 @@ static int imx_pd_probe(struct platform_device *pdev)
if (ret)
return ret;
+ imxpd->disp_reg = devm_regulator_get(&pdev->dev, "display");
+ if (PTR_ERR(imxpd->disp_reg) == -EPROBE_DEFER)
+ return -EPROBE_DEFER;
+
+ if (IS_ERR(imxpd->disp_reg))
+ dev_dbg(&pdev->dev, "Operating without display regulator.\n");
+
ret = imx_drm_encoder_add_possible_crtcs(imxpd->imx_drm_encoder, np);
platform_set_drvdata(pdev, imxpd);
--
1.7.9.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCHv5][ 5/8] staging: imx-drm: parallel display: add regulator support.
2013-12-05 18:28 ` [PATCHv5][ 5/8] staging: imx-drm: parallel display: add regulator support Denis Carikli
@ 2013-12-05 20:55 ` Marek Vasut
2013-12-06 13:23 ` Thierry Reding
1 sibling, 0 replies; 18+ messages in thread
From: Marek Vasut @ 2013-12-05 20:55 UTC (permalink / raw)
To: linux-arm-kernel
On Thursday, December 05, 2013 at 07:28:09 PM, Denis Carikli wrote:
> Cc: Dan Carpenter <dan.carpenter@oracle.com>
> Cc: Rob Herring <rob.herring@calxeda.com>
> Cc: Pawel Moll <pawel.moll@arm.com>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Stephen Warren <swarren@wwwdotorg.org>
> Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
> Cc: devicetree at vger.kernel.org
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: driverdev-devel at linuxdriverproject.org
> Cc: David Airlie <airlied@linux.ie>
> Cc: dri-devel at lists.freedesktop.org
> Cc: Sascha Hauer <kernel@pengutronix.de>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: Eric B?nard <eric@eukrea.com>
> Signed-off-by: Denis Carikli <denis@eukrea.com>
> ---
> ChangeLog v3->v5:
> - Code clenaup.
>
> ChangeLog v2->v3:
> - Added some interested people in the Cc list.
> - the lcd-supply is now called display-supply (not all display are LCD).
> - The code and documentation was updated accordingly.
> - regulator_is_enabled now guard the regulator enables/disables because
> regulator_disable does not check the regulator state.
> ---
> .../bindings/staging/imx-drm/fsl-imx-drm.txt | 1 +
> drivers/staging/imx-drm/parallel-display.c | 22
> ++++++++++++++++++++ 2 files changed, 23 insertions(+)
>
> diff --git
> a/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
> b/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt index
> 2d24425..4dd7ce5 100644
> --- a/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
> +++ b/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
> @@ -28,6 +28,7 @@ Required properties:
> - compatible: Should be "fsl,imx-parallel-display"
> - crtc: the crtc this display is connected to, see below
> Optional properties:
> +- display-supply : phandle to the regulator device tree node if needed.
> - interface_pix_fmt: How this display is connected to the
> crtc. Currently supported types: "rgb24", "rgb565", "bgr666", "rgb666"
> - edid: verbatim EDID data block describing attached display.
> diff --git a/drivers/staging/imx-drm/parallel-display.c
> b/drivers/staging/imx-drm/parallel-display.c index 65d0c18..61c0aeb 100644
> --- a/drivers/staging/imx-drm/parallel-display.c
> +++ b/drivers/staging/imx-drm/parallel-display.c
> @@ -22,6 +22,7 @@
> #include <drm/drmP.h>
> #include <drm/drm_fb_helper.h>
> #include <drm/drm_crtc_helper.h>
> +#include <linux/regulator/consumer.h>
> #include <linux/videodev2.h>
>
> #include "imx-drm.h"
> @@ -35,6 +36,7 @@ struct imx_parallel_display {
> struct drm_encoder encoder;
> struct imx_drm_encoder *imx_drm_encoder;
> struct device *dev;
> + struct regulator *disp_reg;
> void *edid;
> int edid_len;
> u32 interface_pix_fmt;
> @@ -141,6 +143,13 @@ static void imx_pd_encoder_prepare(struct drm_encoder
> *encoder) {
> struct imx_parallel_display *imxpd = enc_to_imxpd(encoder);
>
> + if (!IS_ERR(imxpd->disp_reg) &&
> + !regulator_is_enabled(imxpd->disp_reg)) {
> + if (regulator_enable(imxpd->disp_reg))
> + dev_err(imxpd->dev,
> + "Failed to enable regulator.\n");
I wonder, is this linebreak needed for this function call ?
[...]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCHv5][ 5/8] staging: imx-drm: parallel display: add regulator support.
2013-12-05 18:28 ` [PATCHv5][ 5/8] staging: imx-drm: parallel display: add regulator support Denis Carikli
2013-12-05 20:55 ` Marek Vasut
@ 2013-12-06 13:23 ` Thierry Reding
1 sibling, 0 replies; 18+ messages in thread
From: Thierry Reding @ 2013-12-06 13:23 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Dec 05, 2013 at 07:28:09PM +0100, Denis Carikli wrote:
[...]
> diff --git a/drivers/staging/imx-drm/parallel-display.c b/drivers/staging/imx-drm/parallel-display.c
[...]
> @@ -260,6 +275,13 @@ static int imx_pd_probe(struct platform_device *pdev)
> if (ret)
> return ret;
>
> + imxpd->disp_reg = devm_regulator_get(&pdev->dev, "display");
> + if (PTR_ERR(imxpd->disp_reg) == -EPROBE_DEFER)
> + return -EPROBE_DEFER;
> +
> + if (IS_ERR(imxpd->disp_reg))
> + dev_dbg(&pdev->dev, "Operating without display regulator.\n");
I don't think this is necessary. There is code in the regulator core
nowadays that supplies a dummy regulator if one hasn't been hooked up in
devicetree explicitly. So any error that you get at this point is likely
a valid one rather than just a missing regulator.
The advantage is that you no longer have to check at every step of the
way that the regulator is valid before calling the regulator API.
Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20131206/b167f37c/attachment.sig>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCHv5][ 6/8] ARM: dts: mbimx51sd: Add display support.
2013-12-05 18:28 [PATCHv5][ 1/8] [media] v4l2: add new V4L2_PIX_FMT_RGB666 pixel format Denis Carikli
` (3 preceding siblings ...)
2013-12-05 18:28 ` [PATCHv5][ 5/8] staging: imx-drm: parallel display: add regulator support Denis Carikli
@ 2013-12-05 18:28 ` Denis Carikli
2013-12-05 20:56 ` Marek Vasut
2013-12-05 18:28 ` [PATCHv5][ 7/8] ARM: dts: mbimx51sd: Add CMO-QVGA backlight support Denis Carikli
2013-12-05 18:28 ` [PATCHv5][ 8/8] ARM: imx_v6_v7_defconfig: Enable backlight gpio support Denis Carikli
6 siblings, 1 reply; 18+ messages in thread
From: Denis Carikli @ 2013-12-05 18:28 UTC (permalink / raw)
To: linux-arm-kernel
The CMO-QVGA, DVI-SVGA and DVI-VGA are added.
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: linux-arm-kernel at lists.infradead.org
Cc: Eric B?nard <eric@eukrea.com>
Signed-off-by: Denis Carikli <denis@eukrea.com>
---
ChangeLog v3->v5:
- Updated to new GPIO defines.
- Updated to new licenses checkpatch requirements.
- one whitespace cleanup.
ChangeLog v2->v3:
- Splitted out from the patch that added support for the cpuimx51/mbimxsd51 boards.
- This patch now only adds display support.
- Added some interested people in the Cc list, and removed some people that
might be annoyed by the receiving of that patch which is unrelated to their
subsystem.
- rebased and reworked the dts displays addition.
- Also rebased and reworked the fsl,pins usage.
---
.../imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts | 55 ++++++++++++++++++++
.../imx51-eukrea-mbimxsd51-baseboard-dvi-svga.dts | 42 +++++++++++++++
.../imx51-eukrea-mbimxsd51-baseboard-dvi-vga.dts | 42 +++++++++++++++
.../boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts | 13 +++++
4 files changed, 152 insertions(+)
create mode 100644 arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts
create mode 100644 arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-dvi-svga.dts
create mode 100644 arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-dvi-vga.dts
diff --git a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts
new file mode 100644
index 0000000..f37d65b
--- /dev/null
+++ b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2013 Eukr?a Electromatique <denis@eukrea.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include "imx51-eukrea-mbimxsd51-baseboard.dts"
+
+/ {
+ model = "Eukrea MBIMXSD51 with the CMO-QVGA Display";
+ compatible = "eukrea,mbimxsd51-baseboard-cmo-qvga", "eukrea,mbimxsd51-baseboard", "eukrea,cpuimx51", "fsl,imx51";
+
+ reg_lcd_3v3: lcd-en {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reg_lcd_3v3>;
+ regulator-name = "lcd-3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&display {
+ display-supply = <®_lcd_3v3>;
+ status = "okay";
+ display-timings {
+ model = "CMO-QVGA";
+ bits-per-pixel = <16>;
+ cmoqvga {
+ native-mode;
+ clock-frequency = <6500000>;
+ hactive = <320>;
+ vactive = <240>;
+ hfront-porch = <20>;
+ hback-porch = <38>;
+ vfront-porch = <4>;
+ vback-porch = <15>;
+ hsync-len = <30>;
+ vsync-len = <3>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <0>;
+ pixelclk-active = <1>;
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-dvi-svga.dts b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-dvi-svga.dts
new file mode 100644
index 0000000..07e80e8
--- /dev/null
+++ b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-dvi-svga.dts
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2013 Eukr?a Electromatique <denis@eukrea.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include "imx51-eukrea-mbimxsd51-baseboard.dts"
+
+/ {
+ model = "Eukrea MBIMXSD51 with the DVI-SVGA Display";
+ compatible = "eukrea,mbimxsd51-baseboard-dvi-svga", "eukrea,mbimxsd51-baseboard", "eukrea,cpuimx51", "fsl,imx51";
+};
+
+&display {
+ status = "okay";
+ display-timings {
+ model = "DVI-SVGA";
+ bits-per-pixel = <16>;
+ svga {
+ clock-frequency = <38251000>;
+ hactive = <800>;
+ vactive = <600>;
+ hback-porch = <112>;
+ hfront-porch = <32>;
+ vback-porch = <3>;
+ vfront-porch = <17>;
+ hsync-len = <80>;
+ vsync-len = <4>;
+ hsync-active = <1>;
+ vsync-active = <1>;
+ de-active = <1>;
+ pixelclk-active = <0>;
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-dvi-vga.dts b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-dvi-vga.dts
new file mode 100644
index 0000000..0ec523f
--- /dev/null
+++ b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-dvi-vga.dts
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2013 Eukr?a Electromatique <denis@eukrea.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include "imx51-eukrea-mbimxsd51-baseboard.dts"
+
+/ {
+ model = "Eukrea MBIMXSD51 with the DVI-VGA Display";
+ compatible = "eukrea,mbimxsd51-baseboard-dvi-vga", "eukrea,mbimxsd51-baseboard", "eukrea,cpuimx51", "fsl,imx51";
+};
+
+&display {
+ status = "okay";
+ display-timings {
+ model = "DVI-VGA";
+ bits-per-pixel = <16>;
+ vga {
+ clock-frequency = <23750000>;
+ hactive = <640>;
+ vactive = <480>;
+ hback-porch = <80>;
+ hfront-porch = <16>;
+ vback-porch = <3>;
+ vfront-porch = <13>;
+ hsync-len = <64>;
+ vsync-len = <4>;
+ hsync-active = <1>;
+ vsync-active = <1>;
+ de-active = <1>;
+ pixelclk-active = <0>;
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts
index cf2e0d8..be0a34b 100644
--- a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts
+++ b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts
@@ -23,6 +23,15 @@
model = "Eukrea CPUIMX51";
compatible = "eukrea,mbimxsd51","eukrea,cpuimx51", "fsl,imx51";
+ display: display at di0 {
+ compatible = "fsl,imx-parallel-display";
+ crtcs = <&ipu 0>;
+ interface-pix-fmt = "rgb666";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_ipu_disp1>;
+ status = "disabled";
+ };
+
gpio_keys {
compatible = "gpio-keys";
pinctrl-names = "default";
@@ -116,6 +125,10 @@
>;
};
+ pinctrl_ipu_disp1: ipudisp1grp {
+ fsl,pins = <MX51_IPU_DISP1_PINGRP1>;
+ };
+
pinctrl_reg_lcd_3v3: reg_lcd_3v3 {
fsl,pins = <
MX51_PAD_CSI1_D9__GPIO3_13 0x1f5
--
1.7.9.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCHv5][ 6/8] ARM: dts: mbimx51sd: Add display support.
2013-12-05 18:28 ` [PATCHv5][ 6/8] ARM: dts: mbimx51sd: Add display support Denis Carikli
@ 2013-12-05 20:56 ` Marek Vasut
2014-01-22 13:56 ` Denis Carikli
0 siblings, 1 reply; 18+ messages in thread
From: Marek Vasut @ 2013-12-05 20:56 UTC (permalink / raw)
To: linux-arm-kernel
On Thursday, December 05, 2013 at 07:28:10 PM, Denis Carikli wrote:
> The CMO-QVGA, DVI-SVGA and DVI-VGA are added.
>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Sascha Hauer <kernel@pengutronix.de>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: Eric B?nard <eric@eukrea.com>
> Signed-off-by: Denis Carikli <denis@eukrea.com>
> ---
> ChangeLog v3->v5:
> - Updated to new GPIO defines.
> - Updated to new licenses checkpatch requirements.
> - one whitespace cleanup.
>
> ChangeLog v2->v3:
> - Splitted out from the patch that added support for the cpuimx51/mbimxsd51
> boards. - This patch now only adds display support.
> - Added some interested people in the Cc list, and removed some people that
> might be annoyed by the receiving of that patch which is unrelated to
> their subsystem.
> - rebased and reworked the dts displays addition.
> - Also rebased and reworked the fsl,pins usage.
> ---
> .../imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts | 55
> ++++++++++++++++++++ .../imx51-eukrea-mbimxsd51-baseboard-dvi-svga.dts |
> 42 +++++++++++++++ .../imx51-eukrea-mbimxsd51-baseboard-dvi-vga.dts |
> 42 +++++++++++++++ .../boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts |
> 13 +++++
> 4 files changed, 152 insertions(+)
> create mode 100644
> arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts create
> mode 100644
> arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-dvi-svga.dts create
> mode 100644 arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-dvi-vga.dts
>
> diff --git
> a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts
> b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts new file
> mode 100644
> index 0000000..f37d65b
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts
> @@ -0,0 +1,55 @@
> +/*
> + * Copyright 2013 Eukr?a Electromatique <denis@eukrea.com>
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * as published by the Free Software Foundation; either version 2
> + * of the License, or (at your option) any later version.
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + */
> +
> +#include "imx51-eukrea-mbimxsd51-baseboard.dts"
> +
> +/ {
> + model = "Eukrea MBIMXSD51 with the CMO-QVGA Display";
> + compatible = "eukrea,mbimxsd51-baseboard-cmo-qvga",
> "eukrea,mbimxsd51-baseboard", "eukrea,cpuimx51", "fsl,imx51"; +
> + reg_lcd_3v3: lcd-en {
> + compatible = "regulator-fixed";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_reg_lcd_3v3>;
> + regulator-name = "lcd-3v3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +};
> +
> +&display {
> + display-supply = <®_lcd_3v3>;
> + status = "okay";
The "status = " here should probably be in the board DTS, not in the LCD DTS.
> + display-timings {
> + model = "CMO-QVGA";
> + bits-per-pixel = <16>;
> + cmoqvga {
> + native-mode;
> + clock-frequency = <6500000>;
> + hactive = <320>;
> + vactive = <240>;
> + hfront-porch = <20>;
> + hback-porch = <38>;
> + vfront-porch = <4>;
> + vback-porch = <15>;
> + hsync-len = <30>;
> + vsync-len = <3>;
> + hsync-active = <0>;
> + vsync-active = <0>;
> + de-active = <0>;
> + pixelclk-active = <1>;
> + };
> + };
> +};
[...]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCHv5][ 6/8] ARM: dts: mbimx51sd: Add display support.
2013-12-05 20:56 ` Marek Vasut
@ 2014-01-22 13:56 ` Denis Carikli
0 siblings, 0 replies; 18+ messages in thread
From: Denis Carikli @ 2014-01-22 13:56 UTC (permalink / raw)
To: linux-arm-kernel
On 12/05/2013 09:56 PM, Marek Vasut wrote:
>> +++ b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts
[...]
>> +&display {
>> + display-supply = <®_lcd_3v3>;
>> + status = "okay";
>
> The "status = " here should probably be in the board DTS, not in the LCD DTS.
The display is optional on the baseboard of the cpuimx51.
So my idea was to activate the display only for the configurations where
it's used.
Denis.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCHv5][ 7/8] ARM: dts: mbimx51sd: Add CMO-QVGA backlight support.
2013-12-05 18:28 [PATCHv5][ 1/8] [media] v4l2: add new V4L2_PIX_FMT_RGB666 pixel format Denis Carikli
` (4 preceding siblings ...)
2013-12-05 18:28 ` [PATCHv5][ 6/8] ARM: dts: mbimx51sd: Add display support Denis Carikli
@ 2013-12-05 18:28 ` Denis Carikli
2013-12-05 18:28 ` [PATCHv5][ 8/8] ARM: imx_v6_v7_defconfig: Enable backlight gpio support Denis Carikli
6 siblings, 0 replies; 18+ messages in thread
From: Denis Carikli @ 2013-12-05 18:28 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: linux-arm-kernel at lists.infradead.org
Cc: Eric B?nard <eric@eukrea.com>
Signed-off-by: Denis Carikli <denis@eukrea.com>
---
ChangeLog v3->v5:
- Updated to the new GPIO defines.
ChangeLog v2->v3:
- Splitted out from the patch that added support for the cpuimx51/mbimxsd51 boards.
- This patch now only adds backlight support.
- Added some interested people in the Cc list, and removed some people that
might be annoyed by the receiving of that patch which is unrelated to their
subsystem.
---
.../imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts
index f37d65b..f8f5abe 100644
--- a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts
+++ b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard-cmo-qvga.dts
@@ -17,6 +17,14 @@
model = "Eukrea MBIMXSD51 with the CMO-QVGA Display";
compatible = "eukrea,mbimxsd51-baseboard-cmo-qvga", "eukrea,mbimxsd51-baseboard", "eukrea,cpuimx51", "fsl,imx51";
+ backlight {
+ compatible = "gpio-backlight";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_backlight_1>;
+ gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>;
+ default-brightness-level = <1>;
+ };
+
reg_lcd_3v3: lcd-en {
compatible = "regulator-fixed";
pinctrl-names = "default";
--
1.7.9.5
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCHv5][ 8/8] ARM: imx_v6_v7_defconfig: Enable backlight gpio support.
2013-12-05 18:28 [PATCHv5][ 1/8] [media] v4l2: add new V4L2_PIX_FMT_RGB666 pixel format Denis Carikli
` (5 preceding siblings ...)
2013-12-05 18:28 ` [PATCHv5][ 7/8] ARM: dts: mbimx51sd: Add CMO-QVGA backlight support Denis Carikli
@ 2013-12-05 18:28 ` Denis Carikli
6 siblings, 0 replies; 18+ messages in thread
From: Denis Carikli @ 2013-12-05 18:28 UTC (permalink / raw)
To: linux-arm-kernel
The eukrea mbimxsd51 has a gpio backlight for its
LCD display, so we turn that driver on.
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: linux-arm-kernel at lists.infradead.org
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Eric B?nard <eric@eukrea.com>
Signed-off-by: Denis Carikli <denis@eukrea.com>
---
ChangeLog v5:
- New patch in this serie.
---
arch/arm/configs/imx_v6_v7_defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig
index d479049..59f3cf0 100644
--- a/arch/arm/configs/imx_v6_v7_defconfig
+++ b/arch/arm/configs/imx_v6_v7_defconfig
@@ -183,6 +183,7 @@ CONFIG_LCD_L4F00242T03=y
CONFIG_LCD_PLATFORM=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_PWM=y
+CONFIG_BACKLIGHT_GPIO=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
CONFIG_SOUND=y
--
1.7.9.5
^ permalink raw reply related [flat|nested] 18+ messages in thread