linux/Documentation/devicetree/bindings/leds/leds-bcm63138.yaml

# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/leds/leds-bcm63138.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom's BCM63138 LEDs controller

maintainers:
  - Rafał Miłecki <[email protected]>

description: |
  This LEDs controller was first used on BCM63138 and later reused on BCM4908,
  BCM6848, BCM6858, BCM63138, BCM63148, BCM63381 and BCM68360 SoCs.

  It supports up to 32 LEDs that can be connected parallelly or serially. It
  also includes limited support for hardware blinking.

  Binding serially connected LEDs isn't documented yet.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - brcm,bcm4908-leds
              - brcm,bcm6848-leds
              - brcm,bcm6858-leds
              - brcm,bcm63148-leds
              - brcm,bcm63381-leds
              - brcm,bcm68360-leds
          - const: brcm,bcm63138-leds
      - const: brcm,bcm63138-leds

  reg:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

patternProperties:
  "^led@[a-f0-9]+$":
    type: object

    $ref: common.yaml#

    properties:
      reg:
        maxItems: 1
        description: LED pin number

    required:
      - reg

    unevaluatedProperties: false

required:
  - reg
  - "#address-cells"
  - "#size-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/leds/common.h>

    leds@ff800800 {
        compatible = "brcm,bcm4908-leds", "brcm,bcm63138-leds";
        reg = <0xff800800 0xdc>;

        #address-cells = <1>;
        #size-cells = <0>;

        led@0 {
            reg = <0x0>;
            function = LED_FUNCTION_POWER;
            color = <LED_COLOR_ID_GREEN>;
            default-state = "on";
        };

        led@3 {
            reg = <0x3>;
            function = LED_FUNCTION_STATUS;
            color = <LED_COLOR_ID_GREEN>;
            active-low;
        };
    };