[v11,01/16] dt: bindings: Add multicolor class dt bindings documention

Message ID 20191008204800.19870-2-dmurphy@ti.com
State Superseded
Headers show
Series
  • [v11,01/16] dt: bindings: Add multicolor class dt bindings documention
Related show

Commit Message

Dan Murphy Oct. 8, 2019, 8:47 p.m.
Add DT bindings for the LEDs multicolor class framework.

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

---
 .../bindings/leds/leds-class-multicolor.txt   | 98 +++++++++++++++++++
 1 file changed, 98 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/leds/leds-class-multicolor.txt

-- 
2.22.0.214.g8dca754b1e

Comments

Jacek Anaszewski Oct. 9, 2019, 10:07 p.m. | #1
Dan,

On 10/8/19 10:47 PM, Dan Murphy wrote:
> Add DT bindings for the LEDs multicolor class framework.

> 

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

> ---

>  .../bindings/leds/leds-class-multicolor.txt   | 98 +++++++++++++++++++

>  1 file changed, 98 insertions(+)

>  create mode 100644 Documentation/devicetree/bindings/leds/leds-class-multicolor.txt

> 

> diff --git a/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt b/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt

> new file mode 100644

> index 000000000000..8619c9bf1811

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt

> @@ -0,0 +1,98 @@

> +* Multicolor LED properties

> +

> +Bindings for multi color LEDs show how to describe current outputs of

> +either integrated multi-color LED elements (like RGB, RGBW, RGBWA-UV

> +etc.) or standalone LEDs, to achieve logically grouped multi-color LED

> +modules. This is achieved by adding multi-led nodes layer to the

> +monochrome LED bindings.

> +

> +The nodes and properties defined in this document are unique to the multicolor

> +LED class.  Common LED nodes and properties are inherited from the common.txt

> +within this documentation directory.

> +

> +Required LED Child properties:


s/Child/child/

> +	- color : For multicolor LED support this property should be defined as

> +		  LED_COLOR_ID_MULTI and further definition can be found in

> +		  include/linux/leds/common.h.

> +

> +led-controller@30 {

> +	#address-cells = <1>;

> +	#size-cells = <0>;

> +	compatible = "ti,lp5024";

> +	reg = <0x29>;

> +

> +	multi-led@1 {

> +		#address-cells = <1>;

> +		#size-cells = <0>;

> +		reg = <1>;

> +		color = <LED_COLOR_ID_MULTI>;

> +		function = LED_FUNCTION_STATUS;


Status is not too fancy function for multi color LED ;-)
I'd skip it entirely for this example if we don't have
anything suitable at the moment for our disposal.

> +

> +		led@3 {

> +			reg = <3>;

> +			color = <LED_COLOR_ID_RED>;

> +		};

> +

> +		led@4 {

> +			reg = <4>;

> +			color = <LED_COLOR_ID_GREEN>;

> +		};

> +

> +		led@5 {

> +			reg = <5>;

> +			color = <LED_COLOR_ID_BLUE>;

> +		};

> +	};

> +

> +	multi-led@2 {

> +		#address-cells = <1>;

> +		#size-cells = <0>;

> +		color = <LED_COLOR_ID_MULTI>;

> +		function = LED_FUNCTION_ACTIVITY;

> +		reg = <2>;

> +		ti,led-bank = <2 3 5>;

> +

> +		led@6 {

> +			reg = <0x6>;

> +			color = <LED_COLOR_ID_RED>;

> +			led-sources = <6 9 15>;

> +		};

> +

> +		led@7 {

> +			reg = <0x7>;

> +			color = <LED_COLOR_ID_GREEN>;

> +			led-sources = <7 10 16>;

> +		};

> +

> +		led@8 {

> +			reg = <0x8>;

> +			color = <LED_COLOR_ID_BLUE>;

> +			led-sources = <8 11 17>;

> +		};

> +	};

> +

