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