czw., 17 paź 2019 o 20:31 Rob Herring <robh@xxxxxxxxxx> napisał(a): > > On Thu, Oct 17, 2019 at 09:12:29AM +0200, Bartosz Golaszewski wrote: > > From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> > > > > Convert the binding document for MAX77650 core MFD module to YAML. > > > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> > > --- > > .../devicetree/bindings/mfd/max77650.txt | 46 ------ > > .../devicetree/bindings/mfd/max77650.yaml | 151 ++++++++++++++++++ > > 2 files changed, 151 insertions(+), 46 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/mfd/max77650.txt > > create mode 100644 Documentation/devicetree/bindings/mfd/max77650.yaml > > > > diff --git a/Documentation/devicetree/bindings/mfd/max77650.txt b/Documentation/devicetree/bindings/mfd/max77650.txt > > deleted file mode 100644 > > index b529d8d19335..000000000000 > > --- a/Documentation/devicetree/bindings/mfd/max77650.txt > > +++ /dev/null > > @@ -1,46 +0,0 @@ > > -MAX77650 ultra low-power PMIC from Maxim Integrated. > > - > > -Required properties: > > -------------------- > > -- compatible: Must be "maxim,max77650" > > -- reg: I2C device address. > > -- interrupts: The interrupt on the parent the controller is > > - connected to. > > -- interrupt-controller: Marks the device node as an interrupt controller. > > -- #interrupt-cells: Must be <2>. > > - > > -- gpio-controller: Marks the device node as a gpio controller. > > -- #gpio-cells: Must be <2>. The first cell is the pin number and > > - the second cell is used to specify the gpio active > > - state. > > - > > -Optional properties: > > --------------------- > > -gpio-line-names: Single string containing the name of the GPIO line. > > - > > -The GPIO-controller module is represented as part of the top-level PMIC > > -node. The device exposes a single GPIO line. > > - > > -For device-tree bindings of other sub-modules (regulator, power supply, > > -LEDs and onkey) refer to the binding documents under the respective > > -sub-system directories. > > - > > -For more details on GPIO bindings, please refer to the generic GPIO DT > > -binding document <devicetree/bindings/gpio/gpio.txt>. > > - > > -Example: > > --------- > > - > > - pmic@48 { > > - compatible = "maxim,max77650"; > > - reg = <0x48>; > > - > > - interrupt-controller; > > - interrupt-parent = <&gpio2>; > > - #interrupt-cells = <2>; > > - interrupts = <3 IRQ_TYPE_LEVEL_LOW>; > > - > > - gpio-controller; > > - #gpio-cells = <2>; > > - gpio-line-names = "max77650-charger"; > > - }; > > diff --git a/Documentation/devicetree/bindings/mfd/max77650.yaml b/Documentation/devicetree/bindings/mfd/max77650.yaml > > new file mode 100644 > > index 000000000000..66a447e1cf56 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/mfd/max77650.yaml > > @@ -0,0 +1,151 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/mfd/max77650.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: MAX77650 ultra low-power PMIC from Maxim Integrated. > > + > > +maintainers: > > + - Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> > > + > > +description: | > > + This document describes the DT properties of the core MFD controller. > > So does every file in this directory. > > Describe what this chip is. > > > + > > + The GPIO-controller module is represented as part of the top-level PMIC > > + node. The device exposes a single GPIO line. > > + > > + For device-tree bindings of other sub-modules (regulator, power supply, > > + LEDs and onkey) refer to the binding documents under the respective > > + sub-system directories. > > + > > + For more details on GPIO bindings, please refer to the generic GPIO DT > > + binding document <devicetree/bindings/gpio/gpio.txt>. > > Also fairly useless and another reference to maintain... > > > + > > +properties: > > + compatible: > > + const: maxim,max77650 > > + > > + reg: > > + description: > > + I2C device address. > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + interrupt-controller: true > > + > > + "#interrupt-cells": > > + const: 2 > > + description: > > + The first cell is the IRQ number, the second cell is the trigger type. > > + > > + gpio-controller: true > > + > > + "#gpio-cells": > > + const: 2 > > + description: > > + The first cell is the pin number and the second cell is used to specify > > + the gpio active state. > > + > > + gpio-line-names: > > + maxItems: 1 > > + description: > > + Single string containing the name of the GPIO line. > > + > > + regulators: > > + $ref: ../regulator/max77650-regulator.yaml > > Not bisectable... This patch needs to come last. > > > + > > + charger: > > + $ref: ../power/supply/max77650-charger.yaml > > + > > + leds: > > + $ref: ../leds/leds-max77650.yaml > > + > > + onkey: > > + $ref: ../input/max77650-onkey.yaml > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - interrupt-controller > > + - "#interrupt-cells" > > + - gpio-controller > > + - "#gpio-cells" > > None of the child nodes are required? > Technically no, and now when I think about it, neither are the following two properties really: - gpio-controller - "#gpio-cells" You can define an empty device, it's just going to be useless. For practical purposes you can use any combination of modules, so I wouldn't make any of them required. Bart > > + > > +examples: > > + - | > > + #include <dt-bindings/interrupt-controller/irq.h> > > + #include <dt-bindings/input/linux-event-codes.h> > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + pmic@48 { > > + compatible = "maxim,max77650"; > > + reg = <0x48>; > > + > > + interrupt-controller; > > + interrupt-parent = <&gpio2>; > > + #interrupt-cells = <2>; > > + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; > > + > > + gpio-controller; > > + #gpio-cells = <2>; > > + gpio-line-names = "max77650-charger"; > > + > > + regulators { > > + compatible = "maxim,max77650-regulator"; > > + > > + max77650_ldo: regulator@0 { > > + regulator-compatible = "ldo"; > > + regulator-name = "max77650-ldo"; > > + regulator-min-microvolt = <1350000>; > > + regulator-max-microvolt = <2937500>; > > + }; > > + > > + max77650_sbb0: regulator@1 { > > + regulator-compatible = "sbb0"; > > + regulator-name = "max77650-sbb0"; > > + regulator-min-microvolt = <800000>; > > + regulator-max-microvolt = <1587500>; > > + }; > > + }; > > + > > + charger { > > + compatible = "maxim,max77650-charger"; > > + input-voltage-min-microvolt = <4200000>; > > + input-current-limit-microamp = <285000>; > > + }; > > + > > + leds { > > + compatible = "maxim,max77650-led"; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + led@0 { > > + reg = <0>; > > + label = "blue:usr0"; > > + }; > > + > > + led@1 { > > + reg = <1>; > > + label = "red:usr1"; > > + linux,default-trigger = "heartbeat"; > > + }; > > + > > + led@2 { > > + reg = <2>; > > + label = "green:usr2"; > > + }; > > + }; > > + > > + onkey { > > + compatible = "maxim,max77650-onkey"; > > + linux,code = <KEY_END>; > > + maxim,onkey-slide; > > + }; > > + }; > > + }; > > -- > > 2.23.0 > >