mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-04 10:33:13 +00:00

The BCM63138 family of serial LED controllers has a register where we can set up bits for the shift registers. These are the number of rounds the bits need to be shifted before all bits have been shifted through the external shift registers. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://lore.kernel.org/r/20241010-bcm63138-leds-v4-1-cdb80780a555@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
103 lines
2.4 KiB
YAML
103 lines
2.4 KiB
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 <rafal@milecki.pl>
|
|
|
|
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
|
|
|
|
brcm,serial-shift-bits:
|
|
minimum: 1
|
|
maximum: 32
|
|
description:
|
|
This describes the number of 8-bit serial shifters connected to the LED
|
|
controller block. The hardware is typically using 8-bit shift registers
|
|
with 8 LEDs per shift register, so 4 shifters results in 32 LEDs or 2
|
|
shifters give 16 LEDs etc, but the hardware supports any odd number of
|
|
registers. If left unspecified, the hardware boot-time default is used.
|
|
|
|
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>;
|
|
brcm,serial-shift-bits = <16>;
|
|
|
|
#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;
|
|
};
|
|
};
|