mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH v2] video: imx-ipu-v3: ldb fixes
@ 2015-09-23 11:47 Sascha Hauer
  2015-09-23 11:47 ` [PATCH 01/10] video: ipuv3: Do not crash when no mode is found Sascha Hauer
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Sascha Hauer @ 2015-09-23 11:47 UTC (permalink / raw)
  To: Barebox List

Second round to hopefully make Holger happy. This one is tested on the
GuF Santaro board. I tested both the display timings in the panel node
and the ldb node.

Sascha

----------------------------------------------------------------
Sascha Hauer (10):
      video: ipuv3: Do not crash when no mode is found
      video: ipuv3: imx-ldb: remove unused variable
      video: ipuv3: imx-ldb: Support video modes in ldb node
      video: simple-panel: Add debug/error messages
      video: simple-panel: Add support for device tree provided nodes
      video: ipuv3: print error message when no modes are found
      video: backlight-pwm: Add error message
      video: backlight-pwm: Add regulator support
      ARM: i.MX: GuF Santaro: enable PWM
      ARM: i.MX: GuF Santaro: Fix panel support

 arch/arm/dts/imx6q-guf-santaro.dts |  9 ++++--
 drivers/video/backlight-pwm.c      | 17 ++++++++++-
 drivers/video/imx-ipu-v3/imx-ldb.c | 60 +++++++++++++++++---------------------
 drivers/video/imx-ipu-v3/ipufb.c   |  9 +++++-
 drivers/video/simple-panel.c       | 36 +++++++++++++++++++----
 5 files changed, 87 insertions(+), 44 deletions(-)

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 01/10] video: ipuv3: Do not crash when no mode is found
  2015-09-23 11:47 [PATCH v2] video: imx-ipu-v3: ldb fixes Sascha Hauer
@ 2015-09-23 11:47 ` Sascha Hauer
  2015-09-23 11:47 ` [PATCH 02/10] video: ipuv3: imx-ldb: remove unused variable Sascha Hauer
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sascha Hauer @ 2015-09-23 11:47 UTC (permalink / raw)
  To: Barebox List

When something is missing in the device tree or not all necessary
drivers are compiled in it may happen that no valid mode is found.
Do not crash in this case but print an error message.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/video/imx-ipu-v3/ipufb.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/video/imx-ipu-v3/ipufb.c b/drivers/video/imx-ipu-v3/ipufb.c
index ea2e83b..401f8f7 100644
--- a/drivers/video/imx-ipu-v3/ipufb.c
+++ b/drivers/video/imx-ipu-v3/ipufb.c
@@ -189,6 +189,11 @@ static void ipufb_enable_controller(struct fb_info *info)
 {
 	struct ipufb_info *fbi = container_of(info, struct ipufb_info, info);
 
+	if (!info->mode) {
+		dev_err(fbi->dev, "No valid mode found\n");
+		return;
+	}
+
 	vpl_ioctl_prepare(&fbi->vpl, 2 + fbi->dino, info->mode);
 
 	ipu_crtc_mode_set(fbi, info->mode, 0, 0);
-- 
2.5.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 02/10] video: ipuv3: imx-ldb: remove unused variable
  2015-09-23 11:47 [PATCH v2] video: imx-ipu-v3: ldb fixes Sascha Hauer
  2015-09-23 11:47 ` [PATCH 01/10] video: ipuv3: Do not crash when no mode is found Sascha Hauer
@ 2015-09-23 11:47 ` Sascha Hauer
  2015-09-23 11:47 ` [PATCH 03/10] video: ipuv3: imx-ldb: Support video modes in ldb node Sascha Hauer
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sascha Hauer @ 2015-09-23 11:47 UTC (permalink / raw)
  To: Barebox List

endpoint is set but not used. Remove the code.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/video/imx-ipu-v3/imx-ldb.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/drivers/video/imx-ipu-v3/imx-ldb.c b/drivers/video/imx-ipu-v3/imx-ldb.c
index db5f8b6..2f49ed2 100644
--- a/drivers/video/imx-ipu-v3/imx-ldb.c
+++ b/drivers/video/imx-ipu-v3/imx-ldb.c
@@ -308,7 +308,6 @@ static int imx_ldb_probe(struct device_d *dev)
 	for_each_child_of_node(np, child) {
 		struct imx_ldb_channel *channel;
 		struct device_node *port;
-		struct device_node *endpoint;
 
 		ret = of_property_read_u32(child, "reg", &i);
 		if (ret || i < 0 || i > 1)
@@ -334,12 +333,6 @@ static int imx_ldb_probe(struct device_d *dev)
 			continue;
 		}
 
