lkml.org 
[lkml]   [2020]   [Nov]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v10 5/6] dt-bindings: leds: Add bindings for MT6360 LED
From
Date
Hi Gene,

On 11/27/20 4:28 AM, Gene Chen wrote:
> From: Gene Chen <gene_chen@richtek.com>
>
> Add bindings document for LED support on MT6360 PMIC
>
> Signed-off-by: Gene Chen <gene_chen@richtek.com>
> ---
> .../devicetree/bindings/leds/leds-mt6360.yaml | 164 +++++++++++++++++++++
> 1 file changed, 164 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/leds/leds-mt6360.yaml
>
> diff --git a/Documentation/devicetree/bindings/leds/leds-mt6360.yaml b/Documentation/devicetree/bindings/leds/leds-mt6360.yaml
> new file mode 100644
> index 0000000..b2ffbc6
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/leds-mt6360.yaml
> @@ -0,0 +1,164 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/leds/leds-mt6360.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: LED driver for MT6360 PMIC from MediaTek Integrated.
> +
> +maintainers:
> + - Gene Chen <gene_chen@richtek.com>
> +
> +description: |
> + This module is part of the MT6360 MFD device.
> + see Documentation/devicetree/bindings/mfd/mt6360.yaml
> + Add MT6360 LED driver include 2-channel Flash LED with torch/strobe mode,
> + and 4-channel RGB LED support Register/Flash/Breath Mode
> +
> +properties:
> + compatible:
> + const: mediatek,mt6360-led
> +
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 0
> +
> +patternProperties:
> + "^led@[0-6]$":
> + type: object
> + $ref: common.yaml#
> + description:
> + Properties for a single LED.
> +
> + properties:
> + reg:
> + description: Index of the LED.
> + enum:
> + - 0 # LED output INDICATOR1_RED
> + - 1 # LED output INDICATOR1_GREEN
> + - 2 # LED output INDICATOR1_BLUE
> + - 3 # LED output INDICATOR2_
These LED output descriptions look odd.
In the driver you have:

enum {
MT6360_LED_ISNK1 = 0,
MT6360_LED_ISNK2,
MT6360_LED_ISNK3,
MT6360_LED_ISNKML
...

I think the same names should be used for DT reg property documentation:

- 0 # LED output ISNK1
- 1 # LED output ISNK2
- 2 # LED output ISNK3
- 3 # LED output ISNKML

Here you're describing hardware, i.e. current sinks as they are
defined in the device documentation, and not the functions you're
assigning in DT to the connected LEDs.

> + - 4 # LED output FLED1
> + - 5 # LED output FLED2
> + - 6 # LED output MULTICOLOR


This last enum is also disputable, since it is driver specific, and not
hardware specific. Actually you should rather check LED color id and
basing on that treat the LED as multicolor (for LED_COLOR_ID_RGB).
See drivers/leds/leds-lp55xx-common.c for a reference.

> +unevaluatedProperties: false
> +
> +required:
> + - compatible
> + - "#address-cells"
> + - "#size-cells"
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/leds/common.h>
> + led-controller {
> + compatible = "mediatek,mt6360-led";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + led@3 {
> + reg = <3>;
> + function

= LED_FUNCTION_MOONLIGHT;
> + color = <LED_COLOR_ID_WHITE>;
> + led-max-microamp = <150000>;
> + };
> + led@4 {
> + reg = <4>;
> + function = LED_FUNCTION_FLASH;
> + color = <LED_COLOR_ID_WHITE>;
> + function-enumerator = <1>;
> + led-max-microamp = <200000>;
> + flash-max-microamp = <500000>;
> + flash-max-timeout-us = <1024000>;
> + };
> + led@5 {
> + reg = <5>;
> + function = LED_FUNCTION_FLASH;
> + color = <LED_COLOR_ID_WHITE>;
> + function-enumerator = <2>;
> + led-max-microamp = <200000>;
> + flash-max-microamp = <500000>;
> + flash-max-timeout-us = <1024000>;
> + };
> + led@6 {
> + reg = <6>;
> + function = LED_FUNCTION_INDICATOR;
> + color = <LED_COLOR_ID_RGB>;
> + led-max-microamp = <24000>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + led@0 {
> + reg = <0>;
> + function = LED_FUNCTION_INDICATOR;

The function is unused in case of the multicolor subleds.
Please drop it from here.

> + color = <LED_COLOR_ID_RED>;
> + };
> + led@1 {
> + reg = <1>;
> + function = LED_FUNCTION_INDICATOR;

Ditto.

> + color = <LED_COLOR_ID_GREEN>;
> + };
> + led@2 {
> + reg = <2>;
> + function = LED_FUNCTION_INDICATOR;

Ditto.

> + color = <LED_COLOR_ID_BLUE>;
> + };
> + };
> + };
> +
> + - |
> +
> + led-controller {
> + compatible = "mediatek,mt6360-led";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + led@0 {
> + reg = <0>;
> + function = LED_FUNCTION_INDICATOR;
> + color = <LED_COLOR_ID_RED>;
> + led-max-microamp = <24000>;
> + };
> + led@1 {
> + reg = <1>;
> + function = LED_FUNCTION_INDICATOR;
> + color = <LED_COLOR_ID_GREEN>;
> + led-max-microamp = <24000>;
> + };
> + led@2 {
> + reg = <2>;
> + function = LED_FUNCTION_INDICATOR;
> + color = <LED_COLOR_ID_BLUE>;
> + led-max-microamp = <24000>;
> + };
> + led@3 {
> + reg = <3>;
> + function = LED_FUNCTION_MOONLIGHT;
> + color = <LED_COLOR_ID_WHITE>;
> + led-max-microamp = <150000>;
> + };
> + led@4 {
> + reg = <4>;
> + function = LED_FUNCTION_FLASH;
> + color = <LED_COLOR_ID_WHITE>;
> + function-enumerator = <1>;
> + led-max-microamp = <200000>;
> + flash-max-microamp = <500000>;
> + flash-max-timeout-us = <1024000>;
> + };
> + led@5 {
> + reg = <5>;
> + function = LED_FUNCTION_FLASH;
> + color = <LED_COLOR_ID_WHITE>;
> + function-enumerator = <2>;
> + led-max-microamp = <200000>;
> + flash-max-microamp = <500000>;
> + flash-max-timeout-us = <1024000>;
> + };
> + };
> +...
>

--
Best regards,
Jacek Anaszewski

\
 
 \ /
  Last update: 2020-11-28 23:39    [W:0.091 / U:0.820 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site