diff mbox

[V4,6/9] ARM: mxs: Provide regulator to pwm-backlight

Message ID 1363719573-20926-7-git-send-email-achew@nvidia.com
State New, archived
Headers show

Commit Message

achew@nvidia.com March 19, 2013, 6:59 p.m. UTC
The pwm-backlight driver now takes a mandatory regulator that is gotten
during driver probe.  Initialize a dummy regulator to satisfy this
requirement.

Signed-off-by: Andrew Chew <achew@nvidia.com>
---
 arch/arm/boot/dts/imx23-evk.dts      | 6 ++++++
 arch/arm/boot/dts/imx28-apf28dev.dts | 6 ++++++
 arch/arm/boot/dts/imx28-cfa10049.dts | 6 ++++++
 arch/arm/boot/dts/imx28-evk.dts      | 6 ++++++
 arch/arm/boot/dts/imx28-tx28.dts     | 6 ++++++
 5 files changed, 30 insertions(+)

Comments

Marek Vasut March 19, 2013, 9:27 p.m. UTC | #1
Dear Andrew Chew,

> The pwm-backlight driver now takes a mandatory regulator that is gotten
> during driver probe.  Initialize a dummy regulator to satisfy this
> requirement.
> 
> Signed-off-by: Andrew Chew <achew@nvidia.com>

Do we really need a mandatory regulator? Why can't it be optional?

Best regards,
Marek Vasut
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stephen Warren March 19, 2013, 10:10 p.m. UTC | #2
On 03/19/2013 03:27 PM, Marek Vasut wrote:
> Dear Andrew Chew,
> 
>> The pwm-backlight driver now takes a mandatory regulator that is gotten
>> during driver probe.  Initialize a dummy regulator to satisfy this
>> requirement.
>>
>> Signed-off-by: Andrew Chew <achew@nvidia.com>
> 
> Do we really need a mandatory regulator? Why can't it be optional?

IIRC, the previous advice I've seen is that if a device (driver) uses a
regulator, it must /require/ a regulator, and if a particular board
doesn't actually have a SW-controlled regulator, then a fixed- or dummy-
regulator should be provided to satisfy this requirement.

CC'ing Mark Brown to make sure I really do Recall Correctly.
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Shawn Guo March 20, 2013, 3:13 a.m. UTC | #3
On Tue, Mar 19, 2013 at 11:59:30AM -0700, Andrew Chew wrote:
> The pwm-backlight driver now takes a mandatory regulator that is gotten
> during driver probe.  Initialize a dummy regulator to satisfy this
> requirement.
> 
> Signed-off-by: Andrew Chew <achew@nvidia.com>
> ---
>  arch/arm/boot/dts/imx23-evk.dts      | 6 ++++++
>  arch/arm/boot/dts/imx28-apf28dev.dts | 6 ++++++
>  arch/arm/boot/dts/imx28-cfa10049.dts | 6 ++++++
>  arch/arm/boot/dts/imx28-evk.dts      | 6 ++++++
>  arch/arm/boot/dts/imx28-tx28.dts     | 6 ++++++
>  5 files changed, 30 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/imx23-evk.dts b/arch/arm/boot/dts/imx23-evk.dts
> index 035c13f..e48e36c 100644
> --- a/arch/arm/boot/dts/imx23-evk.dts
> +++ b/arch/arm/boot/dts/imx23-evk.dts
> @@ -97,10 +97,16 @@
>  		};
>  	};
>  
> +	bl_en: fixed-regulator {

The node name is too generic.  Very likely we have other fixed regulator
in a dts.

For mxs, we have all such board level regulators defined in node
"regulators" as children.

Shawn

> +		compatible = "regulator-fixed";
> +		regulator-name = "bl-en-supply";
> +        };
> +
>  	backlight {
>  		compatible = "pwm-backlight";
>  		pwms = <&pwm 2 5000000>;
>  		brightness-levels = <0 4 8 16 32 64 128 255>;
>  		default-brightness-level = <6>;
> +		enable-supply = <&bl_en>;
>  	};
>  };

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Marek Vasut March 20, 2013, 2:03 p.m. UTC | #4
Hi Mark,

