Commit a1c13784 authored by Serge Semin's avatar Serge Semin Committed by Arnd Bergmann
Browse files

dt-bindings: bus: Add Baikal-T1 APB-bus binding

Baikal-T1 CPU or DMAC MMIO requests are handled by the AMBA 3 AXI
Interconnect which routes them to the AXI-APB bridge, which in turn
serializes accesses and routes them to the corresponding APB slave device.
This binding describes the AXI-APB bridge considered as the APB-bus. It is
supposed to be compatible with "be,bt1-apb" and "simple-bus" drivers,
should be equipped with EHB MMIO region and a region with no slave device
mapped, interrupts line number, APB reference clock and domain reset line.

Link: https://lore.kernel.org/r/20200526125928.17096-3-Sergey.Semin@baikalelectronics.ru


Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Olof Johansson <olof@lixom.net>
Cc: linux-mips@vger.kernel.org
Cc: soc@kernel.org
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 78c43a05
Loading
Loading
Loading
Loading
+90 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2020 BAIKAL ELECTRONICS, JSC
%YAML 1.2
---
$id: http://devicetree.org/schemas/bus/baikal,bt1-apb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Baikal-T1 APB-bus

maintainers:
  - Serge Semin <fancer.lancer@gmail.com>

description: |
  Baikal-T1 CPU or DMAC MMIO requests are handled by the AMBA 3 AXI Interconnect
  which routes them to the AXI-APB bridge. This interface is a single master
  multiple slaves bus in turn serializing IO accesses and routing them to the
  addressed APB slave devices. In case of any APB protocol collisions, slave
  device not responding on timeout an IRQ is raised with an erroneous address
  reported to the APB terminator (APB Errors Handler Block).

allOf:
 - $ref: /schemas/simple-bus.yaml#

properties:
  compatible:
    contains:
      const: baikal,bt1-apb

  reg:
    items:
      - description: APB EHB MMIO registers
      - description: APB MMIO region with no any device mapped

  reg-names:
    items:
      - const: ehb
      - const: nodev

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: APB reference clock

  clock-names:
    items:
      - const: pclk

  resets:
    items:
      - description: APB domain reset line

  reset-names:
    items:
      - const: prst

unevaluatedProperties: false

required:
  - compatible
  - reg
  - reg-names
  - interrupts
  - clocks
  - clock-names

examples:
  - |
    #include <dt-bindings/interrupt-controller/mips-gic.h>

    bus@1f059000 {
      compatible = "baikal,bt1-apb", "simple-bus";
      reg = <0 0x1f059000 0 0x1000>,
            <0 0x1d000000 0 0x2040000>;
      reg-names = "ehb", "nodev";
      #address-cells = <1>;
      #size-cells = <1>;

      ranges;

      interrupts = <GIC_SHARED 16 IRQ_TYPE_LEVEL_HIGH>;

      clocks = <&ccu_sys 1>;
      clock-names = "pclk";

      resets = <&ccu_sys 1>;
      reset-names = "prst";
    };
...