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

title: Shared Peripherals Bus Interface

maintainers:
  - Shawn Guo <shawnguo@kernel.org>

description: |
  A simple bus enabling access to shared peripherals.

  The "spba-bus" follows the "simple-bus" set of properties, as
  specified in the Devicetree Specification.  It is an extension of
  "simple-bus" because the SDMA controller uses this compatible flag to
  determine which peripherals are available to it and the range over which
  the SDMA can access.  There are no special clocks for the bus, because
  the SDMA controller itself has its interrupt and clock assignments.

select:
  properties:
    compatible:
      contains:
        const: fsl,spba-bus
  required:
    - compatible

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

  compatible:
    items:
      - const: fsl,spba-bus
      - const: simple-bus

  '#address-cells':
    enum: [ 1, 2 ]

  '#size-cells':
    enum: [ 1, 2 ]

  reg:
    maxItems: 1

  ranges: true

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

additionalProperties:
  type: object

examples:
  - |
    spba-bus@30000000 {
        compatible = "fsl,spba-bus", "simple-bus";
        #address-cells = <1>;
        #size-cells = <1>;
        reg = <0x30000000 0x100000>;
        ranges;
    };
