Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 174c9526 authored by Jacek Anaszewski's avatar Jacek Anaszewski
Browse files

Merge tag 'lm3532-driver-improvements' into for-next

Merge immutable branch between LEDs, MFD and OMAP Device Tree due to
LM3532 backlight driver improvements and relocation.

* tag 'lm3532-driver-improvements':
  leds: lm3532: Introduce the lm3532 LED driver
  mfd: ti-lmu: Remove LM3532 backlight driver references
  ARM: dts: omap4-droid4: Update backlight dt properties
  dt: lm3532: Add lm3532 dt doc and update ti_lmu doc
parents 6e6c214f bc1b8492
Loading
Loading
Loading
Loading
+101 −0
Original line number Diff line number Diff line
* Texas Instruments - lm3532 White LED driver with ambient light sensing
capability.

The LM3532 provides the 3 high-voltage, low-side current sinks. The device is
programmable over an I2C-compatible interface and has independent
current control for all three channels. The adaptive current regulation
method allows for different LED currents in each current sink thus allowing
for a wide variety of backlight and keypad applications.

The main features of the LM3532 include dual ambient light sensor inputs
each with 32 internal voltage setting resistors, 8-bit logarithmic and linear
brightness control, dual external PWM brightness control inputs, and up to
1000:1 dimming ratio with programmable fade in and fade out settings.

Required properties:
	- compatible : "ti,lm3532"
	- reg : I2C slave address
	- #address-cells : 1
	- #size-cells : 0

Optional properties:
	- enable-gpios : gpio pin to enable (active high)/disable the device.
	- ramp-up-us - The Run time ramp rates/step are from one current
		       set-point to another after the device has reached its
		       initial target set point from turn-on
	- ramp-down-us - The Run time ramp rates/step are from one current
			 set-point to another after the device has reached its
			 initial target set point from turn-on
	Range for ramp settings: 8us - 65536us

Optional properties if ALS mode is used:
	- ti,als-vmin - Minimum ALS voltage defined in Volts
	- ti,als-vmax - Maximum ALS voltage defined in Volts
	Per the data sheet the max ALS voltage is 2V and the min is 0V

	- ti,als1-imp-sel - ALS1 impedance resistor selection in Ohms
	- ti,als2-imp-sel - ALS2 impedance resistor selection in Ohms
	Range for impedance select: 37000 Ohms - 1190 Ohms
	Values above 37kohms will be set to the "High Impedance" setting

	- ti,als-avrg-time-us - Determines the length of time the device needs to
			  average the two ALS inputs.  This is only used if
			  the input mode is LM3532_ALS_INPUT_AVRG.
			     Range: 17920us - 2293760us
	- ti,als-input-mode - Determines how the device uses the attached ALS
			   devices.
			   0x00 - ALS1 and ALS2 input average
			   0x01 - ALS1 Input
			   0x02 - ALS2 Input
			   0x03 - Max of ALS1 and ALS2

Required child properties:
	- reg : Indicates control bank the LED string is controlled by
	- led-sources : see Documentation/devicetree/bindings/leds/common.txt
	- ti,led-mode : Defines if the LED strings are manually controlled or
			if the LED strings are controlled by the ALS.
			0x00 - LED strings are I2C controlled via full scale
			       brightness control register
			0x01 - LED strings are ALS controlled

Optional LED child properties:
	- label : see Documentation/devicetree/bindings/leds/common.txt
	- linux,default-trigger :
	   see Documentation/devicetree/bindings/leds/common.txt

Example:
led-controller@38 {
	compatible = "ti,lm3532";
	#address-cells = <1>;
	#size-cells = <0>;
	reg = <0x38>;

	enable-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;
	ramp-up-us = <1024>;
	ramp-down-us = <65536>;

	ti,als-vmin = <0>;
	ti,als-vmax = <2000>;
	ti,als1-imp-sel = <4110>;
	ti,als2-imp-sel = <2180>;
	ti,als-avrg-time-us = <17920>;
	ti,als-input-mode = <0x00>;

	led@0 {
		reg = <0>;
		led-sources = <2>;
		ti,led-mode = <1>;
		label = ":backlight";
		linux,default-trigger = "backlight";
	};

	led@1 {
		reg = <1>;
		led-sources = <1>;
		ti,led-mode = <0>;
		label = ":kbd_backlight";
	};
};