-		endpoint = of_get_child_by_name(port, "endpoint");
-		if (!endpoint) {
-			dev_warn(dev, "No endpoint found on %s\n", port->full_name);
-			continue;
-		}
-
 		channel->vpl.node = child;
 		channel->vpl.ioctl = &imx_ldb_ioctl;
 		ret = vpl_register(&channel->vpl);
-- 
2.5.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 03/10] video: ipuv3: imx-ldb: Support video modes in ldb node
  2015-09-23 11:47 [PATCH v2] video: imx-ipu-v3: ldb fixes Sascha Hauer
  2015-09-23 11:47 ` [PATCH 01/10] video: ipuv3: Do not crash when no mode is found Sascha Hauer
  2015-09-23 11:47 ` [PATCH 02/10] video: ipuv3: imx-ldb: remove unused variable Sascha Hauer
@ 2015-09-23 11:47 ` Sascha Hauer
  2015-09-23 11:47 ` [PATCH 04/10] video: simple-panel: Add debug/error messages Sascha Hauer
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sascha Hauer @ 2015-09-23 11:47 UTC (permalink / raw)
  To: Barebox List

We used to support video modes directly in the ldb device node, that
was lost in: 5bda17e video: ipuv3: Replace ipu_output with VPL.
Add this support back. Also drop duplicate vpl ioctl forwarding for
several calls.

With this patch modes can either be retrieved from the ldb node as
originally done or from the panel remote port.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/video/imx-ipu-v3/imx-ldb.c | 55 +++++++++++++++++++-------------------
 1 file changed, 27 insertions(+), 28 deletions(-)

diff --git a/drivers/video/imx-ipu-v3/imx-ldb.c b/drivers/video/imx-ipu-v3/imx-ldb.c
index 2f49ed2..1e9231f 100644
--- a/drivers/video/imx-ipu-v3/imx-ldb.c
+++ b/drivers/video/imx-ipu-v3/imx-ldb.c
@@ -143,20 +143,7 @@ static int imx_ldb_prepare(struct imx_ldb_channel *imx_ldb_ch, struct fb_videomo
 
 	writel(ldb->ldb_ctrl, ldb->base);
 
-	return vpl_ioctl(&imx_ldb_ch->vpl, imx_ldb_ch->output_port,
-			VPL_PREPARE, NULL);
-}
-
-static int imx_ldb_enable(struct imx_ldb_channel *imx_ldb_ch, int di)
-{
-	return vpl_ioctl(&imx_ldb_ch->vpl, imx_ldb_ch->output_port,
-				VPL_ENABLE, NULL);
-}
-
-static int imx_ldb_disable(struct imx_ldb_channel *imx_ldb_ch, int di)
-{
-	return vpl_ioctl(&imx_ldb_ch->vpl, imx_ldb_ch->output_port,
-			VPL_DISABLE, NULL);
+	return 0;
 }
 
 static int imx6q_ldb_prepare(struct imx_ldb_channel *imx_ldb_ch, int di)
