hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# 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 = <0x1f059000 0x1000>,
            <0x1d000000 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";
    };
...