xref: /freebsd/sys/contrib/device-tree/Bindings/bus/baikal,bt1-apb.yaml (revision 2e3507c25e42292b45a5482e116d278f5515d04d)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright (C) 2020 BAIKAL ELECTRONICS, JSC
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/bus/baikal,bt1-apb.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Baikal-T1 APB-bus
9
10maintainers:
11  - Serge Semin <fancer.lancer@gmail.com>
12
13description: |
14  Baikal-T1 CPU or DMAC MMIO requests are handled by the AMBA 3 AXI Interconnect
15  which routes them to the AXI-APB bridge. This interface is a single master
16  multiple slaves bus in turn serializing IO accesses and routing them to the
17  addressed APB slave devices. In case of any APB protocol collisions, slave
18  device not responding on timeout an IRQ is raised with an erroneous address
19  reported to the APB terminator (APB Errors Handler Block).
20
21allOf:
22  - $ref: /schemas/simple-bus.yaml#
23
24properties:
25  compatible:
26    contains:
27      const: baikal,bt1-apb
28
29  reg:
30    items:
31      - description: APB EHB MMIO registers
32      - description: APB MMIO region with no any device mapped
33
34  reg-names:
35    items:
36      - const: ehb
37      - const: nodev
38
39  interrupts:
40    maxItems: 1
41
42  clocks:
43    items:
44      - description: APB reference clock
45
46  clock-names:
47    items:
48      - const: pclk
49
50  resets:
51    items:
52      - description: APB domain reset line
53
54  reset-names:
55    items:
56      - const: prst
57
58unevaluatedProperties: false
59
60required:
61  - compatible
62  - reg
63  - reg-names
64  - interrupts
65  - clocks
66  - clock-names
67
68examples:
69  - |
70    #include <dt-bindings/interrupt-controller/mips-gic.h>
71
72    bus@1f059000 {
73      compatible = "baikal,bt1-apb", "simple-bus";
74      reg = <0x1f059000 0x1000>,
75            <0x1d000000 0x2040000>;
76      reg-names = "ehb", "nodev";
77      #address-cells = <1>;
78      #size-cells = <1>;
79
80      ranges;
81
82      interrupts = <GIC_SHARED 16 IRQ_TYPE_LEVEL_HIGH>;
83
84      clocks = <&ccu_sys 1>;
85      clock-names = "pclk";
86
87      resets = <&ccu_sys 1>;
88      reset-names = "prst";
89    };
90...
91