diff mbox series

[v4,5/7] dt-bindings: ti-lmu: Modify dt bindings for the LM3633

Message ID 20181023170623.31820-5-dmurphy@ti.com
State New
Headers show
Series [v4,1/7] leds: add TI LMU backlight driver | expand

Commit Message

Dan Murphy Oct. 23, 2018, 5:06 p.m. UTC
The LM3633 is a single function LED driver. The single function LED
driver needs to reside in the LED directory as a dedicated LED driver
and not as a MFD device.  The device does have common brightness and ramp
features and those can be accomodated by a TI LMU framework.

The LM3633 dt binding needs to be moved from the ti-lmu.txt and a dedicated
LED dt binding needs to be added.  The new LM3633 LED dt binding will then
reside in the Documentation/devicetree/bindings/leds directory and follow the
current LED and general bindings guidelines.

Signed-off-by: Dan Murphy <dmurphy@ti.com>

---

v4 - Squashed removal and addition of the dt bindings into a single patch - https://lore.kernel.org/patchwork/patch/998703/

 .../devicetree/bindings/leds/leds-lm3633.txt  | 102 ++++++++++++++++++
 .../devicetree/bindings/mfd/ti-lmu.txt        |  48 ---------
 2 files changed, 102 insertions(+), 48 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/leds/leds-lm3633.txt

-- 
2.19.0

Comments

Pavel Machek Oct. 24, 2018, 9:23 a.m. UTC | #1
On Tue 2018-10-23 12:06:21, Dan Murphy wrote:
> The LM3633 is a single function LED driver. The single function LED

> driver needs to reside in the LED directory as a dedicated LED driver

> and not as a MFD device.  The device does have common brightness and ramp

> features and those can be accomodated by a TI LMU framework.

> 

> The LM3633 dt binding needs to be moved from the ti-lmu.txt and a dedicated

> LED dt binding needs to be added.  The new LM3633 LED dt binding will then

> reside in the Documentation/devicetree/bindings/leds directory and follow the

> current LED and general bindings guidelines.


What?

>  .../devicetree/bindings/leds/leds-lm3633.txt  | 102 ++++++++++++++++++

>  .../devicetree/bindings/mfd/ti-lmu.txt        |  48 ---------

>  2 files changed, 102 insertions(+), 48 deletions(-)

>  create mode 100644

>  Documentation/devicetree/bindings/leds/leds-lm3633.txt


> index 920f910be4e9..573e88578d3d 100644

> --- a/Documentation/devicetree/bindings/mfd/ti-lmu.txt

> +++ b/Documentation/devicetree/bindings/mfd/ti-lmu.txt

> @@ -7,7 +7,6 @@ TI LMU driver supports lighting devices below.

>    LM3532       Backlight

>    LM3631       Backlight and regulator

>    LM3632       Backlight and regulator

> -  LM3633       Backlight, LED and fault monitor

>    LM3695       Backlight


Are you seriously proposing to take one binding and split it into 6
copy&pasted ones?

That's not the way we do development. NAK.

We don't want to have copy & pasted code. We also don't want to have
copy & pasted bindings. Nor changelogs, for that matter.

Thank you,
								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Pavel Machek Oct. 24, 2018, 6:38 p.m. UTC | #2
On Wed 2018-10-24 09:35:06, Rob Herring wrote:
> On Wed, Oct 24, 2018 at 11:23:28AM +0200, Pavel Machek wrote:

> > On Tue 2018-10-23 12:06:21, Dan Murphy wrote:

> > > The LM3633 is a single function LED driver. The single function LED

> > > driver needs to reside in the LED directory as a dedicated LED driver

> > > and not as a MFD device.  The device does have common brightness and ramp

> > > features and those can be accomodated by a TI LMU framework.

> > > 

> > > The LM3633 dt binding needs to be moved from the ti-lmu.txt and a dedicated

> > > LED dt binding needs to be added.  The new LM3633 LED dt binding will then

> > > reside in the Documentation/devicetree/bindings/leds directory and follow the

> > > current LED and general bindings guidelines.

> > 

> > What?

> > 

> > >  .../devicetree/bindings/leds/leds-lm3633.txt  | 102 ++++++++++++++++++

