mbox series

[00/14] Broadcom DT bindings updates to YAML

Message ID 20211201205110.41656-1-f.fainelli@gmail.com
Headers show
Series Broadcom DT bindings updates to YAML | expand

Message

Florian Fainelli Dec. 1, 2021, 8:50 p.m. UTC
Hi Rob,

This patch series contains a number of device tree bindings being
converted to YAML to help with validation.

There will be second, and possibly third rounds later on after those
land in.

Thanks!

Florian Fainelli (14):
  dt-bindings: mmc: Convert Broadcom STB SDHCI binding to YAML
  dt-bindings: reset: Convert Broadcom STB reset to YAML
  dt-bindings: pwm: Convert BCM7038 PWM binding to YAML
  dt-bindings: rtc: Convert Broadcom STB waketimer to YAML
  dt-bindings: gpio: Convert Broadcom STB GPIO to YAML
  dt-binding: interrupt-controller: Convert BCM7038 L1 intc to YAML
  dt-bindings: interrupt-controller: Convert BCM7120 L2 to YAML
  dt-bindings: interrupt-controller: Merge BCM3380 with BCM7120
  dt-bindings: interrupt-controller: Convert Broadcom STB L2 to YAML
  dt-bindings: rng: Convert iProc RNG200 to YAML
  dt-bindings: thermal: Convert Broadcom TMON to YAML
  dt-bindings: ata: Convert Broadcom SATA to YAML
  dt-bindings: bus: Convert GISB arbiter to YAML
  dt-bindings: usb: Convert BDC to YAML

 .../bindings/ata/brcm,sata-brcm.txt           |  45 ------
 .../bindings/ata/brcm,sata-brcm.yaml          |  91 +++++++++++
 .../devicetree/bindings/bus/brcm,gisb-arb.txt |  34 ----
 .../bindings/bus/brcm,gisb-arb.yaml           |  66 ++++++++
 .../bindings/gpio/brcm,brcmstb-gpio.txt       |  83 ----------
 .../bindings/gpio/brcm,brcmstb-gpio.yaml      | 104 ++++++++++++
 .../brcm,bcm3380-l2-intc.txt                  |  39 -----
 .../brcm,bcm7038-l1-intc.txt                  |  61 -------
 .../brcm,bcm7038-l1-intc.yaml                 |  91 +++++++++++
 .../brcm,bcm7120-l2-intc.txt                  |  88 -----------
 .../brcm,bcm7120-l2-intc.yaml                 | 149 ++++++++++++++++++
 .../interrupt-controller/brcm,l2-intc.txt     |  31 ----
 .../interrupt-controller/brcm,l2-intc.yaml    |  64 ++++++++
 .../bindings/mmc/brcm,sdhci-brcmstb.txt       |  53 -------
 .../bindings/mmc/brcm,sdhci-brcmstb.yaml      | 100 ++++++++++++
 .../bindings/pwm/brcm,bcm7038-pwm.txt         |  20 ---
 .../bindings/pwm/brcm,bcm7038-pwm.yaml        |  43 +++++
 .../bindings/reset/brcm,brcmstb-reset.txt     |  27 ----
 .../bindings/reset/brcm,brcmstb-reset.yaml    |  48 ++++++
 .../bindings/rng/brcm,iproc-rng200.txt        |  16 --
 .../bindings/rng/brcm,iproc-rng200.yaml       |  29 ++++
 .../bindings/rtc/brcm,brcmstb-waketimer.txt   |  20 ---
 .../bindings/rtc/brcm,brcmstb-waketimer.yaml  |  44 ++++++
 .../bindings/thermal/brcm,avs-tmon.txt        |  23 ---
 .../bindings/thermal/brcm,avs-tmon.yaml       |  57 +++++++
 .../devicetree/bindings/usb/brcm,bdc.txt      |  29 ----
 .../devicetree/bindings/usb/brcm,bdc.yaml     |  46 ++++++
 MAINTAINERS                                   |   6 +-
 28 files changed, 935 insertions(+), 572 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/ata/brcm,sata-brcm.txt
 create mode 100644 Documentation/devicetree/bindings/ata/brcm,sata-brcm.yaml
 delete mode 100644 Documentation/devicetree/bindings/bus/brcm,gisb-arb.txt
 create mode 100644 Documentation/devicetree/bindings/bus/brcm,gisb-arb.yaml
 delete mode 100644 Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
 delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/brcm,bcm3380-l2-intc.txt
 delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.yaml
 delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7120-l2-intc.txt
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7120-l2-intc.yaml
 delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/brcm,l2-intc.txt
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/brcm,l2-intc.yaml
 delete mode 100644 Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.txt
 create mode 100644 Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml
 delete mode 100644 Documentation/devicetree/bindings/pwm/brcm,bcm7038-pwm.txt
 create mode 100644 Documentation/devicetree/bindings/pwm/brcm,bcm7038-pwm.yaml
 delete mode 100644 Documentation/devicetree/bindings/reset/brcm,brcmstb-reset.txt
 create mode 100644 Documentation/devicetree/bindings/reset/brcm,brcmstb-reset.yaml
 delete mode 100644 Documentation/devicetree/bindings/rng/brcm,iproc-rng200.txt
 create mode 100644 Documentation/devicetree/bindings/rng/brcm,iproc-rng200.yaml
 delete mode 100644 Documentation/devicetree/bindings/rtc/brcm,brcmstb-waketimer.txt
 create mode 100644 Documentation/devicetree/bindings/rtc/brcm,brcmstb-waketimer.yaml
 delete mode 100644 Documentation/devicetree/bindings/thermal/brcm,avs-tmon.txt
 create mode 100644 Documentation/devicetree/bindings/thermal/brcm,avs-tmon.yaml
 delete mode 100644 Documentation/devicetree/bindings/usb/brcm,bdc.txt
 create mode 100644 Documentation/devicetree/bindings/usb/brcm,bdc.yaml