@@ -260,20 +247,14 @@ static int imx_ldb_ioctl(struct vpl *vpl, unsigned int port,
 
 	switch (cmd) {
 	case VPL_ENABLE:
-		ret = vpl_ioctl(vpl, imx_ldb_ch->output_port, cmd, data);
-		if (ret)
-			return ret;
-		return imx_ldb_enable(imx_ldb_ch, port);
+		break;
 	case VPL_DISABLE:
-		ret = vpl_ioctl(vpl, imx_ldb_ch->output_port, cmd, data);
-		if (ret)
-			return ret;
-		return imx_ldb_disable(imx_ldb_ch, port);
+		break;
 	case VPL_PREPARE:
-		ret = vpl_ioctl(vpl, imx_ldb_ch->output_port, cmd, data);
+		ret = imx_ldb_prepare(imx_ldb_ch, data, port);
 		if (ret)
 			return ret;
-		return imx_ldb_prepare(imx_ldb_ch, data, port);
+		break;
 	case IMX_IPU_VPL_DI_MODE:
 		mode = data;
 
@@ -282,9 +263,22 @@ static int imx_ldb_ioctl(struct vpl *vpl, unsigned int port,
 			V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
 
 		return 0;
-	default:
-		return vpl_ioctl(vpl, imx_ldb_ch->output_port, cmd, data);
+	case VPL_GET_VIDEOMODES:
+		if (imx_ldb_ch->modes) {
+			struct display_timings *timings = data;
+			timings->num_modes = imx_ldb_ch->modes->num_modes;
+			timings->modes = imx_ldb_ch->modes->modes;
+			dev_dbg(imx_ldb_ch->ldb->dev, "Using ldb provided timings\n");
+			return 0;
+		}
+
+		break;
 	}
+
+	if (imx_ldb_ch->output_port > 0)
+		return vpl_ioctl(vpl, imx_ldb_ch->output_port, cmd, data);
+
+	return 0;
 }
 
 static int imx_ldb_probe(struct device_d *dev)
@@ -326,10 +320,15 @@ static int imx_ldb_probe(struct device_d *dev)
 		channel->chno = i;
 		channel->output_port = imx_ldb->soc_data->have_mux ? 4 : 1;
 
+		channel->modes = of_get_display_timings(child);
+
 		/* The output port is port@4 with mux or port@1 without mux */
 		port = of_graph_get_port_by_id(child, channel->output_port);
-		if (!port) {
-			dev_warn(dev, "No port found for %s\n", child->full_name);
+		if (!port)
+			channel->output_port = -1;
+
+		if (!channel->modes && !port) {
+			dev_err(dev, "Neither display timings in ldb node nor remote panel found\n");
 			continue;
 		}
 
-- 
2.5.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 04/10] video: simple-panel: Add debug/error messages
  2015-09-23 11:47 [PATCH v2] video: imx-ipu-v3: ldb fixes Sascha Hauer
                   ` (2 preceding siblings ...)
  2015-09-23 11:47 ` [PATCH 03/10] video: ipuv3: imx-ldb: Support video modes in ldb node Sascha Hauer
@ 2015-09-23 11:47 ` Sascha Hauer
  2015-09-23 11:47 ` [PATCH 05/10] video: simple-panel: Add support for device tree provided nodes Sascha Hauer
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sascha Hauer @ 2015-09-23 11:47 UTC (permalink / raw)
  To: Barebox List

Let the driver be more informative when something goes wrong.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/video/simple-panel.c | 28 +++++++++++++++++++++++-----
 1 file changed, 23 insertions(+), 5 deletions(-)

diff --git a/drivers/video/simple-panel.c b/drivers/video/simple-panel.c
index 3dd760b..4775509 100644
--- a/drivers/video/simple-panel.c
+++ b/drivers/video/simple-panel.c
@@ -30,6 +30,7 @@
 #include <i2c/i2c.h>
 
 struct simple_panel {
+	struct device_d *dev;
 	struct vpl vpl;
 	int enable_gpio;
 	int enable_active_high;
@@ -44,10 +45,14 @@ static int simple_panel_enable(struct simple_panel *panel)
 {
 	int ret;
 
+	dev_dbg(panel->dev, "enabling\n");
+
 	if (panel->backlight_node && !panel->backlight) {
 		panel->backlight = of_backlight_find(panel->backlight_node);
-		if (!panel->backlight)
+		if (!panel->backlight) {
+			dev_err(panel->dev, "Cannot find backlight\n");
 			return -ENODEV;
+		}
 	}
 
 	if (gpio_is_valid(panel->enable_gpio))
@@ -68,6 +73,8 @@ static int simple_panel_enable(struct simple_panel *panel)
 
 static int simple_panel_disable(struct simple_panel *panel)
 {
+	dev_dbg(panel->dev, "disabling\n");
+
 	if (panel->backlight)
 		backlight_set_brightness(panel->backlight, 0);
 
@@ -80,23 +87,33 @@ static int simple_panel_disable(struct simple_panel *panel)
 
 static int simple_panel_get_modes(struct simple_panel *panel, struct display_timings *timings)
 {
-	int ret = -ENOENT;
+	int ret;
 
 	if (panel->ddc_node && IS_ENABLED(CONFIG_DRIVER_VIDEO_EDID) &&
 	    IS_ENABLED(CONFIG_I2C)) {
 		struct i2c_adapter *i2c;
 
                 i2c = of_find_i2c_adapter_by_node(panel->ddc_node);
-		if (!i2c)
+		if (!i2c) {
+			dev_err(panel->dev, "cannot find edid i2c node\n");
 			return -ENODEV;
+		}
 		timings->edid = edid_read_i2c(i2c);
-		if (!timings->edid)
+		if (!timings->edid) {
+			dev_err(panel->dev, "cannot read edid data\n");
 			return -EINVAL;
+		}
 
 		ret = edid_to_display_timings(timings, timings->edid);
+		if (ret) {
+			dev_err(panel->dev, "cannot convert edid data to timings\n");
+			return ret;
+		}
 	}
 
-	return ret;
+	dev_err(panel->dev, "No modes found\n");
+
+	return -ENOENT;
 }
 
 static int simple_panel_ioctl(struct vpl *vpl, unsigned int port,
@@ -129,6 +146,7 @@ static int simple_panel_probe(struct device_d *dev)
 	panel->enable_gpio = of_get_named_gpio_flags(node, "enable-gpios", 0, &flags);
 	panel->vpl.node = node;
 	panel->vpl.ioctl = simple_panel_ioctl;
+	panel->dev = dev;
 
 	if (gpio_is_valid(panel->enable_gpio)) {
 		if (!(flags & OF_GPIO_ACTIVE_LOW))
-- 
2.5.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 05/10] video: simple-panel: Add support for device tree provided nodes
  2015-09-23 11:47 [PATCH v2] video: imx-ipu-v3: ldb fixes Sascha Hauer
                   ` (3 preceding siblings ...)
  2015-09-23 11:47 ` [PATCH 04/10] video: simple-panel: Add debug/error messages Sascha Hauer
@ 2015-09-23 11:47 ` Sascha Hauer
  2015-09-23 11:47 ` [PATCH 06/10] video: ipuv3: print error message when no modes are found Sascha Hauer
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sascha Hauer @ 2015-09-23 11:47 UTC (permalink / raw)
  To: Barebox List

This adds support for display timings provided from device tree.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/video/simple-panel.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/video/simple-panel.c b/drivers/video/simple-panel.c
index 4775509..be39ff0 100644
--- a/drivers/video/simple-panel.c
+++ b/drivers/video/simple-panel.c
@@ -87,6 +87,7 @@ static int simple_panel_disable(struct simple_panel *panel)
 
 static int simple_panel_get_modes(struct simple_panel *panel, struct display_timings *timings)
 {
+	struct display_timings *modes;
 	int ret;
 
 	if (panel->ddc_node && IS_ENABLED(CONFIG_DRIVER_VIDEO_EDID) &&
@@ -111,6 +112,13 @@ static int simple_panel_get_modes(struct simple_panel *panel, struct display_tim
 		}
 	}
 
+	modes = of_get_display_timings(panel->dev->device_node);
+	if (modes) {
+		timings->modes = modes->modes;
+		timings->num_modes = modes->num_modes;
+		return 0;
+	}
+
 	dev_err(panel->dev, "No modes found\n");
 
 	return -ENOENT;
-- 
2.5.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 06/10] video: ipuv3: print error message when no modes are found
  2015-09-23 11:47 [PATCH v2] video: imx-ipu-v3: ldb fixes Sascha Hauer
                   ` (4 preceding siblings ...)
  2015-09-23 11:47 ` [PATCH 05/10] video: simple-panel: Add support for device tree provided nodes Sascha Hauer
@ 2015-09-23 11:47 ` Sascha Hauer
  2015-09-23 11:47 ` [PATCH 07/10] video: backlight-pwm: Add error message Sascha Hauer
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sascha Hauer @ 2015-09-23 11:47 UTC (permalink / raw)
  To: Barebox List

This is a common error, so print a message to inform the user
what went wrong.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/video/imx-ipu-v3/ipufb.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/video/imx-ipu-v3/ipufb.c b/drivers/video/imx-ipu-v3/ipufb.c
index 401f8f7..a96883c 100644
--- a/drivers/video/imx-ipu-v3/ipufb.c
+++ b/drivers/video/imx-ipu-v3/ipufb.c
@@ -329,8 +329,10 @@ static int ipufb_probe(struct device_d *dev)
 		}
 
 		ret = vpl_ioctl(&fbi->vpl, 2 + fbi->dino, VPL_GET_VIDEOMODES, &info->modes);
-		if (ret)
+		if (ret) {
+			dev_err(fbi->dev, "failed to get modes: %s\n", strerror(-ret));
 			return ret;
+		}
 
 		ret = register_framebuffer(info);
 		if (ret < 0) {
-- 
2.5.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 07/10] video: backlight-pwm: Add error message
  2015-09-23 11:47 [PATCH v2] video: imx-ipu-v3: ldb fixes Sascha Hauer
                   ` (5 preceding siblings ...)
  2015-09-23 11:47 ` [PATCH 06/10] video: ipuv3: print error message when no modes are found Sascha Hauer
@ 2015-09-23 11:47 ` Sascha Hauer
  2015-09-23 11:47 ` [PATCH 08/10] video: backlight-pwm: Add regulator support Sascha Hauer
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sascha Hauer @ 2015-09-23 11:47 UTC (permalink / raw)
  To: Barebox List

Inform the user when we can't find a pwm for the backlight driver.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/video/backlight-pwm.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/video/backlight-pwm.c b/drivers/video/backlight-pwm.c
index 91b1481..8f17f21 100644
--- a/drivers/video/backlight-pwm.c
+++ b/drivers/video/backlight-pwm.c
@@ -160,8 +160,10 @@ static int backlight_pwm_of_probe(struct device_d *dev)
 	struct pwm_device *pwm;
 
 	pwm = of_pwm_request(dev->device_node, NULL);
-	if (IS_ERR(pwm))
+	if (IS_ERR(pwm)) {
+		dev_err(dev, "Cannot find PWM device\n");
 		return PTR_ERR(pwm);
+	}
 
 	pwm_backlight = xzalloc(sizeof(*pwm_backlight));
 	pwm_backlight->pwm = pwm;
-- 
2.5.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 08/10] video: backlight-pwm: Add regulator support
  2015-09-23 11:47 [PATCH v2] video: imx-ipu-v3: ldb fixes Sascha Hauer
                   ` (6 preceding siblings ...)
  2015-09-23 11:47 ` [PATCH 07/10] video: backlight-pwm: Add error message Sascha Hauer
@ 2015-09-23 11:47 ` Sascha Hauer
  2015-09-23 11:47 ` [PATCH 09/10] ARM: i.MX: GuF Santaro: enable PWM Sascha Hauer
  2015-09-23 11:47 ` [PATCH 10/10] ARM: i.MX: GuF Santaro: Fix panel support Sascha Hauer
  9 siblings, 0 replies; 11+ messages in thread
From: Sascha Hauer @ 2015-09-23 11:47 UTC (permalink / raw)
  To: Barebox List

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/video/backlight-pwm.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/video/backlight-pwm.c b/drivers/video/backlight-pwm.c
index 8f17f21..ba6f9bc 100644
--- a/drivers/video/backlight-pwm.c
+++ b/drivers/video/backlight-pwm.c
@@ -24,6 +24,7 @@
 #include <pwm.h>
 #include <linux/err.h>
 #include <of.h>
+#include <regulator.h>
 #include <gpio.h>
 #include <of_gpio.h>
 #include <asm-generic/div64.h>
@@ -31,6 +32,7 @@
 struct pwm_backlight {
 	struct backlight_device backlight;
 	struct pwm_device *pwm;
+	struct regulator *power;
 	uint32_t period;
 	unsigned int *levels;
 	int enable_gpio;
@@ -50,6 +52,8 @@ static int backlight_pwm_enable(struct pwm_backlight *pwm_backlight)
 	if (ret)
 		return ret;
 
+	regulator_enable(pwm_backlight->power);
+
 	if (gpio_is_valid(pwm_backlight->enable_gpio)) {
 		gpio_direction_output(pwm_backlight->enable_gpio,
 				pwm_backlight->enable_active_high);
@@ -68,6 +72,9 @@ static int backlight_pwm_disable(struct pwm_backlight *pwm_backlight)
 	if (gpio_is_valid(pwm_backlight->enable_gpio)) {
 		gpio_direction_output(pwm_backlight->enable_gpio,
 				!pwm_backlight->enable_active_high);
+
+		regulator_disable(pwm_backlight->power);
+
 		/*
 		 * Only disable PWM when an enable gpio is present.
 		 * The output of the PWM is undefined when the PWM
@@ -173,6 +180,12 @@ static int backlight_pwm_of_probe(struct device_d *dev)
 	if (ret)
 		return ret;
 
+	pwm_backlight->power = regulator_get(dev, "power");
+	if (IS_ERR(pwm_backlight->power)) {
+		dev_err(dev, "Cannot find regulator\n");
+		return PTR_ERR(pwm_backlight->power);
+	}
+
 	pwm_backlight->period = pwm_get_period(pwm_backlight->pwm);
 
 	pwm_backlight->backlight.brightness_set = backlight_pwm_set;
-- 
2.5.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 09/10] ARM: i.MX: GuF Santaro: enable PWM
  2015-09-23 11:47 [PATCH v2] video: imx-ipu-v3: ldb fixes Sascha Hauer
                   ` (7 preceding siblings ...)
  2015-09-23 11:47 ` [PATCH 08/10] video: backlight-pwm: Add regulator support Sascha Hauer
@ 2015-09-23 11:47 ` Sascha Hauer
  2015-09-23 11:47 ` [PATCH 10/10] ARM: i.MX: GuF Santaro: Fix panel support Sascha Hauer
  9 siblings, 0 replies; 11+ messages in thread
From: Sascha Hauer @ 2015-09-23 11:47 UTC (permalink / raw)
  To: Barebox List

The PWMs now have to be enabled to use them. Enable the backlight PWM.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/dts/imx6q-guf-santaro.dts | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/dts/imx6q-guf-santaro.dts b/arch/arm/dts/imx6q-guf-santaro.dts
index d9bc7a5..4db9071 100644
--- a/arch/arm/dts/imx6q-guf-santaro.dts
+++ b/arch/arm/dts/imx6q-guf-santaro.dts
@@ -542,6 +542,10 @@
 	};
 };
 
+&pwm1 {
+	status = "okay";
+};
+
 &uart1 {
 	/* RS485 */
 	pinctrl-names = "default";
-- 
2.5.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 10/10] ARM: i.MX: GuF Santaro: Fix panel support
  2015-09-23 11:47 [PATCH v2] video: imx-ipu-v3: ldb fixes Sascha Hauer
                   ` (8 preceding siblings ...)
  2015-09-23 11:47 ` [PATCH 09/10] ARM: i.MX: GuF Santaro: enable PWM Sascha Hauer
@ 2015-09-23 11:47 ` Sascha Hauer
  9 siblings, 0 replies; 11+ messages in thread
From: Sascha Hauer @ 2015-09-23 11:47 UTC (permalink / raw)
  To: Barebox List

The backlight enable gpio is in both the ldb node and the panel node.
Remove it from the ldb node where is was unused and fix the polarity
in the panel node. Also make the panel compatible to simple-panel to
let the driver match it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/dts/imx6q-guf-santaro.dts | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/arm/dts/imx6q-guf-santaro.dts b/arch/arm/dts/imx6q-guf-santaro.dts
index 4db9071..27f538a 100644
--- a/arch/arm/dts/imx6q-guf-santaro.dts
+++ b/arch/arm/dts/imx6q-guf-santaro.dts
@@ -60,9 +60,9 @@
 	};
 
 	panel {
-		compatible = "unknown,the-display-on-the-garz-fricke-santaro";
+		compatible = "simple-panel";
 		backlight = <&backlight>;
-		enable-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>;
+		enable-gpios = <&gpio5 21 GPIO_ACTIVE_HIGH>;
 
 		port {
 			panel_in: endpoint {
@@ -515,7 +515,6 @@
 		status = "okay";
 		fsl,data-mapping = "spwg";
 		fsl,data-width = <18>;
-		gpios = <&gpio5 21 GPIO_ACTIVE_HIGH>;
 
 		display-timings {
 			timing0: 800x480 {
-- 
2.5.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

end of thread, other threads:[~2015-09-23 11:48 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-23 11:47 [PATCH v2] video: imx-ipu-v3: ldb fixes Sascha Hauer
2015-09-23 11:47 ` [PATCH 01/10] video: ipuv3: Do not crash when no mode is found Sascha Hauer
2015-09-23 11:47 ` [PATCH 02/10] video: ipuv3: imx-ldb: remove unused variable Sascha Hauer
2015-09-23 11:47 ` [PATCH 03/10] video: ipuv3: imx-ldb: Support video modes in ldb node Sascha Hauer
2015-09-23 11:47 ` [PATCH 04/10] video: simple-panel: Add debug/error messages Sascha Hauer
2015-09-23 11:47 ` [PATCH 05/10] video: simple-panel: Add support for device tree provided nodes Sascha Hauer
2015-09-23 11:47 ` [PATCH 06/10] video: ipuv3: print error message when no modes are found Sascha Hauer
2015-09-23 11:47 ` [PATCH 07/10] video: backlight-pwm: Add error message Sascha Hauer
2015-09-23 11:47 ` [PATCH 08/10] video: backlight-pwm: Add regulator support Sascha Hauer
2015-09-23 11:47 ` [PATCH 09/10] ARM: i.MX: GuF Santaro: enable PWM Sascha Hauer
2015-09-23 11:47 ` [PATCH 10/10] ARM: i.MX: GuF Santaro: Fix panel support Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox