diff mbox series

[v26,06/15] dt-bindings: leds: Convert leds-lp55xx to yaml

Message ID 20200604120504.32425-7-dmurphy@ti.com
State Changes Requested, archived
Headers show
Series Multicolor Framework v26 | expand

Checks

Context Check Description
robh/checkpatch warning total: 0 errors, 2 warnings, 220 lines checked
robh/dt-meta-schema success

Commit Message

Dan Murphy June 4, 2020, 12:04 p.m. UTC
Convert the leds-lp55xx.txt to yaml binding.

Signed-off-by: Dan Murphy <dmurphy@ti.com>
---
 .../devicetree/bindings/leds/leds-lp55xx.txt  | 228 ------------------
 .../devicetree/bindings/leds/leds-lp55xx.yaml | 220 +++++++++++++++++
 2 files changed, 220 insertions(+), 228 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/leds/leds-lp55xx.txt
 create mode 100644 Documentation/devicetree/bindings/leds/leds-lp55xx.yaml

Comments

Rob Herring (Arm) June 4, 2020, 11:04 p.m. UTC | #1
On Thu, Jun 04, 2020 at 07:04:55AM -0500, Dan Murphy wrote:
> Convert the leds-lp55xx.txt to yaml binding.
> 
> Signed-off-by: Dan Murphy <dmurphy@ti.com>
> ---
>  .../devicetree/bindings/leds/leds-lp55xx.txt  | 228 ------------------
>  .../devicetree/bindings/leds/leds-lp55xx.yaml | 220 +++++++++++++++++
>  2 files changed, 220 insertions(+), 228 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/leds/leds-lp55xx.txt
>  create mode 100644 Documentation/devicetree/bindings/leds/leds-lp55xx.yaml
> 
> diff --git a/Documentation/devicetree/bindings/leds/leds-lp55xx.txt b/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
> deleted file mode 100644
> index 1b66a413fb9d..000000000000
> --- a/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
> +++ /dev/null
> @@ -1,228 +0,0 @@
> -Binding for TI/National Semiconductor LP55xx Led Drivers
> -
> -Required properties:
> -- compatible: one of
> -	national,lp5521
> -	national,lp5523
> -	ti,lp55231
> -	ti,lp5562
> -	ti,lp8501
> -
> -- reg: I2C slave address
> -- clock-mode: Input clock mode, (0: automode, 1: internal, 2: external)
> -
> -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.
> -
> -Optional properties:
> -- enable-gpio: GPIO attached to the chip's enable pin
> -- label: Used for naming LEDs
> -- pwr-sel: LP8501 specific property. Power selection for output channels.
> -         0: D1~9 are connected to VDD
> -         1: D1~6 with VDD, D7~9 with VOUT
> -         2: D1~6 with VOUT, D7~9 with VDD
> -         3: D1~9 are connected to VOUT
> -
> -Alternatively, each child can have a specific channel name and trigger:
> -- chan-name (optional): name of channel
> -- linux,default-trigger (optional): see
> -  Documentation/devicetree/bindings/leds/common.txt
> -
> -example 1) LP5521
> -3 LED channels, external clock used. Channel names are 'lp5521_pri:channel0',
> -'lp5521_pri:channel1' and 'lp5521_pri:channel2', with a heartbeat trigger
> -on channel 0.
> -
> -lp5521@32 {
> -	compatible = "national,lp5521";
> -	reg = <0x32>;
> -	label = "lp5521_pri";
> -	clock-mode = /bits/ 8 <2>;
> -
> -	chan0 {
> -		led-cur = /bits/ 8 <0x2f>;
> -		max-cur = /bits/ 8 <0x5f>;
> -		linux,default-trigger = "heartbeat";
> -	};
> -
> -	chan1 {
> -		led-cur = /bits/ 8 <0x2f>;
> -		max-cur = /bits/ 8 <0x5f>;
> -	};
> -
> -	chan2 {
> -		led-cur = /bits/ 8 <0x2f>;
> -		max-cur = /bits/ 8 <0x5f>;
> -	};
> -};
> -
> -example 2) LP5523
> -9 LED channels with specific name. Internal clock used.
> -The I2C slave address is configurable with ASEL1 and ASEL0 pins.
> -Available addresses are 32/33/34/35h.
> -
> -ASEL1    ASEL0    Address
> --------------------------
> - GND      GND       32h
> - GND      VEN       33h
> - VEN      GND       34h
> - VEN      VEN       35h
> -
> -lp5523@32 {
> -	compatible = "national,lp5523";
> -	reg = <0x32>;
> -	clock-mode = /bits/ 8 <1>;
> -
> -	chan0 {
> -		chan-name = "d1";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan1 {
> -		chan-name = "d2";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan2 {
> -		chan-name = "d3";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan3 {
> -		chan-name = "d4";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan4 {
> -		chan-name = "d5";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan5 {
> -		chan-name = "d6";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan6 {
> -		chan-name = "d7";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan7 {
> -		chan-name = "d8";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan8 {
> -		chan-name = "d9";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -};
> -
> -example 3) LP5562
> -4 channels are defined.
> -
> -lp5562@30 {
> -	compatible = "ti,lp5562";
> -	reg = <0x30>;
> -	clock-mode = /bits/8 <2>;
> -
> -	chan0 {
> -		chan-name = "R";
> -		led-cur = /bits/ 8 <0x20>;
> -		max-cur = /bits/ 8 <0x60>;
> -	};
> -
> -	chan1 {
> -		chan-name = "G";
> -		led-cur = /bits/ 8 <0x20>;
> -		max-cur = /bits/ 8 <0x60>;
> -	};
> -
> -	chan2 {
> -		chan-name = "B";
> -		led-cur = /bits/ 8 <0x20>;
> -		max-cur = /bits/ 8 <0x60>;
> -	};
> -
> -	chan3 {
> -		chan-name = "W";
> -		led-cur = /bits/ 8 <0x20>;
> -		max-cur = /bits/ 8 <0x60>;
> -	};
> -};
> -
> -example 4) LP8501
> -9 channels are defined. The 'pwr-sel' is LP8501 specific property.
> -Others are same as LP5523.
> -
> -lp8501@32 {
> -	compatible = "ti,lp8501";
> -	reg = <0x32>;
> -	clock-mode = /bits/ 8 <2>;
> -	pwr-sel = /bits/ 8 <3>;	/* D1~9 connected to VOUT */
> -
> -	chan0 {
> -		chan-name = "d1";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan1 {
> -		chan-name = "d2";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan2 {
> -		chan-name = "d3";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan3 {
> -		chan-name = "d4";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan4 {
> -		chan-name = "d5";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan5 {
> -		chan-name = "d6";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan6 {
> -		chan-name = "d7";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan7 {
> -		chan-name = "d8";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -
> -	chan8 {
> -		chan-name = "d9";
> -		led-cur = /bits/ 8 <0x14>;
> -		max-cur = /bits/ 8 <0x20>;
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/leds/leds-lp55xx.yaml b/Documentation/devicetree/bindings/leds/leds-lp55xx.yaml
> new file mode 100644
> index 000000000000..9d6ded5fbc14
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/leds-lp55xx.yaml
> @@ -0,0 +1,220 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/leds/leds-lp55xx.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: TI/National Semiconductor LP55xx and LP8501 LED Drivers
> +
> +maintainers:
> +  - Jacek Anaszewski <jacek.anaszewski@gmail.com>
> +  - Pavel Machek <pavel@ucw.cz>
> +
> +description: |
> +  Bindings for the TI/National Semiconductor LP55xx and LP8501 multi channel
> +  LED Drivers.
> +
> +  For more product information please see the link below:
> +    https://www.ti.com/lit/gpn/lp5521
> +    https://www.ti.com/lit/gpn/lp5523
> +    https://www.ti.com/lit/gpn/lp55231
> +    https://www.ti.com/lit/gpn/lp5562
> +    https://www.ti.com/lit/gpn/lp8501
> +
> +properties:
> +  #allOf:
> +    #- $ref: "common.yaml#"
> +    #- $ref: "leds-class-multicolor.yaml#"
> +
> +  compatible:
> +    enum:
> +      - national,lp5521
> +      - national,lp5523
> +      - ti,lp55231
> +      - ti,lp5562
> +      - ti,lp8501
> +
> +  reg:
> +    maxItems: 1
> +    description: I2C slave address
> +
> +  clock-mode:
> +    $ref: /schemas/types.yaml#definitions/uint8
> +    maxItems: 1

'maxItems' is for an array. This is a scalar, so drop.

> +    description: |
> +      Input clock mode
> +      0 - automode
> +      1 - internal
> +      2 - external

enum: 
  - 0  # automode
  - 1
  - 2


> +
> +  enable-gpio:
> +    maxItems: 1
> +    description: |
> +      GPIO attached to the chip's enable pin
> +
> +  pwr-sel:
> +    $ref: /schemas/types.yaml#definitions/uint8
> +    maxItems: 1
> +    description: |
> +      LP8501 specific property. Power selection for output channels.
> +         0 - D1~9 are connected to VDD
> +         1 - D1~6 with VDD, D7~9 with VOUT
> +         2 - D1~6 with VOUT, D7~9 with VDD
> +         3 - D1~9 are connected to VOUT

Similarly here, make this a schema.

> +
> +  child-node:

This needs to be a pattern matching the child nodes' names.

> +    type: object
> +    properties:
> +      led-cur:
> +        $ref: /schemas/types.yaml#definitions/uint8
> +        maxItems: 1

Not an array.

> +        description: |
> +          Current setting at each LED channel (mA x10, 0 if LED is not connected)

0-255 are valid values?

> +
> +      max-cur:
> +        $ref: /schemas/types.yaml#definitions/uint8
> +        maxItems: 1
> +        description: Maximun current at each LED channel.
> +
> +      reg:
> +        maxItems: 1
> +        description: |
> +          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
> +
> +      chan-name:
> +        $ref: /schemas/types.yaml#definitions/string
> +        description: name of channel
> +
> +required:
> +  - compatible
> +  - reg
> +
> +examples:
> +  - |
> +   #include <dt-bindings/leds/common.h>
> +
> +   i2c {
> +       #address-cells = <1>;
> +       #size-cells = <0>;
> +
> +       led-controller@32 {
> +           #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 */
> +
> +           led@0 {
> +               reg = <0>;
> +               chan-name = "d1";
> +               led-cur = /bits/ 8 <0x14>;
> +               max-cur = /bits/ 8 <0x20>;
> +           };
> +
> +           led@1 {
> +               reg = <1>;
> +               chan-name = "d2";
> +               led-cur = /bits/ 8 <0x14>;
> +               max-cur = /bits/ 8 <0x20>;
> +           };
> +
> +           led@2 {
> +               reg = <2>;
> +               chan-name = "d3";
> +               led-cur = /bits/ 8 <0x14>;
> +               max-cur = /bits/ 8 <0x20>;
> +           };
> +
> +           led@3 {
> +               reg = <3>;
> +               chan-name = "d4";
> +               led-cur = /bits/ 8 <0x14>;
> +               max-cur = /bits/ 8 <0x20>;
> +           };
> +
> +           led@4 {
> +               reg = <4>;
> +               chan-name = "d5";
> +               led-cur = /bits/ 8 <0x14>;
> +               max-cur = /bits/ 8 <0x20>;
> +           };
> +
> +           led@5 {
> +               reg = <5>;
> +               chan-name = "d6";
> +               led-cur = /bits/ 8 <0x14>;
> +               max-cur = /bits/ 8 <0x20>;
> +           };
> +
> +           led@6 {
> +               reg = <6>;
> +               chan-name = "d7";
> +               led-cur = /bits/ 8 <0x14>;
> +               max-cur = /bits/ 8 <0x20>;
> +           };
> +
> +           led@7 {
> +               reg = <7>;
> +               chan-name = "d8";
> +               led-cur = /bits/ 8 <0x14>;
> +               max-cur = /bits/ 8 <0x20>;
> +           };
> +
> +           led@8 {
> +               reg = <8>;
> +               chan-name = "d9";
> +               led-cur = /bits/ 8 <0x14>;
> +               max-cur = /bits/ 8 <0x20>;
> +           };
> +        };
> +
> +       led-controller@33 {
> +           #address-cells = <1>;
> +           #size-cells = <0>;
> +           compatible = "national,lp5523";
> +           reg = <0x33>;
> +           clock-mode = /bits/ 8 <0>;
> +
> +           multi-led@2 {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               reg = <0x2>;
> +               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>;
> +               };
> +            };
> +        };
> +    };
> -- 
> 2.26.2
>
Dan Murphy June 5, 2020, 12:08 a.m. UTC | #2
Rob

On 6/4/20 6:04 PM, Rob Herring wrote:
> On Thu, Jun 04, 2020 at 07:04:55AM -0500, Dan Murphy wrote:
>> Convert the leds-lp55xx.txt to yaml binding.

I will fix all your comments.

But why does your BOT have checkpatch warnings?

https://gitlab.com/robherring/linux-dt-review/-/jobs/581282098/artifacts/file/checkpatch-1303471.log

Is this because checkpatch thinks the .txt file is invalid?

Dan
Rob Herring (Arm) June 8, 2020, 5:50 p.m. UTC | #3
On Thu, Jun 4, 2020 at 6:08 PM Dan Murphy <dmurphy@ti.com> wrote:
>
> Rob
>
> On 6/4/20 6:04 PM, Rob Herring wrote:
> > On Thu, Jun 04, 2020 at 07:04:55AM -0500, Dan Murphy wrote:
> >> Convert the leds-lp55xx.txt to yaml binding.
>
> I will fix all your comments.
>
> But why does your BOT have checkpatch warnings?
>
> https://gitlab.com/robherring/linux-dt-review/-/jobs/581282098/artifacts/file/checkpatch-1303471.log
>
> Is this because checkpatch thinks the .txt file is invalid?

Because there's a bug in checkpatch.pl on handling these conversion patches.

checkpatch.pl runs mainly because it was easy for me to setup and get
integrated into the patchwork checks.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/leds/leds-lp55xx.txt b/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
deleted file mode 100644
index 1b66a413fb9d..000000000000
--- a/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
+++ /dev/null
@@ -1,228 +0,0 @@ 
-Binding for TI/National Semiconductor LP55xx Led Drivers
-
-Required properties:
-- compatible: one of
-	national,lp5521
-	national,lp5523
-	ti,lp55231
-	ti,lp5562
-	ti,lp8501
-
-- reg: I2C slave address
-- clock-mode: Input clock mode, (0: automode, 1: internal, 2: external)
-
-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.
-
-Optional properties:
-- enable-gpio: GPIO attached to the chip's enable pin
-- label: Used for naming LEDs
-- pwr-sel: LP8501 specific property. Power selection for output channels.
-         0: D1~9 are connected to VDD
-         1: D1~6 with VDD, D7~9 with VOUT
-         2: D1~6 with VOUT, D7~9 with VDD
-         3: D1~9 are connected to VOUT
-
-Alternatively, each child can have a specific channel name and trigger:
-- chan-name (optional): name of channel
-- linux,default-trigger (optional): see
-  Documentation/devicetree/bindings/leds/common.txt
-
-example 1) LP5521
-3 LED channels, external clock used. Channel names are 'lp5521_pri:channel0',
-'lp5521_pri:channel1' and 'lp5521_pri:channel2', with a heartbeat trigger
-on channel 0.
-
-lp5521@32 {
-	compatible = "national,lp5521";
-	reg = <0x32>;
-	label = "lp5521_pri";
-	clock-mode = /bits/ 8 <2>;
-
-	chan0 {
-		led-cur = /bits/ 8 <0x2f>;
-		max-cur = /bits/ 8 <0x5f>;
-		linux,default-trigger = "heartbeat";
-	};
-
-	chan1 {
-		led-cur = /bits/ 8 <0x2f>;
-		max-cur = /bits/ 8 <0x5f>;
-	};
-
-	chan2 {
-		led-cur = /bits/ 8 <0x2f>;
-		max-cur = /bits/ 8 <0x5f>;
-	};
-};
-
-example 2) LP5523
-9 LED channels with specific name. Internal clock used.
-The I2C slave address is configurable with ASEL1 and ASEL0 pins.
-Available addresses are 32/33/34/35h.
-
-ASEL1    ASEL0    Address
--------------------------
- GND      GND       32h
- GND      VEN       33h
- VEN      GND       34h
- VEN      VEN       35h
-
-lp5523@32 {
-	compatible = "national,lp5523";
-	reg = <0x32>;
-	clock-mode = /bits/ 8 <1>;
-
-	chan0 {
-		chan-name = "d1";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan1 {
-		chan-name = "d2";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan2 {
-		chan-name = "d3";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan3 {
-		chan-name = "d4";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan4 {
-		chan-name = "d5";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan5 {
-		chan-name = "d6";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan6 {
-		chan-name = "d7";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan7 {
-		chan-name = "d8";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan8 {
-		chan-name = "d9";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-};
-
-example 3) LP5562
-4 channels are defined.
-
-lp5562@30 {
-	compatible = "ti,lp5562";
-	reg = <0x30>;
-	clock-mode = /bits/8 <2>;
-
-	chan0 {
-		chan-name = "R";
-		led-cur = /bits/ 8 <0x20>;
-		max-cur = /bits/ 8 <0x60>;
-	};
-
-	chan1 {
-		chan-name = "G";
-		led-cur = /bits/ 8 <0x20>;
-		max-cur = /bits/ 8 <0x60>;
-	};
-
-	chan2 {
-		chan-name = "B";
-		led-cur = /bits/ 8 <0x20>;
-		max-cur = /bits/ 8 <0x60>;
-	};
-
-	chan3 {
-		chan-name = "W";
-		led-cur = /bits/ 8 <0x20>;
-		max-cur = /bits/ 8 <0x60>;
-	};
-};
-
-example 4) LP8501
-9 channels are defined. The 'pwr-sel' is LP8501 specific property.
-Others are same as LP5523.
-
-lp8501@32 {
-	compatible = "ti,lp8501";
-	reg = <0x32>;
-	clock-mode = /bits/ 8 <2>;
-	pwr-sel = /bits/ 8 <3>;	/* D1~9 connected to VOUT */
-
-	chan0 {
-		chan-name = "d1";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan1 {
-		chan-name = "d2";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan2 {
-		chan-name = "d3";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan3 {
-		chan-name = "d4";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan4 {
-		chan-name = "d5";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan5 {
-		chan-name = "d6";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan6 {
-		chan-name = "d7";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan7 {
-		chan-name = "d8";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-
-	chan8 {
-		chan-name = "d9";
-		led-cur = /bits/ 8 <0x14>;
-		max-cur = /bits/ 8 <0x20>;
-	};
-};
diff --git a/Documentation/devicetree/bindings/leds/leds-lp55xx.yaml b/Documentation/devicetree/bindings/leds/leds-lp55xx.yaml
new file mode 100644
index 000000000000..9d6ded5fbc14
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/leds-lp55xx.yaml
@@ -0,0 +1,220 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/leds-lp55xx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI/National Semiconductor LP55xx and LP8501 LED Drivers
+
+maintainers:
+  - Jacek Anaszewski <jacek.anaszewski@gmail.com>
+  - Pavel Machek <pavel@ucw.cz>
+
+description: |
+  Bindings for the TI/National Semiconductor LP55xx and LP8501 multi channel
+  LED Drivers.
+
+  For more product information please see the link below:
+    https://www.ti.com/lit/gpn/lp5521
+    https://www.ti.com/lit/gpn/lp5523
+    https://www.ti.com/lit/gpn/lp55231
+    https://www.ti.com/lit/gpn/lp5562
+    https://www.ti.com/lit/gpn/lp8501
+
+properties:
+  #allOf:
+    #- $ref: "common.yaml#"
+    #- $ref: "leds-class-multicolor.yaml#"
+
+  compatible:
+    enum:
+      - national,lp5521
+      - national,lp5523
+      - ti,lp55231
+      - ti,lp5562
+      - ti,lp8501
+
+  reg:
+    maxItems: 1
+    description: I2C slave address
+
+  clock-mode:
+    $ref: /schemas/types.yaml#definitions/uint8
+    maxItems: 1
+    description: |
+      Input clock mode
+      0 - automode
+      1 - internal
+      2 - external
+
+  enable-gpio:
+    maxItems: 1
+    description: |
+      GPIO attached to the chip's enable pin
+
+  pwr-sel:
+    $ref: /schemas/types.yaml#definitions/uint8
+    maxItems: 1
+    description: |
+      LP8501 specific property. Power selection for output channels.
+         0 - D1~9 are connected to VDD
+         1 - D1~6 with VDD, D7~9 with VOUT
+         2 - D1~6 with VOUT, D7~9 with VDD
+         3 - D1~9 are connected to VOUT
+
+  child-node:
+    type: object
+    properties:
+      led-cur:
+        $ref: /schemas/types.yaml#definitions/uint8
+        maxItems: 1
+        description: |
+          Current setting at each LED channel (mA x10, 0 if LED is not connected)
+
+      max-cur:
+        $ref: /schemas/types.yaml#definitions/uint8
+        maxItems: 1
+        description: Maximun current at each LED channel.
+
+      reg:
+        maxItems: 1
+        description: |
+          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
+
+      chan-name:
+        $ref: /schemas/types.yaml#definitions/string
+        description: name of channel
+
+required:
+  - compatible
+  - reg
+
+examples:
+  - |
+   #include <dt-bindings/leds/common.h>
+
+   i2c {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       led-controller@32 {
+           #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 */
+
+           led@0 {
+               reg = <0>;
+               chan-name = "d1";
+               led-cur = /bits/ 8 <0x14>;
+               max-cur = /bits/ 8 <0x20>;
+           };
+
+           led@1 {
+               reg = <1>;
+               chan-name = "d2";
+               led-cur = /bits/ 8 <0x14>;
+               max-cur = /bits/ 8 <0x20>;
+           };
+
+           led@2 {
+               reg = <2>;
+               chan-name = "d3";
+               led-cur = /bits/ 8 <0x14>;
+               max-cur = /bits/ 8 <0x20>;
+           };
+
+           led@3 {
+               reg = <3>;
+               chan-name = "d4";
+               led-cur = /bits/ 8 <0x14>;
+               max-cur = /bits/ 8 <0x20>;
+           };
+
+           led@4 {
+               reg = <4>;
+               chan-name = "d5";
+               led-cur = /bits/ 8 <0x14>;
+               max-cur = /bits/ 8 <0x20>;
+           };
+
+           led@5 {
+               reg = <5>;
+               chan-name = "d6";
+               led-cur = /bits/ 8 <0x14>;
+               max-cur = /bits/ 8 <0x20>;
+           };
+
+           led@6 {
+               reg = <6>;
+               chan-name = "d7";
+               led-cur = /bits/ 8 <0x14>;
+               max-cur = /bits/ 8 <0x20>;
+           };
+
+           led@7 {
+               reg = <7>;
+               chan-name = "d8";
+               led-cur = /bits/ 8 <0x14>;
+               max-cur = /bits/ 8 <0x20>;
+           };
+
+           led@8 {
+               reg = <8>;
+               chan-name = "d9";
+               led-cur = /bits/ 8 <0x14>;
+               max-cur = /bits/ 8 <0x20>;
+           };
+        };
+
+       led-controller@33 {
+           #address-cells = <1>;
+           #size-cells = <0>;
+           compatible = "national,lp5523";
+           reg = <0x33>;
+           clock-mode = /bits/ 8 <0>;
+
+           multi-led@2 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x2>;
+               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>;
+               };
+            };
+        };
+    };