On Mon, Dec 16, 2013 at 04:52:45PM +0100, Robert Jarzmik wrote: > Hi Thierry,
Hi Robert, Please always Cc the linux-pwm mailing list for PWM related questions. I've done that now. > Since recently, and probable since last Linus's merge of PWM tree (Merge tag > 'pwm/for-3.13-rc1' of > git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm), my > platform has its backlight broken. > > The particularity of my platform: > - arch/arm/mach-pxa/mioa701.c > - no device tree > - no power supply regulator for backlight > - backlight controlled by a PWM > - kernel message : > [ 1.495480] platform pwm-backlight: Driver pwm-backlight requests probe > deferral > > I think other "old" platforms will suffer from this. Do you have a > recommendation ? I hadn't anticipated that =(. In fact I had been holding this patch back for a release cycle because I was waiting for a specific regulator patch to land which provides a dummy regulator if one wasn't specified. It seems that that patch only works when booting from DT, though. The correct way to fix this would be to provide a lookup table with the dummy regulator in the board file. I've attached a patch (compile-tested only) that might work. If it does, please let me know and, if nobody else volunteers, I'll see if I can come up with a set of patches to fix this for any other boards that have the same issue. Thierry
From 8c25d9b1465acd2dcd05644f2c984b54ae3dfc53 Mon Sep 17 00:00:00 2001 From: Thierry Reding <[email protected]> Date: Tue, 17 Dec 2013 10:52:36 +0100 Subject: [PATCH] ARM: pxa: Add dummy power supply for backlight for Mitac Mio A701 Recent changes to the pwm-backlight driver have made the power supply mandatory. There is code in the regulator core to deal with situations where no regulator is specified and provide a dummy, but that works on DT-based boards only. The situation can be remedied by adding a dummy regulator during board initialization. Signed-off-by: Thierry Reding <[email protected]> --- arch/arm/mach-pxa/mioa701.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c index f70583fee59f..5cb3a3b33772 100644 --- a/arch/arm/mach-pxa/mioa701.c +++ b/arch/arm/mach-pxa/mioa701.c @@ -38,6 +38,7 @@ #include <linux/mtd/physmap.h> #include <linux/usb/gpio_vbus.h> #include <linux/reboot.h> +#include <linux/regulator/fixed.h> #include <linux/regulator/max1586.h> #include <linux/slab.h> #include <linux/i2c/pxa-i2c.h> @@ -714,6 +715,10 @@ static struct gpio global_gpios[] = { { GPIO56_MT9M111_nOE, GPIOF_OUT_INIT_LOW, "Camera nOE" }, }; +static struct regulator_consumer_supply fixed_5v0_consumers[] = { + REGULATOR_SUPPLY("power", "pwm-backlight.0"), +}; + static void __init mioa701_machine_init(void) { int rc; @@ -753,6 +758,10 @@ static void __init mioa701_machine_init(void) pxa_set_i2c_info(&i2c_pdata); pxa27x_set_i2c_power_info(NULL); pxa_set_camera_info(&mioa701_pxacamera_platform_data); + + regulator_register_always_on(0, "fixed-5.0V", fixed_5v0_consumers, + ARRAY_SIZE(fixed_5v0_consumers), + 5000000); } static void mioa701_machine_exit(void) -- 1.8.4.2
pgplcxgDyQrHZ.pgp
Description: PGP signature