For more product information please see the links below:
http://www.ti.com/product/LM3532
+0 −20
Original line number Diff line number Diff line
@@ -4,7 +4,6 @@ TI LMU driver supports lighting devices below.

   Name                  Child nodes
  ------      ---------------------------------
  LM3532       Backlight
  LM3631       Backlight and regulator
  LM3632       Backlight and regulator
  LM3633       Backlight, LED and fault monitor
@@ -13,7 +12,6 @@ TI LMU driver supports lighting devices below.

Required properties:
  - compatible: Should be one of:
                "ti,lm3532"
                "ti,lm3631"
                "ti,lm3632"
                "ti,lm3633"
@@ -23,7 +21,6 @@ Required properties:
         0x11 for LM3632
         0x29 for LM3631
         0x36 for LM3633, LM3697
         0x38 for LM3532
         0x63 for LM3695

Optional property:
@@ -47,23 +44,6 @@ Optional nodes:
[2] ../leds/leds-lm3633.txt
[3] ../regulator/lm363x-regulator.txt

lm3532@38 {
	compatible = "ti,lm3532";
	reg = <0x38>;

	enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;

	backlight {
		compatible = "ti,lm3532-backlight";

		lcd {
			led-sources = <0 1 2>;
			ramp-up-msec = <30>;
			ramp-down-msec = <0>;
		};
	};
};

lm3631@29 {
	compatible = "ti,lm3631";
	reg = <0x29>;
+18 −9
Original line number Diff line number Diff line
@@ -214,7 +214,6 @@

		width-mm = <50>;
		height-mm = <89>;
		backlight = <&lcd_backlight>;

		panel-timing {
			clock-frequency = <0>;		/* Calculated by dsi */
@@ -383,20 +382,30 @@
};

&i2c1 {
	lm3532@38 {
	led-controller@38 {
		compatible = "ti,lm3532";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x38>;

		enable-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;

		lcd_backlight: backlight {
			compatible = "ti,lm3532-backlight";
		ramp-up-us = <1024>;
		ramp-down-us = <8193>;

			lcd {
				led-sources = <0 1 2>;
				ramp-up-msec = <1>;
				ramp-down-msec = <0>;
		led@0 {
			reg = <0>;
			led-sources = <2>;
			ti,led-mode = <0>;
			label = ":backlight";
			linux,default-trigger = "backlight";
		};

		led@1 {
			reg = <1>;
			led-sources = <1>;
			ti,led-mode = <0>;
			label = ":kbd_backlight";
		};
	};
};
+10 −0
Original line number Diff line number Diff line
@@ -138,6 +138,16 @@ config LEDS_LM3530
	  controlled manually or using PWM input or using ambient
	  light automatically.

config LEDS_LM3532
	tristate "LCD Backlight driver for LM3532"
	depends on LEDS_CLASS
	depends on I2C
	help
	  This option enables support for the LCD backlight using
	  LM3532 ambient light sensor chip. This ALS chip can be
	  controlled manually or using PWM input or using ambient
	  light automatically.

config LEDS_LM3533
	tristate "LED support for LM3533"
	depends on LEDS_CLASS
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ obj-$(CONFIG_LEDS_BD2802) += leds-bd2802.o
obj-$(CONFIG_LEDS_CPCAP)		+= leds-cpcap.o
obj-$(CONFIG_LEDS_LOCOMO)		+= leds-locomo.o
obj-$(CONFIG_LEDS_LM3530)		+= leds-lm3530.o
obj-$(CONFIG_LEDS_LM3532)		+= leds-lm3532.o
obj-$(CONFIG_LEDS_LM3533)		+= leds-lm3533.o
obj-$(CONFIG_LEDS_LM3642)		+= leds-lm3642.o
obj-$(CONFIG_LEDS_MIKROTIK_RB532)	+= leds-rb532.o
Loading