> +	multi-led@4 {

> +		#address-cells = <1>;

> +		#size-cells = <0>;

> +		reg = <4>;

> +		color = <LED_COLOR_ID_MULTI>;

> +		function = LED_FUNCTION_ACTIVITY;

> +

> +		led@12 {

> +			reg = <12>;

> +			color = <LED_COLOR_ID_RED>;

> +		};

> +

> +		led@13 {

> +			reg = <13>;

> +			color = <LED_COLOR_ID_GREEN>;

> +		};

> +

> +		led@14 {

> +			reg = <14>;

> +			color = <LED_COLOR_ID_BLUE>;

> +		};

> +	};

> +

> +};

> 


-- 
Best regards,
Jacek Anaszewski
Dan Murphy Oct. 10, 2019, 12:49 a.m. | #2
Jacek

On 10/9/19 5:07 PM, Jacek Anaszewski wrote:
> Dan,

>

> On 10/8/19 10:47 PM, Dan Murphy wrote:

>> Add DT bindings for the LEDs multicolor class framework.

>>

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

>> ---

>>   .../bindings/leds/leds-class-multicolor.txt   | 98 +++++++++++++++++++

>>   1 file changed, 98 insertions(+)

>>   create mode 100644 Documentation/devicetree/bindings/leds/leds-class-multicolor.txt

>>

>> diff --git a/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt b/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt

>> new file mode 100644

>> index 000000000000..8619c9bf1811

>> --- /dev/null

>> +++ b/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt

>> @@ -0,0 +1,98 @@

>> +* Multicolor LED properties

>> +

>> +Bindings for multi color LEDs show how to describe current outputs of

>> +either integrated multi-color LED elements (like RGB, RGBW, RGBWA-UV

>> +etc.) or standalone LEDs, to achieve logically grouped multi-color LED

>> +modules. This is achieved by adding multi-led nodes layer to the

>> +monochrome LED bindings.

>> +

>> +The nodes and properties defined in this document are unique to the multicolor

>> +LED class.  Common LED nodes and properties are inherited from the common.txt

>> +within this documentation directory.

>> +

>> +Required LED Child properties:

> s/Child/child/


Ack


>

>> +	- color : For multicolor LED support this property should be defined as

>> +		  LED_COLOR_ID_MULTI and further definition can be found in

>> +		  include/linux/leds/common.h.

>> +

