On Tue, 2020-01-07 at 18:17 -0600, Rob Herring wrote: > Convert the gpio-leds binding to DT schema format. > > Drop the last example as the node name collides when built, and it > doesn't > add much value. > > Cc: Pavel Machek <pavel@xxxxxx> > Cc: Dan Murphy <dmurphy@xxxxxx> > Acked-by: Jacek Anaszewski <jacek.anaszewski@xxxxxxxxx> > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> > --- > Jacek, Please take this via led tree > > v2: > - no change > > .../devicetree/bindings/leds/leds-gpio.txt | 75 ---------------- > .../devicetree/bindings/leds/leds-gpio.yaml | 86 > +++++++++++++++++++ > 2 files changed, 86 insertions(+), 75 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/leds/leds- > gpio.txt > create mode 100644 Documentation/devicetree/bindings/leds/leds- > gpio.yaml > > diff --git a/Documentation/devicetree/bindings/leds/leds-gpio.txt > b/Documentation/devicetree/bindings/leds/leds-gpio.txt > deleted file mode 100644 > index d21281b63d38..000000000000 > --- a/Documentation/devicetree/bindings/leds/leds-gpio.txt > +++ /dev/null > @@ -1,75 +0,0 @@ > -LEDs connected to GPIO lines > - > -Required properties: > -- compatible : should be "gpio-leds". > - > -Each LED is represented as a sub-node of the gpio-leds device. Each > -node's name represents the name of the corresponding LED. > - > -LED sub-node properties: > -- gpios : Should specify the LED's GPIO, see "gpios property" in > - Documentation/devicetree/bindings/gpio/gpio.txt. Active low LEDs > should be > - indicated using flags in the GPIO specifier. > -- function : (optional) > - see Documentation/devicetree/bindings/leds/common.txt > -- color : (optional) > - see Documentation/devicetree/bindings/leds/common.txt > -- label : (optional) > - see Documentation/devicetree/bindings/leds/common.txt (deprecated) > -- linux,default-trigger : (optional) > - see Documentation/devicetree/bindings/leds/common.txt > -- default-state: (optional) The initial state of the LED. > - see Documentation/devicetree/bindings/leds/common.txt > -- retain-state-suspended: (optional) The suspend state can be > retained.Such > - as charge-led gpio. > -- retain-state-shutdown: (optional) Retain the state of the LED on > shutdown. > - Useful in BMC systems, for example when the BMC is rebooted while > the host > - remains up. > -- panic-indicator : (optional) > - see Documentation/devicetree/bindings/leds/common.txt > - > -Examples: > - > -#include <dt-bindings/gpio/gpio.h> > -#include <dt-bindings/leds/common.h> > - > -leds { > - compatible = "gpio-leds"; > - led0 { > - gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW>; > - linux,default-trigger = "disk-activity"; > - function = LED_FUNCTION_DISK; > - }; > - > - led1 { > - gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>; > - /* Keep LED on if BIOS detected hardware fault */ > - default-state = "keep"; > - function = LED_FUNCTION_FAULT; > - }; > -}; > - > -run-control { > - compatible = "gpio-leds"; > - led0 { > - gpios = <&mpc8572 6 GPIO_ACTIVE_HIGH>; > - color = <LED_COLOR_ID_RED>; > - default-state = "off"; > - }; > - led1 { > - gpios = <&mpc8572 7 GPIO_ACTIVE_HIGH>; > - color = <LED_COLOR_ID_GREEN>; > - default-state = "on"; > - }; > -}; > - > -leds { > - compatible = "gpio-leds"; > - > - led0 { > - gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; > - linux,default-trigger = "max8903-charger-charging"; > - retain-state-suspended; > - function = LED_FUNCTION_CHARGE; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/leds/leds-gpio.yaml > b/Documentation/devicetree/bindings/leds/leds-gpio.yaml > new file mode 100644 > index 000000000000..0e75b185dd19 > --- /dev/null > +++ b/Documentation/devicetree/bindings/leds/leds-gpio.yaml > @@ -0,0 +1,86 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/leds/leds-gpio.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: LEDs connected to GPIO lines > + > +maintainers: > + - Jacek Anaszewski <jacek.anaszewski@xxxxxxxxx> > + - Pavel Machek <pavel@xxxxxx> > + > +description: > + Each LED is represented as a sub-node of the gpio-leds device. > Each > + node's name represents the name of the corresponding LED. > + > +properties: > + compatible: > + const: gpio-leds > + > +patternProperties: > + # The first form is preferred, but fall back to just 'led' anywhere > in the > + # node name to at least catch some child nodes. > + "(^led-[0-9a-f]$|led)": Hi Rob, just stumbled on this regexp which I do not understand what you meant with it. It is limiting the amount of LEDs to 16 in the part "^led-[0-9a-f]$" but then after the or "|" it is allowed to put any name containing "led"? Is this really wanted? Am I now needed to number my leds like "led-1, led-2, ..., led-f"? Thanks in advance for the explanation. Philippe > + type: object > + > + allOf: > + - $ref: common.yaml# > + > + properties: > + gpios: > + maxItems: 1 > + > + retain-state-suspended: > + description: > + The suspend state can be retained.Such as charge-led gpio. > + type: boolean > + > + retain-state-shutdown: > + description: > + Retain the state of the LED on shutdown. Useful in BMC > systems, for > + example when the BMC is rebooted while the host remains up. > + type: boolean > + > + required: > + - gpios > + > +additionalProperties: false > + > +examples: > + - | > + > + #include <dt-bindings/gpio/gpio.h> > + #include <dt-bindings/leds/common.h> > + > + leds { > + compatible = "gpio-leds"; > + led-0 { > + gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW>; > + linux,default-trigger = "disk-activity"; > + function = LED_FUNCTION_DISK; > + }; > + > + led-1 { > + gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>; > + /* Keep LED on if BIOS detected hardware fault */ > + default-state = "keep"; > + function = LED_FUNCTION_FAULT; > + }; > + }; > + > + run-control { > + compatible = "gpio-leds"; > + led-0 { > + gpios = <&mpc8572 6 GPIO_ACTIVE_HIGH>; > + color = <LED_COLOR_ID_RED>; > + default-state = "off"; > + }; > + led-1 { > + gpios = <&mpc8572 7 GPIO_ACTIVE_HIGH>; > + color = <LED_COLOR_ID_GREEN>; > + default-state = "on"; > + }; > + }; > + > +...