> > >  .../devicetree/bindings/mfd/ti-lmu.txt        |  48 ---------

> > >  2 files changed, 102 insertions(+), 48 deletions(-)

> > >  create mode 100644

> > >  Documentation/devicetree/bindings/leds/leds-lm3633.txt

> > 

> > > index 920f910be4e9..573e88578d3d 100644

> > > --- a/Documentation/devicetree/bindings/mfd/ti-lmu.txt

> > > +++ b/Documentation/devicetree/bindings/mfd/ti-lmu.txt

> > > @@ -7,7 +7,6 @@ TI LMU driver supports lighting devices below.

> > >    LM3532       Backlight

> > >    LM3631       Backlight and regulator

> > >    LM3632       Backlight and regulator

> > > -  LM3633       Backlight, LED and fault monitor

> > >    LM3695       Backlight

> > 

> > Are you seriously proposing to take one binding and split it into 6

> > copy&pasted ones?

> > 

> > That's not the way we do development. NAK.

> > 

> > We don't want to have copy & pasted code. We also don't want to have

> > copy & pasted bindings. Nor changelogs, for that matter.

> 

> I looked at the LM3633 and LM3632 datasheets. They look quite different 

> to me and should be separate IMO. Just looking at different LED 

> functions and GPIO control lines is enough to make that determination. 

> The LM3697 looks like a subset of LM3633 at least at a schematic 

> diagram level, so maybe those can be shared.


Well, they have blocks in common, and are currently handled by one
driver. Two .c files proposed here shared 80% code when I reviewed
previous version. Original merge documentation is:

https://groups.google.com/forum/#!msg/fa.linux.kernel/hWvxahP7INw/Y2EDZmjoAQAJ

TI LMU(Lighting Management Unit) driver supports lighting devices
below.
 
 	                 Enable pin  Backlights  HWMON  LEDs   Regulators
	                 ----------  ----------  -----  ----  ------------
		  LM3532       o           o         x     x        x
		  LM3631       o           o         x     x    5 regulators
		  LM3632       o           o         x     x    3 regulators
		  LM3633       o           o         o     o        x
		  LM3695       o           o         x     x        x
		  LM3697       o           o         o     x        x


I thought I understood that table, but maybe I'm confused. Anyway,
there seemed to be "enough" to share.

> While we could litter the binding with conditions on properties 

> depending on specific compatible strings (such as which GPIO properties 

> apply to which compatible), that is going to be problematic down the 

> line when we convert to json-schema[1].


Well, situation where different devices share common features /
function blocks is going to be somehow common. Not sure how to solve
it in json, maybe the properties can simply be marked optional?, but I
guess it will need solving somehow.

> [1] https://lkml.org/lkml/2018/10/5/883


								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/leds/leds-lm3633.txt b/Documentation/devicetree/bindings/leds/leds-lm3633.txt