Comments

Damien Le Moal Dec. 1, 2021, 11:58 p.m. UTC | #1
On 2021/12/02 5:51, Florian Fainelli wrote:
> Convert the Broadcom SATA3 AHCI controller Device Tree binding to YAML
> to help with validation.
> 
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> ---
>  .../bindings/ata/brcm,sata-brcm.txt           | 45 ---------
>  .../bindings/ata/brcm,sata-brcm.yaml          | 91 +++++++++++++++++++
>  2 files changed, 91 insertions(+), 45 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/ata/brcm,sata-brcm.txt
>  create mode 100644 Documentation/devicetree/bindings/ata/brcm,sata-brcm.yaml
> 
> diff --git a/Documentation/devicetree/bindings/ata/brcm,sata-brcm.txt b/Documentation/devicetree/bindings/ata/brcm,sata-brcm.txt
> deleted file mode 100644
> index b9ae4ce4a0a0..000000000000
> --- a/Documentation/devicetree/bindings/ata/brcm,sata-brcm.txt
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -* Broadcom SATA3 AHCI Controller
> -
> -SATA nodes are defined to describe on-chip Serial ATA controllers.
> -Each SATA controller should have its own node.
> -
> -Required properties:
> -- compatible         : should be one or more of
> -			"brcm,bcm7216-ahci"
> -			"brcm,bcm7425-ahci"
> -			"brcm,bcm7445-ahci"
> -			"brcm,bcm-nsp-ahci"
> -			"brcm,sata3-ahci"
> -			"brcm,bcm63138-ahci"
> -- reg                : register mappings for AHCI and SATA_TOP_CTRL
> -- reg-names          : "ahci" and "top-ctrl"
> -- interrupts         : interrupt mapping for SATA IRQ
> -
> -Optional properties:
> -
> -- reset: for "brcm,bcm7216-ahci" must be a valid reset phandle
> -  pointing to the RESCAL reset controller provider node.
> -- reset-names: for "brcm,bcm7216-ahci", must be "rescal".
> -
> -Also see ahci-platform.txt.
> -
> -Example:
> -
> -	sata@f045a000 {
> -		compatible = "brcm,bcm7445-ahci", "brcm,sata3-ahci";
> -		reg = <0xf045a000 0xa9c>, <0xf0458040 0x24>;
> -		reg-names = "ahci", "top-ctrl";
> -		interrupts = <0 30 0>;
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -
> -		sata0: sata-port@0 {
> -			reg = <0>;
> -			phys = <&sata_phy 0>;
> -		};
> -
> -		sata1: sata-port@1 {
> -			reg = <1>;
> -			phys = <&sata_phy 1>;
> -		};
> -	};
> diff --git a/Documentation/devicetree/bindings/ata/brcm,sata-brcm.yaml b/Documentation/devicetree/bindings/ata/brcm,sata-brcm.yaml
> new file mode 100644
> index 000000000000..4098d56872ae
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/ata/brcm,sata-brcm.yaml
> @@ -0,0 +1,91 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/ata/brcm,sata-brcm.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Broadcom SATA3 AHCI Controller
> +
> +description:
> +  SATA nodes are defined to describe on-chip Serial ATA controllers.
> +  Each SATA controller should have its own node.
> +
> +maintainers:
> +  - Florian Fainelli <f.fainelli@gmail.com>
> +
> +allOf:
> +  - $ref: sata-common.yaml#
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - brcm,bcm7216-ahci
> +          - const: brcm,sata3-ahci
> +      - items:
> +          - enum:
> +              - brcm,bcm7445-ahci
> +          - const: brcm,sata3-ahci
> +      - items:
> +          - enum:
> +              - brcm,bcm7425-ahci
> +          - const: brcm,sata3-ahci
> +      - items:
> +          - const: brcm,bcm-nsp-ahci
> +      - items:
> +          - const: brcm,bcm63138-ahci
> +
> +  reg:
> +    minItems: 2
> +    maxItems: 2
> +
> +  reg-names:
> +    items:
> +      - const: ahci
> +      - const: top-ctrl
> +
> +  interrupts: true
> +
> +if:
> +  properties:
> +    compatible:
> +      contains:
> +        enum:
> +          - brcm,bcm7216-ahci
> +then:
> +  properties:
> +    resets: true
> +    reset-names:
> +      items:
> +        - const: rescal
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - "#address-cells"
> +  - "#size-cells"
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    sata@f045a000 {
> +        compatible = "brcm,bcm7445-ahci", "brcm,sata3-ahci";
> +        reg = <0xf045a000 0xa9c>, <0xf0458040 0x24>;
> +        reg-names = "ahci", "top-ctrl";
> +        interrupts = <0 30 0>;
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        sata0: sata-port@0 {
> +            reg = <0>;
> +            phys = <&sata_phy 0>;
> +        };
> +
> +        sata1: sata-port@1 {
> +            reg = <1>;
> +            phys = <&sata_phy 1>;
> +        };
> +    };
> 

