Re: [PATCH v12 08/16] dt: bindings: lp55xx: Update binding for Multicolor Framework

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dan,

On 10/11/19 3:06 PM, Dan Murphy wrote:
> Update the DT binding to include the properties to use the
> multicolor framework for the devices that use the LP55xx
> framework.
> 
> Signed-off-by: Dan Murphy <dmurphy@xxxxxx>
> CC: Tony Lindgren <tony@xxxxxxxxxxx>
> CC: "Benoît Cousson" <bcousson@xxxxxxxxxxxx>
> CC: Linus Walleij <linus.walleij@xxxxxxxxxx>
> CC: Shawn Guo <shawnguo@xxxxxxxxxx>
> CC: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
> CC: Pengutronix Kernel Team <kernel@xxxxxxxxxxxxxx>
> CC: Fabio Estevam <festevam@xxxxxxxxx>
> CC: NXP Linux Team <linux-imx@xxxxxxx>
> ---
>  .../devicetree/bindings/leds/leds-lp55xx.txt  | 149 +++++++++++++++---
>  1 file changed, 124 insertions(+), 25 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/leds/leds-lp55xx.txt b/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
> index bfe2805c5534..736a2e1538be 100644
> --- a/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
> +++ b/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
> @@ -1,6 +1,8 @@
>  Binding for TI/National Semiconductor LP55xx LED Drivers
>  
>  Required properties:
> +- #address-cells: 1
> +- #size-cells: 0
>  - compatible: one of
>  	national,lp5521
>  	national,lp5523
> @@ -14,6 +16,18 @@ Required properties:
>  Each child has own specific current settings
>  - led-cur: Current setting at each LED channel (mA x10, 0 if LED is not connected)
>  - max-cur: Maximun current at each LED channel.
> +- reg: Output channel for the LED.  This is zero based channel identifier and
> +	the data sheet is a one based channel identifier.
> +	reg value to output to LED output number
> +	D1 = reg value is 0
> +	D2 = reg value is 1
> +	D3 = reg value is 2
> +	D4 = reg value is 3
> +	D5 = reg value is 4
> +	D6 = reg value is 5
> +	D7 = reg value is 6
> +	D8 = reg value is 7
> +	D9 = reg value is 8
>  
>  Optional properties:
>  - enable-gpio: GPIO attached to the chip's enable pin
> @@ -35,23 +49,28 @@ example 1) LP5521
>  on channel 0.
>  
>  lp5521@32 {

While at it let's fix node prefix to led-controller.
It will not break anyone and yet it will adapt the node naming
to what is now recommended.

> +	#address-cells = <1>;
> +	#size-cells = <0>;
>  	compatible = "national,lp5521";
>  	reg = <0x32>;
>  	label = "lp5521_pri";
>  	clock-mode = /bits/ 8 <2>;
>  
> -	chan0 {
> +	chan@0 {

Similarly in case of every child node:

s/chan/led/

> +		reg = <0>;
>  		led-cur = /bits/ 8 <0x2f>;
>  		max-cur = /bits/ 8 <0x5f>;
>  		linux,default-trigger = "heartbeat";
>  	};
>  
> -	chan1 {
> +	chan@1 {
> +		reg = <1>;
>  		led-cur = /bits/ 8 <0x2f>;
>  		max-cur = /bits/ 8 <0x5f>;
>  	};
>  
> -	chan2 {
> +	chan@2 {
> +		reg = <2>;
>  		led-cur = /bits/ 8 <0x2f>;
>  		max-cur = /bits/ 8 <0x5f>;
>  	};
> @@ -70,59 +89,70 @@ ASEL1    ASEL0    Address
>   VEN      VEN       35h
>  
>  lp5523@32 {

s/lp5523/led-controller/

> +	#address-cells = <1>;
> +	#size-cells = <0>;
>  	compatible = "national,lp5523";
>  	reg = <0x32>;
>  	clock-mode = /bits/ 8 <1>;
>  
> -	chan0 {
> +	chan@0 {
> +		reg = <0>;
>  		chan-name = "d1";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan1 {
> +	chan@1 {
> +		reg = <1>;
>  		chan-name = "d2";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan2 {
> +	chan@2 {
> +		reg = <2>;
>  		chan-name = "d3";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan3 {
> +	chan@3 {
> +		reg = <3>;
>  		chan-name = "d4";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan4 {
> +	chan@4 {
> +		reg = <4>;
>  		chan-name = "d5";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan5 {
> +	chan@5 {
> +		reg = <5>;
>  		chan-name = "d6";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan6 {
> +	chan@6 {
> +		reg = <6>;
>  		chan-name = "d7";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan7 {
> +	chan@7 {
> +		reg = <7>;
>  		chan-name = "d8";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan8 {
> +	chan@8 {
> +		reg = <8>;
>  		chan-name = "d9";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
> @@ -133,29 +163,35 @@ example 3) LP5562
>  4 channels are defined.
>  
>  lp5562@30 {

s/lp5562/led-controller/

> +	#address-cells = <1>;
> +	#size-cells = <0>;
>  	compatible = "ti,lp5562";
>  	reg = <0x30>;
>  	clock-mode = /bits/8 <2>;
>  
> -	chan0 {
> +	chan@0 {
> +		reg = <0>;
>  		chan-name = "R";
>  		led-cur = /bits/ 8 <0x20>;
>  		max-cur = /bits/ 8 <0x60>;
>  	};
>  
> -	chan1 {
> +	chan@1 {
> +		reg = <1>;
>  		chan-name = "G";
>  		led-cur = /bits/ 8 <0x20>;
>  		max-cur = /bits/ 8 <0x60>;
>  	};
>  
> -	chan2 {
> +	chan@2 {
> +		reg = <2>;
>  		chan-name = "B";
>  		led-cur = /bits/ 8 <0x20>;
>  		max-cur = /bits/ 8 <0x60>;
>  	};
>  
> -	chan3 {
> +	chan@3 {
> +		reg = <3>;
>  		chan-name = "W";
>  		led-cur = /bits/ 8 <0x20>;
>  		max-cur = /bits/ 8 <0x60>;
> @@ -167,62 +203,125 @@ example 4) LP8501
>  Others are same as LP5523.
>  
>  lp8501@32 {

s/lp8501/led-controller/

> +	#address-cells = <1>;
> +	#size-cells = <0>;
>  	compatible = "ti,lp8501";
>  	reg = <0x32>;
>  	clock-mode = /bits/ 8 <2>;
>  	pwr-sel = /bits/ 8 <3>;	/* D1~9 connected to VOUT */
>  
> -	chan0 {
> +	chan@0 {
> +		reg = <0>;
>  		chan-name = "d1";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan1 {
> +	chan@1 {
> +		reg = <1>;
>  		chan-name = "d2";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan2 {
> +	chan@2 {
> +		reg = <2>;
>  		chan-name = "d3";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan3 {
> +	chan@3 {
> +		reg = <3>;
>  		chan-name = "d4";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan4 {
> +	chan@4 {
> +		reg = <4>;
>  		chan-name = "d5";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan5 {
> +	chan@5 {
> +		reg = <5>;
>  		chan-name = "d6";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan6 {
> +	chan@6 {
> +		reg = <6>;
>  		chan-name = "d7";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan7 {
> +	chan@7 {
> +		reg = <7>;
>  		chan-name = "d8";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  
> -	chan8 {
> +	chan@8 {
> +		reg = <8>;
>  		chan-name = "d9";
>  		led-cur = /bits/ 8 <0x14>;
>  		max-cur = /bits/ 8 <0x20>;
>  	};
>  };
> +
> +Multicolor Framework Support
> +In addition to the nodes and properties defined above for device support the
> +properties below are needed for multicolor framework support as defined in
> +Documentation/devicetree/bindings/leds/leds-class-multicolor.txt
> +
> +Required child properties for multicolor framework
> +	- color : Must be LED_COLOR_ID_MULTI
> +	- function : see Documentation/devicetree/bindings/leds/common.txt
> +
> +Required grandchildren properties
> +	- reg : This is the LED output of the device
> +	- color : see Documentation/devicetree/bindings/leds/common.txt
> +
> +Multicolor LED example:
> +lp5523: lp5523@32 {

Do you really need "lp5523:" node label ?

Besides:

s/lp5523@32/led-controller@32/

> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	compatible = "national,lp5523";
> +	reg = <0x32>;
> +	clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
> +
> +	multi-led@2 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		reg = <2>;
> +		color = <LED_COLOR_ID_MULTI>;
> +		function = LED_FUNCTION_STANDBY;
> +		linux,default-trigger = "heartbeat";
> +
> +		led@0 {
> +			led-cur = /bits/ 8 <50>;
> +			max-cur = /bits/ 8 <100>;
> +			reg = <0x0>;
> +			color = <LED_COLOR_ID_GREEN>;
> +		};
> +
> +		led@1 {
> +			led-cur = /bits/ 8 <50>;
> +			max-cur = /bits/ 8 <100>;
> +			reg = <0x1>;
> +			color = <LED_COLOR_ID_BLUE>;
> +		};
> +
> +		led@6 {
> +			led-cur = /bits/ 8 <50>;
> +			max-cur = /bits/ 8 <100>;
> +			reg = <0x6>;
> +			color = <LED_COLOR_ID_RED>;
> +		};
> +	};
> +};
> 

-- 
Best regards,
Jacek Anaszewski



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux