linux-leds.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Dan Murphy <dmurphy@ti.com>
Cc: jacek.anaszewski@gmail.com, pavel@ucw.cz,
	devicetree@vger.kernel.org, linux-leds@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v26 06/15] dt-bindings: leds: Convert leds-lp55xx to yaml
Date: Thu, 4 Jun 2020 17:04:56 -0600	[thread overview]
Message-ID: <20200604230456.GA6520@bogus> (raw)
In-Reply-To: <20200604120504.32425-7-dmurphy@ti.com>

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
> 

  reply	other threads:[~2020-06-04 23:12 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-04 12:04 [PATCH v26 00/15] Multicolor Framework v26 Dan Murphy
2020-06-04 12:04 ` [PATCH v26 01/15] dt: bindings: Add multicolor class dt bindings documention Dan Murphy
2020-06-04 22:40   ` Rob Herring
2020-06-05 12:42     ` Dan Murphy
2020-06-04 12:04 ` [PATCH v26 02/15] leds: Add multicolor ID to the color ID list Dan Murphy
2020-06-04 12:04 ` [PATCH v26 03/15] leds: multicolor: Introduce a multicolor class definition Dan Murphy
2020-06-06 15:53   ` Pavel Machek
2020-06-06 16:39     ` Dan Murphy
2020-06-06 19:59       ` Jacek Anaszewski
2020-06-08 14:34         ` Dan Murphy
2020-06-08 19:41           ` Jacek Anaszewski
2020-06-09 11:45             ` Dan Murphy
2020-06-04 12:04 ` [PATCH v26 04/15] dt: bindings: lp50xx: Introduce the lp50xx family of RGB drivers Dan Murphy
2020-06-04 22:59   ` Rob Herring
2020-06-08 18:21     ` Dan Murphy
2020-06-04 12:04 ` [PATCH v26 05/15] leds: lp50xx: Add the LP50XX family of the RGB LED driver Dan Murphy
2020-06-04 12:04 ` [PATCH v26 06/15] dt-bindings: leds: Convert leds-lp55xx to yaml Dan Murphy
2020-06-04 23:04   ` Rob Herring [this message]
2020-06-05  0:08     ` Dan Murphy
2020-06-08 17:50       ` Rob Herring
2020-06-04 12:04 ` [PATCH v26 07/15] ARM: dts: n900: Add reg property to the LP5523 channel node Dan Murphy
2020-06-04 12:04 ` [PATCH v26 08/15] ARM: dts: imx6dl-yapp4: Add reg property to the lp5562 " Dan Murphy
2020-06-04 12:04 ` [PATCH v26 09/15] ARM: dts: ste-href: Add reg property to the LP5521 channel nodes Dan Murphy
2020-06-04 12:04 ` [PATCH v26 10/15] leds: lp55xx: Convert LED class registration to devm_* Dan Murphy
2020-06-04 12:05 ` [PATCH v26 11/15] leds: lp55xx: Add multicolor framework support to lp55xx Dan Murphy
2020-06-04 12:05 ` [PATCH v26 12/15] leds: lp5523: Update the lp5523 code to add multicolor brightness function Dan Murphy
2020-06-04 12:05 ` [PATCH v26 13/15] leds: lp5521: Add multicolor framework multicolor brightness support Dan Murphy
2020-06-04 12:05 ` [PATCH v26 14/15] leds: lp55xx: Fix file permissions to use DEVICE_ATTR macros Dan Murphy
2020-06-04 12:05 ` [PATCH v26 15/15] leds: lp5523: Fix various formatting issues in the code Dan Murphy
2020-06-06 15:57 ` [PATCH v26 00/15] Multicolor Framework v26 Pavel Machek
2020-06-08 18:35   ` Dan Murphy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200604230456.GA6520@bogus \
    --to=robh@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmurphy@ti.com \
    --cc=jacek.anaszewski@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=pavel@ucw.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).