Acked-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>

Rob,

Will take this through your tree ?
Gregory Fong Dec. 2, 2021, 4 p.m. UTC | #2
Hi Florian,

I haven't kept up with the new yaml format, so not entirely sure I
know what I'm talking about yet, but here are a few comments:

On Wed, Dec 1, 2021 at 12:51 PM Florian Fainelli <f.fainelli@gmail.com> wrote:
>
> Convert the Broadcom STB GPIO Device Tree binding to YAML to help with
> validation.
>
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> ---
>  .../bindings/gpio/brcm,brcmstb-gpio.txt       |  83 --------------
>  .../bindings/gpio/brcm,brcmstb-gpio.yaml      | 104 ++++++++++++++++++
>  MAINTAINERS                                   |   2 +-
>  3 files changed, 105 insertions(+), 84 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
>  create mode 100644 Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
>
> diff --git a/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt b/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
> deleted file mode 100644
> index 5d468ecd1809..000000000000
> --- a/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
> +++ /dev/null
> @@ -1,83 +0,0 @@
> [snip]
> -
> -- interrupts-extended:
> -    Alternate form of specifying interrupts and parents that allows for
> -    multiple parents.  This takes precedence over 'interrupts' and
> -    'interrupt-parent'.  Wakeup-capable GPIO controllers often route their
> -    wakeup interrupt lines through a different interrupt controller than the
> -    primary interrupt line, making this property necessary.

It looks like interrupts-extended was removed from the new docs, I'm
assuming that was intentional?

> [snip]
> diff --git a/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml b/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
> new file mode 100644
> index 000000000000..4b7309dc74dc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
> @@ -0,0 +1,104 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/gpio/brcm,brcmstb-gpio.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Broadcom STB "UPG GIO" GPIO controller
> +
> +description: >
> +  The controller's registers are organized as sets of eight 32-bit
> +  registers with each set controlling a bank of up to 32 pins.  A single
> +  interrupt is shared for all of the banks handled by the controller.
> +
> +maintainers:
> +  - Doug Berger <opendmb@gmail.com>
> +  - Florian Fainelli <f.fainelli@gmail.com>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - brcm,bcm7445-gpio
> +          - const: brcm,brcmstb-gpio
> +
> +  reg:
> +    maxItems: 1
> +    description:

Missing folded block scalar marker ('>') above

> +      Define the base and range of the I/O address space containing
> +      the brcmstb GPIO controller registers
> +
> +  "#gpio-cells":
> +    const: 2
> +    description: >
> +      The first cell is the pin number (within the controller's
> +      pin space), and the second is used for the following:
> +      bit[0]: polarity (0 for active-high, 1 for active-low)
> +
> +  gpio-controller: true
> +
> +  "brcm,gpio-bank-widths":
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description:

Same here

> +      Number of GPIO lines for each bank.  Number of elements must
> +      correspond to number of banks suggested by the 'reg' property.
> +
> +  interrupts:
> +    maxItems: 1
> +    description:

While it's not necessary while this is only one line, consider adding
'>' here too.

> +      The interrupt shared by all GPIO lines for this controller.
> +
> +  "#interrupt-cells":
> +    const: 2
> +    description: >

This next block could get formatted strangely with '>'; recommend
using '|' instead

> +      The first cell is the GPIO number, the second should specify
> +      flags.  The following subset of flags is supported:
> +      - bits[3:0] trigger type and level flags
> +        1 = low-to-high edge triggered
> +        2 = high-to-low edge triggered
> +        4 = active high level-sensitive
> +        8 = active low level-sensitive
> +      Valid combinations are 1, 2, 3, 4, 8.
> +
> +  interrupt-controller: true
> +
> +  wakeup-source:
> +    type: boolean
> +    description: >
> +      GPIOs for this controller can be used as a wakeup source
> +
> +required:
> +  - compatible
> +  - reg
> +  - gpio-controller
> +  - "#gpio-cells"

Need to add required property "brcm,gpio-bank-widths"

> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    upg_gio: gpio@f040a700 {
> +        #gpio-cells = <2>;
> +        #interrupt-cells = <2>;
> +        compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
> +        gpio-controller;
> +        interrupt-controller;
> +        reg = <0xf040a700 0x80>;
> +        interrupt-parent = <&irq0_intc>;
> +        interrupts = <0x6>;
> +        brcm,gpio-bank-widths = <32 32 32 24>;
> +    };
> +
> +    upg_gio_aon: gpio@f04172c0 {
> +        #gpio-cells = <2>;
> +        #interrupt-cells = <2>;
> +        compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
> +        gpio-controller;
> +        interrupt-controller;
> +        reg = <0xf04172c0 0x40>;
> +        interrupt-parent = <&irq0_aon_intc>;
> +        interrupts = <0x6>;
> +        wakeup-source;
> +        brcm,gpio-bank-widths = <18 4>;
> +    };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 913856599623..78161abc384f 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -3772,7 +3772,7 @@ BROADCOM BRCMSTB GPIO DRIVER
>  M:     Gregory Fong <gregory.0xf0@gmail.com>

Not really related to this patch, but I should probably update this
entry to reflect current reality. Should that be you and/or Doug?

>  L:     bcm-kernel-feedback-list@broadcom.com
>  S:     Supported
> -F:     Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
> +F:     Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
>  F:     drivers/gpio/gpio-brcmstb.c
>
>  BROADCOM BRCMSTB I2C DRIVER
> --
> 2.25.1
>

Best regards,
Gregory
Florian Fainelli Dec. 2, 2021, 9:24 p.m. UTC | #3
On 12/2/21 8:00 AM, Gregory Fong wrote:
> Hi Florian,
> 
> I haven't kept up with the new yaml format, so not entirely sure I
> know what I'm talking about yet, but here are a few comments:
> 
> On Wed, Dec 1, 2021 at 12:51 PM Florian Fainelli <f.fainelli@gmail.com> wrote:
>>
>> Convert the Broadcom STB GPIO Device Tree binding to YAML to help with
>> validation.
>>
>> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
>> ---
>>  .../bindings/gpio/brcm,brcmstb-gpio.txt       |  83 --------------
>>  .../bindings/gpio/brcm,brcmstb-gpio.yaml      | 104 ++++++++++++++++++
>>  MAINTAINERS                                   |   2 +-
>>  3 files changed, 105 insertions(+), 84 deletions(-)
>>  delete mode 100644 Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
>>  create mode 100644 Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt b/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
>> deleted file mode 100644
>> index 5d468ecd1809..000000000000
>> --- a/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
>> +++ /dev/null
>> @@ -1,83 +0,0 @@
>> [snip]
>> -
>> -- interrupts-extended:
>> -    Alternate form of specifying interrupts and parents that allows for
>> -    multiple parents.  This takes precedence over 'interrupts' and
>> -    'interrupt-parent'.  Wakeup-capable GPIO controllers often route their
>> -    wakeup interrupt lines through a different interrupt controller than the
>> -    primary interrupt line, making this property necessary.
> 
> It looks like interrupts-extended was removed from the new docs, I'm
> assuming that was intentional?