new file mode 100644
index 000000000000..d791b891ea6e
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/leds-lm3633.txt
@@ -0,0 +1,102 @@ 
+* Texas Instruments - LM3633 Lighting Power Solution for Smartphone Handsets
+
+The LM3633 is a complete power source for
+backlight, keypad, and indicator LEDs in smartphone
+handsets.
+
+This device is suitable for display and keypad Lighting
+
+Required properties:
+	- compatible:
+		"ti,lm3633"
+	- reg :  I2C slave address
+	- #address-cells : 1
+	- #size-cells : 0
+
+Optional properties:
+	- enable-gpios : GPIO pin to enable/disable the device
+	- vled-supply : LED supply
+
+Required child properties:
+	- reg : 0 - HVLED is Controlled by bank A
+		1 - HVLED is Controlled by bank B
+		2,3,4 - LVLED1, 2 and 3 are Controlled by bank C, D and E
+		5,6,7 - LVLED4, 5 and 6 are Controlled by bank F, G and H
+	- led-sources : Indicates which LED string is associated to which
+			control bank.
+			0 - LED is not active in this control bank
+			1 - LED string is controlled by this control bank
+
+Optional child properties:
+	- runtime-ramp-up-msec: Current ramping from one brightness level to
+				the a higher brightness level.
+				Range from 2048 us - 117.44 s
+	- runtime-ramp-down-msec: Current ramping from one brightness level to
+				  the a lower brightness level.
+				  Range from 2048 us - 117.44 s
+	- label : see Documentation/devicetree/bindings/leds/common.txt
+	- linux,default-trigger :
+	   see Documentation/devicetree/bindings/leds/common.txt
+
+Example:
+Control bank C output to 3 LVLEDs and Control F, G and H have independent
+controls of the LVLEDs.
+
+led-controller@36 {
+	compatible = "ti,lm3633";
+	reg = <0x36>;
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
+	led@0 {
+		reg = <0>;
+		led-sources = < 1 0 1 >;
+		label = "white:backlight";
+		ramp-up-ms = <100000>;
+		ramp-down-ms = <1000>;
+		linux,default-trigger = "backlight";
+	};
+
+	led@1 {
+		reg = <1>;
+		led-sources = < 0 1 0 >;
+		label = "white:light";
+		ramp-up-ms = <100000>;
+		ramp-down-ms = <1000>;
+	};
+
+	led@2 {
+		reg = <2>;
+		led-sources = <1>;
+		ramp-up-ms = <100000>;
+		ramp-down-ms = <1000>;
+		label = "white:indicator1";
+	};
+
+	led@5 {
+		reg = <5>;
+		led-sources = <1>;
+		ramp-up-ms = <100000>;
+		ramp-down-ms = <1000>;
+		label = "red:light";
+	};
+
+	led@6 {
+		reg = <6>;
+		led-sources = <1>;
+		ramp-up-ms = <41940>;
+		ramp-down-ms = <1000>;
+		label = "green:light";
+	};
+
+	led@7 {
+		reg = <7>;
+		led-sources = <1>;
+		ramp-up-ms = <100000>;
+		ramp-down-ms = <1000>;
+		label = "blue:light";
+	};
+};
+For more product information please see the link below:
+http://www.ti.com/lit/ds/symlink/lm3633.pdf
diff --git a/Documentation/devicetree/bindings/mfd/ti-lmu.txt b/Documentation/devicetree/bindings/mfd/ti-lmu.txt
index 920f910be4e9..573e88578d3d 100644
--- a/Documentation/devicetree/bindings/mfd/ti-lmu.txt
+++ b/Documentation/devicetree/bindings/mfd/ti-lmu.txt
@@ -7,7 +7,6 @@  TI LMU driver supports lighting devices below.
   LM3532       Backlight
   LM3631       Backlight and regulator
   LM3632       Backlight and regulator
-  LM3633       Backlight, LED and fault monitor
   LM3695       Backlight
 
 Required properties:
@@ -15,12 +14,10 @@  Required properties:
                 "ti,lm3532"
                 "ti,lm3631"
                 "ti,lm3632"
-                "ti,lm3633"
                 "ti,lm3695"
   - reg: I2C slave address.
          0x11 for LM3632
          0x29 for LM3631
-         0x36 for LM3633
          0x38 for LM3532
          0x63 for LM3695
 
@@ -157,51 +154,6 @@  lm3632@11 {
 	};
 };
 
-lm3633@36 {
-	compatible = "ti,lm3633";
-	reg = <0x36>;
-
-	enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;
-
-	backlight {
-		compatible = "ti,lm3633-backlight";
-
-		main {
-			label = "main_lcd";
-			led-sources = <1 2>;
-			ramp-up-msec = <500>;
-			ramp-down-msec = <500>;
-		};
-
-		front {
-			label = "front_lcd";
-			led-sources = <0>;
-			ramp-up-msec = <1000>;
-			ramp-down-msec = <0>;
-		};
-	};
-
-	leds {
-		compatible = "ti,lm3633-leds";
-
-		chan1 {
-			label = "status";
-			led-sources = <1>;
-			led-max-microamp = <6000>;
-		};
-
-		chan345 {
-			label = "rgb";
-			led-sources = <3 4 5>;
-			led-max-microamp = <10000>;
-		};
-	};
-
-	fault-monitor {
-		compatible = "ti,lm3633-fault-monitor";
-	};
-};
-
 lm3695@63 {
 	compatible = "ti,lm3695";
 	reg = <0x63>;