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

title: Ralink PalmBus Device Tree Bindings

maintainers:
  - Sergio Paracuellos <sergio.paracuellos@gmail.com>

description: |
  The ralink palmbus controller can be found in all ralink MIPS
  SoCs. It provides an external bus for connecting multiple
  external devices to the SoC.

properties:
  $nodename:
    pattern: "^palmbus(@[0-9a-f]+)?$"

  "#address-cells":
    const: 1

  "#size-cells":
    const: 1

  compatible:
    const: palmbus

  reg:
    maxItems: 1

  ranges: true

patternProperties:
  # All other properties should be child nodes with unit-address and 'reg'
  "@[0-9a-f]+$":
    type: object
    properties:
      reg:
        maxItems: 1

    required:
      - reg

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

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/mips-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    palmbus@1e000000 {
        compatible = "palmbus";
        reg = <0x1e000000 0x100000>;
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0x0 0x1e000000 0x0fffff>;

        gpio@600 {
            #gpio-cells = <2>;
            #interrupt-cells = <2>;
            compatible = "mediatek,mt7621-gpio";
            gpio-controller;
            gpio-ranges = <&pinctrl 0 0 95>;
            interrupt-controller;
            reg = <0x600 0x100>;
            interrupt-parent = <&gic>;
            interrupts = <GIC_SHARED 12 IRQ_TYPE_LEVEL_HIGH>;
        };
    };

...