Yes that is intentional, since this is a core property there is an
expectation that it is documented and used outside of the scope of this
binding.

> 
>> [snip]
>> diff --git a/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml b/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
>> new file mode 100644
>> index 000000000000..4b7309dc74dc
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
>> @@ -0,0 +1,104 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/gpio/brcm,brcmstb-gpio.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Broadcom STB "UPG GIO" GPIO controller
>> +
>> +description: >
>> +  The controller's registers are organized as sets of eight 32-bit
>> +  registers with each set controlling a bank of up to 32 pins.  A single
>> +  interrupt is shared for all of the banks handled by the controller.
>> +
>> +maintainers:
>> +  - Doug Berger <opendmb@gmail.com>
>> +  - Florian Fainelli <f.fainelli@gmail.com>
>> +
>> +properties:
>> +  compatible:
>> +    oneOf:
>> +      - items:
>> +          - enum:
>> +              - brcm,bcm7445-gpio
>> +          - const: brcm,brcmstb-gpio
>> +
>> +  reg:
>> +    maxItems: 1
>> +    description:
> 
> Missing folded block scalar marker ('>') above

Done.

> 
>> +      Define the base and range of the I/O address space containing
>> +      the brcmstb GPIO controller registers
>> +
>> +  "#gpio-cells":
>> +    const: 2
>> +    description: >
>> +      The first cell is the pin number (within the controller's
>> +      pin space), and the second is used for the following:
>> +      bit[0]: polarity (0 for active-high, 1 for active-low)
>> +
>> +  gpio-controller: true
>> +
>> +  "brcm,gpio-bank-widths":
>> +    $ref: /schemas/types.yaml#/definitions/uint32-array
>> +    description:
> 
> Same here
> 
>> +      Number of GPIO lines for each bank.  Number of elements must
>> +      correspond to number of banks suggested by the 'reg' property.
>> +
>> +  interrupts:
>> +    maxItems: 1
>> +    description:
> 
> While it's not necessary while this is only one line, consider adding
> '>' here too.
> 
>> +      The interrupt shared by all GPIO lines for this controller.
>> +
>> +  "#interrupt-cells":
>> +    const: 2
>> +    description: >
> 
> This next block could get formatted strangely with '>'; recommend
> using '|' instead

Yes good point.

> 
>> +      The first cell is the GPIO number, the second should specify
>> +      flags.  The following subset of flags is supported:
>> +      - bits[3:0] trigger type and level flags
>> +        1 = low-to-high edge triggered
>> +        2 = high-to-low edge triggered
>> +        4 = active high level-sensitive
>> +        8 = active low level-sensitive
>> +      Valid combinations are 1, 2, 3, 4, 8.
>> +
>> +  interrupt-controller: true
>> +
>> +  wakeup-source:
>> +    type: boolean
>> +    description: >
>> +      GPIOs for this controller can be used as a wakeup source
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +  - gpio-controller
>> +  - "#gpio-cells"
> 
> Need to add required property "brcm,gpio-bank-widths"

Indeed, done.

> 
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> +  - |
>> +    upg_gio: gpio@f040a700 {
>> +        #gpio-cells = <2>;
>> +        #interrupt-cells = <2>;
>> +        compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
>> +        gpio-controller;
>> +        interrupt-controller;
>> +        reg = <0xf040a700 0x80>;
>> +        interrupt-parent = <&irq0_intc>;
>> +        interrupts = <0x6>;
>> +        brcm,gpio-bank-widths = <32 32 32 24>;
>> +    };
>> +
>> +    upg_gio_aon: gpio@f04172c0 {
>> +        #gpio-cells = <2>;
>> +        #interrupt-cells = <2>;
>> +        compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
>> +        gpio-controller;
>> +        interrupt-controller;
>> +        reg = <0xf04172c0 0x40>;
>> +        interrupt-parent = <&irq0_aon_intc>;
>> +        interrupts = <0x6>;
>> +        wakeup-source;
>> +        brcm,gpio-bank-widths = <18 4>;
>> +    };
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 913856599623..78161abc384f 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -3772,7 +3772,7 @@ BROADCOM BRCMSTB GPIO DRIVER
>>  M:     Gregory Fong <gregory.0xf0@gmail.com>
> 
> Not really related to this patch, but I should probably update this
> entry to reflect current reality. Should that be you and/or Doug?

If you could add both of us that would be great, thanks!