Message ID | 20190307220947.20057-1-dmurphy@ti.com |
---|---|
State | Superseded, archived |
Headers | show |
Series | [1/4] dt: lm3532: Add lm3532 dt doc and update ti_lmu doc | expand |
Context | Check | Description |
---|---|---|
robh/checkpatch | warning | "total: 0 errors, 1 warnings, 157 lines checked" |
Hi! > Update the properties for the lm3532 device node for droid4. > With this change the backlight LED string and the keypad > LED strings will be controlled separately. > > Signed-off-by: Dan Murphy <dmurphy@ti.com> > --- > arch/arm/boot/dts/omap4-droid4-xt894.dts | 27 +++++++++++++++++------- > 1 file changed, 19 insertions(+), 8 deletions(-) > > diff --git a/arch/arm/boot/dts/omap4-droid4-xt894.dts b/arch/arm/boot/dts/omap4-droid4-xt894.dts > index e21ec929f096..94e3d53dbcf3 100644 > --- a/arch/arm/boot/dts/omap4-droid4-xt894.dts > +++ b/arch/arm/boot/dts/omap4-droid4-xt894.dts > @@ -6,6 +6,7 @@ > /dts-v1/; > > #include <dt-bindings/input/input.h> > +#include <dt-bindings/leds/leds-lm3532.h> > #include "omap443x.dtsi" > #include "motorola-cpcap-mapphone.dtsi" > > @@ -383,20 +384,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-ms = <LM3532_RAMP_1024us>; > + ramp-down-ms = <LM3532_RAMP_65536us>; I guess dt people will have some comments here. I'd expect ramp-up-us = <1024> would be more natural. > + lcd_backlight: led@0 { > + reg = <0>; > + led-sources = <2>; > + ti,led-mode = <LM3532_BL_MODE_MANUAL>; > + label = "backlight"; Ok, so we'll have lm3532::backlight. That is not too useful, as it does not tell userland what kaclight it is. main_display::backlight ? OTOH this one is not too important as backlight subsystem should handle this. > + led@1 { > + reg = <1>; > + led-sources = <1>; > + ti,led-mode = <LM3532_BL_MODE_MANUAL>; > + label = "keypad"; I guess best variant would be inputX::backlight here, but that might be tricky to implement. Pavel
Pavel Thanks for the review. On 3/8/19 9:14 AM, Pavel Machek wrote: > Hi! > >> Update the properties for the lm3532 device node for droid4. >> With this change the backlight LED string and the keypad >> LED strings will be controlled separately. >> >> Signed-off-by: Dan Murphy <dmurphy@ti.com> >> --- >> arch/arm/boot/dts/omap4-droid4-xt894.dts | 27 +++++++++++++++++------- >> 1 file changed, 19 insertions(+), 8 deletions(-) >> >> diff --git a/arch/arm/boot/dts/omap4-droid4-xt894.dts b/arch/arm/boot/dts/omap4-droid4-xt894.dts >> index e21ec929f096..94e3d53dbcf3 100644 >> --- a/arch/arm/boot/dts/omap4-droid4-xt894.dts >> +++ b/arch/arm/boot/dts/omap4-droid4-xt894.dts >> @@ -6,6 +6,7 @@ >> /dts-v1/; >> >> #include <dt-bindings/input/input.h> >> +#include <dt-bindings/leds/leds-lm3532.h> >> #include "omap443x.dtsi" >> #include "motorola-cpcap-mapphone.dtsi" >> >> @@ -383,20 +384,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-ms = <LM3532_RAMP_1024us>; >> + ramp-down-ms = <LM3532_RAMP_65536us>; > > I guess dt people will have some comments here. I'd expect > > ramp-up-us = <1024> would be more natural. > Actually ramp-up-us/ramp-down-us is more correct this is an error in this dt definition and will be fixed in v2 >> + lcd_backlight: led@0 { >> + reg = <0>; >> + led-sources = <2>; >> + ti,led-mode = <LM3532_BL_MODE_MANUAL>; >> + label = "backlight"; > > Ok, so we'll have lm3532::backlight. That is not too useful, as it > does not tell userland what kaclight it is. > > main_display::backlight ? > > OTOH this one is not too important as backlight subsystem should > handle this. > For Droid4 I am not particular to any specific label. And if the series in https://lkml.org/lkml/2018/11/7/144 is ever implemented then the label may change as well. The driver forces the lm3532 string to be part of the label. This was a discussion a while back with Jacek when I submitted other drivers. >> + led@1 { >> + reg = <1>; >> + led-sources = <1>; >> + ti,led-mode = <LM3532_BL_MODE_MANUAL>; >> + label = "keypad"; > > I guess best variant would be inputX::backlight here, but that might > be tricky to implement. > Yeah because we don't know what input the keyboard would be on. Unless there are APIs to retrieve that info. I have not looked at the input framework in a while. Dan > Pavel >
> >> + led@1 { > >> + reg = <1>; > >> + led-sources = <1>; > >> + ti,led-mode = <LM3532_BL_MODE_MANUAL>; > >> + label = "keypad"; > > > > I guess best variant would be inputX::backlight here, but that might > > be tricky to implement. > > > > Yeah because we don't know what input the keyboard would be on. > Unless there are APIs to retrieve that info. I have not looked at the input > framework in a while. Lets just make it "platform::kbd_backlight". *:kbd_backlight is already used by quite a few drivers. Pavel
Pavel On 3/8/19 3:06 PM, Pavel Machek wrote: > >>>> + led@1 { >>>> + reg = <1>; >>>> + led-sources = <1>; >>>> + ti,led-mode = <LM3532_BL_MODE_MANUAL>; >>>> + label = "keypad"; >>> >>> I guess best variant would be inputX::backlight here, but that might >>> be tricky to implement. >>> >> >> Yeah because we don't know what input the keyboard would be on. >> Unless there are APIs to retrieve that info. I have not looked at the input >> framework in a while. > > Lets just make it "platform::kbd_backlight". *:kbd_backlight is > already used by quite a few drivers. > Sounds fine to me. I will update in v3 as I posted v2 with a lot of deltas Dan > Pavel >
diff --git a/Documentation/devicetree/bindings/leds/leds-lm3532.txt b/Documentation/devicetree/bindings/leds/leds-lm3532.txt new file mode 100644 index 000000000000..7cf6739eafe0 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/leds-lm3532.txt @@ -0,0 +1,113 @@ +* 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 + +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 + +Optional child properties if ALS mode is used: + - als-vmin - Minimum ALS voltage defined in Volts + - als-vmax - Maximum ALS voltage defined in Volts + +The values for each of the following can be found in the +include/dt-bindings/leds/leds-lm3532.h + + - als1-imp-sel - ALS1 impedance resistor selection + - als2-imp-sel - ALS2 impedance resistor selection + - als-avrg-time - 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. + - als-input-mode - Determines how the device uses the attached ALS + devices. + +Optional LED child properties: + - label : see Documentation/devicetree/bindings/leds/common.txt + - linux,default-trigger : + see Documentation/devicetree/bindings/leds/common.txt + +Example: +#include <dt-bindings/leds/leds-lm3532.h> + +led-controller@38 { + compatible = "ti,lm3532"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x38>; + + enable-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; + ramp-up-ms = <LM3532_RAMP_1024us>; + ramp-down-ms = <LM3532_RAMP_65536us>; + + lcd_backlight: led@0 { + reg = <0>; + led-sources = <2>; + ti,led-mode = <LM3532_BL_MODE_MANUAL>; + label = "backlight"; + linux,default-trigger = "backlight"; + }; + + led@1 { + reg = <1>; + led-sources = <1>; + ti,led-mode = <LM3532_BL_MODE_MANUAL>; + label = "keypad"; + }; +}; + +Example with ALS +#include <dt-bindings/leds/leds-lm3532.h> + +led-controller@38 { + compatible = "ti,lm3532"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x38>; + + enable-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; + ramp-up-ms = <LM3532_RAMP_1024us>; + ramp-down-ms = <LM3532_RAMP_65536us>; + + als-vmin = <0>; + als-vmax = <2000>; + als1-imp-sel = <LM3532_IMP_4_11K>; + als2-imp-sel = <LM3532_IMP_2_18K>; + als-avrg-time = <LM3532_ALS_AVRG_TIME_17_92ms>; + als-input-mode = <LM3532_ALS_INPUT_AVRG>; + + lcd_backlight: led@0 { + reg = <0>; + led-sources = <2>; + ti,led-mode = <LM3532_BL_MODE_ALS>; + label = "backlight"; + linux,default-trigger = "backlight"; + }; + + led@1 { + reg = <1>; + led-sources = <1>; + ti,led-mode = <LM3532_BL_MODE_MANUAL>; + label = "keypad"; + }; +}; + +For more product information please see the links below: +http://www.ti.com/product/LM3532 diff --git a/Documentation/devicetree/bindings/mfd/ti-lmu.txt b/Documentation/devicetree/bindings/mfd/ti-lmu.txt index c885cf89b8ce..980394d701a7 100644 --- a/Documentation/devicetree/bindings/mfd/ti-lmu.txt +++ b/Documentation/devicetree/bindings/mfd/ti-lmu.txt @@ -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>;
Add the lm3532 device tree documentation. Remove lm3532 device tree reference from the ti_lmu devicetree documentation. With the addition of the dedicated lm3532 documentation the device can be removed from the ti_lmu.txt. The reason for this is that the lm3532 dt documentation now defines the ability to control LED output strings against different control banks or groups multiple strings to be controlled by a single control bank. Another addition was for ALS lighting control and configuration. The LM3532 has a feature that can take in the ALS reading from 2 separate ALS devices and adjust the brightness on the strings that are configured to support this feature. Finally the device specific properties were moved to the parent node as these properties are not control bank configurable. These include the runtime ramp and the ALS configuration. Signed-off-by: Dan Murphy <dmurphy@ti.com> --- .../devicetree/bindings/leds/leds-lm3532.txt | 113 ++++++++++++++++++ .../devicetree/bindings/mfd/ti-lmu.txt | 20 ---- 2 files changed, 113 insertions(+), 20 deletions(-) create mode 100644 Documentation/devicetree/bindings/leds/leds-lm3532.txt