> On Tue, Mar 19, 2013 at 04:10:26PM -0600, Stephen Warren wrote:
> > On 03/19/2013 03:27 PM, Marek Vasut wrote:
> > > Do we really need a mandatory regulator? Why can't it be optional?
> > 
> > IIRC, the previous advice I've seen is that if a device (driver) uses a
> > regulator, it must /require/ a regulator, and if a particular board
> > doesn't actually have a SW-controlled regulator, then a fixed- or dummy-
> > regulator should be provided to satisfy this requirement.
> > 
> > CC'ing Mark Brown to make sure I really do Recall Correctly.
> 
> Yes, and it should be fixed rather than dummy.  The issue is partly that
> it's probably important that the device has power so we don't want to
> just ignore errors and partly that this is something which applies to
> essentially all devices so whatever we do for this case ought to be done
> by the core so all devices can benefit and we don't have to duplicate
> lots of code in individual drivers.

Thanks for clearing this!

Best regards,
Marek Vasut
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/boot/dts/imx23-evk.dts b/arch/arm/boot/dts/imx23-evk.dts
index 035c13f..e48e36c 100644
--- a/arch/arm/boot/dts/imx23-evk.dts
+++ b/arch/arm/boot/dts/imx23-evk.dts
@@ -97,10 +97,16 @@ 
 		};
 	};
 
+	bl_en: fixed-regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "bl-en-supply";
+        };
+
 	backlight {
 		compatible = "pwm-backlight";
 		pwms = <&pwm 2 5000000>;
 		brightness-levels = <0 4 8 16 32 64 128 255>;
 		default-brightness-level = <6>;
+		enable-supply = <&bl_en>;
 	};
 };
diff --git a/arch/arm/boot/dts/imx28-apf28dev.dts b/arch/arm/boot/dts/imx28-apf28dev.dts
index 6d8865b..866e26f 100644
--- a/arch/arm/boot/dts/imx28-apf28dev.dts
+++ b/arch/arm/boot/dts/imx28-apf28dev.dts
@@ -144,11 +144,17 @@ 
 		};
 	};
 
+	bl_en: fixed-regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "bl-en-supply";
+	};
+
 	backlight {
 		compatible = "pwm-backlight";
 
 		pwms = <&pwm 3 191000>;
 		brightness-levels = <0 4 8 16 32 64 128 255>;
 		default-brightness-level = <6>;
+		enable-supply = <&bl_en>;
 	};
 };
diff --git a/arch/arm/boot/dts/imx28-cfa10049.dts b/arch/arm/boot/dts/imx28-cfa10049.dts
index a0d3e9f..a8477b6 100644
--- a/arch/arm/boot/dts/imx28-cfa10049.dts
+++ b/arch/arm/boot/dts/imx28-cfa10049.dts
@@ -299,10 +299,16 @@ 
 		rotary-encoder,relative-axis;
 	};
 
+	bl_en: fixed-regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "bl-en-supply";
+	};
+
 	backlight {
 		compatible = "pwm-backlight";
 		pwms = <&pwm 3 5000000>;
 		brightness-levels = <0 4 8 16 32 64 128 255>;
 		default-brightness-level = <6>;
+		enable-supply = <&bl_en>;
 	};
 };
diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts
index 2da316e..810f1e4 100644
--- a/arch/arm/boot/dts/imx28-evk.dts
+++ b/arch/arm/boot/dts/imx28-evk.dts
@@ -307,10 +307,16 @@ 
 		};
 	};
 
+	bl_en: fixed-regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "bl-en-supply";
+	};
+
 	backlight {
 		compatible = "pwm-backlight";
 		pwms = <&pwm 2 5000000>;
 		brightness-levels = <0 4 8 16 32 64 128 255>;
 		default-brightness-level = <6>;
+		enable-supply = <&bl_en>;
 	};
 };
diff --git a/arch/arm/boot/dts/imx28-tx28.dts b/arch/arm/boot/dts/imx28-tx28.dts
index 37be532..ea3c88a 100644
--- a/arch/arm/boot/dts/imx28-tx28.dts
+++ b/arch/arm/boot/dts/imx28-tx28.dts
@@ -107,10 +107,16 @@ 
 		};
 	};
 
+	bl_en: fixed-regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "bl-en-supply";
+	};
+
 	backlight {
 		compatible = "pwm-backlight";
 		pwms = <&pwm 0 5000000>;
 		brightness-levels = <0 4 8 16 32 64 128 255>;
 		default-brightness-level = <6>;
+		enable-supply = <&bl_en>;
 	};
 };