>> +led-controller@30 {

>> +	#address-cells = <1>;

>> +	#size-cells = <0>;

>> +	compatible = "ti,lp5024";

>> +	reg = <0x29>;

>> +

>> +	multi-led@1 {

>> +		#address-cells = <1>;

>> +		#size-cells = <0>;

>> +		reg = <1>;

>> +		color = <LED_COLOR_ID_MULTI>;

>> +		function = LED_FUNCTION_STATUS;

> Status is not too fancy function for multi color LED ;-)

> I'd skip it entirely for this example if we don't have

> anything suitable at the moment for our disposal.


Not sure I understand.  Status is a good example as a RGB module can be 
used to present charging status

Unless I misinterpreted your comment.

Dan
Jacek Anaszewski Oct. 10, 2019, 6:42 p.m. | #3
Dan,

On 10/10/19 2:49 AM, Dan Murphy wrote:
> Jacek

> 

> On 10/9/19 5:07 PM, Jacek Anaszewski wrote:

>> Dan,

>>

>> On 10/8/19 10:47 PM, Dan Murphy wrote:

>>> Add DT bindings for the LEDs multicolor class framework.

>>>

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

>>> ---

>>>   .../bindings/leds/leds-class-multicolor.txt   | 98 +++++++++++++++++++

>>>   1 file changed, 98 insertions(+)

>>>   create mode 100644

>>> Documentation/devicetree/bindings/leds/leds-class-multicolor.txt

>>>

>>> diff --git

>>> a/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt

>>> b/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt

>>> new file mode 100644

>>> index 000000000000..8619c9bf1811

>>> --- /dev/null

>>> +++ b/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt

>>> @@ -0,0 +1,98 @@

>>> +* Multicolor LED properties

>>> +

>>> +Bindings for multi color LEDs show how to describe current outputs of

>>> +either integrated multi-color LED elements (like RGB, RGBW, RGBWA-UV

>>> +etc.) or standalone LEDs, to achieve logically grouped multi-color LED

>>> +modules. This is achieved by adding multi-led nodes layer to the

>>> +monochrome LED bindings.

>>> +

>>> +The nodes and properties defined in this document are unique to the

>>> multicolor

>>> +LED class.  Common LED nodes and properties are inherited from the

>>> common.txt

>>> +within this documentation directory.

>>> +

>>> +Required LED Child properties:

>> s/Child/child/

> 

> Ack

> 

> 

>>

>>> +    - color : For multicolor LED support this property should be

>>> defined as

>>> +          LED_COLOR_ID_MULTI and further definition can be found in

>>> +          include/linux/leds/common.h.

>>> +

>>> +led-controller@30 {

>>> +    #address-cells = <1>;

>>> +    #size-cells = <0>;

>>> +    compatible = "ti,lp5024";

>>> +    reg = <0x29>;

>>> +

>>> +    multi-led@1 {

>>> +        #address-cells = <1>;

>>> +        #size-cells = <0>;

>>> +        reg = <1>;

>>> +        color = <LED_COLOR_ID_MULTI>;

>>> +        function = LED_FUNCTION_STATUS;

>> Status is not too fancy function for multi color LED ;-)

>> I'd skip it entirely for this example if we don't have

>> anything suitable at the moment for our disposal.

> 

> Not sure I understand.  Status is a good example as a RGB module can be

> used to present charging status


So, maybe LED_FUNCTION_CHARGING ? This implies that color can change
gradually during charging. However me might think of adding
LED_FUNCTION_VBAT or so.

-- 
Best regards,
Jacek Anaszewski

Patch

diff --git a/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt b/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt
new file mode 100644
index 000000000000..8619c9bf1811
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/leds-class-multicolor.txt
@@ -0,0 +1,98 @@ 
+* Multicolor LED properties
+
+Bindings for multi color LEDs show how to describe current outputs of
+either integrated multi-color LED elements (like RGB, RGBW, RGBWA-UV
+etc.) or standalone LEDs, to achieve logically grouped multi-color LED
+modules. This is achieved by adding multi-led nodes layer to the
+monochrome LED bindings.
+
+The nodes and properties defined in this document are unique to the multicolor
+LED class.  Common LED nodes and properties are inherited from the common.txt
+within this documentation directory.
+
+Required LED Child properties:
+	- color : For multicolor LED support this property should be defined as
+		  LED_COLOR_ID_MULTI and further definition can be found in
+		  include/linux/leds/common.h.
+
+led-controller@30 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	compatible = "ti,lp5024";
+	reg = <0x29>;
+
+	multi-led@1 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <1>;
+		color = <LED_COLOR_ID_MULTI>;
+		function = LED_FUNCTION_STATUS;
+
+
+		led@3 {
+			reg = <3>;
+			color = <LED_COLOR_ID_RED>;
+		};
+
+		led@4 {
+			reg = <4>;
+			color = <LED_COLOR_ID_GREEN>;
+		};
+
+		led@5 {
+			reg = <5>;
+			color = <LED_COLOR_ID_BLUE>;
+		};
+	};
+
+	multi-led@2 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		color = <LED_COLOR_ID_MULTI>;
+		function = LED_FUNCTION_ACTIVITY;
+		reg = <2>;
+		ti,led-bank = <2 3 5>;
+
+		led@6 {
+			reg = <0x6>;
+			color = <LED_COLOR_ID_RED>;
+			led-sources = <6 9 15>;
+		};
+
+		led@7 {
+			reg = <0x7>;
+			color = <LED_COLOR_ID_GREEN>;
+			led-sources = <7 10 16>;
+		};
+
+		led@8 {
+			reg = <0x8>;
+			color = <LED_COLOR_ID_BLUE>;
+			led-sources = <8 11 17>;
+		};
+	};
+
+	multi-led@4 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <4>;
+		color = <LED_COLOR_ID_MULTI>;
+		function = LED_FUNCTION_ACTIVITY;
+
+		led@12 {
+			reg = <12>;
+			color = <LED_COLOR_ID_RED>;
+		};
+
+		led@13 {
+			reg = <13>;
+			color = <LED_COLOR_ID_GREEN>;
+		};
+
+		led@14 {
+			reg = <14>;
+			color = <LED_COLOR_ID_BLUE>;
+		};
+	};
+
+};