0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 # Copyright (C) 2020 BAIKAL ELECTRONICS, JSC
0003 %YAML 1.2
0004 ---
0005 $id: http://devicetree.org/schemas/bus/baikal,bt1-apb.yaml#
0006 $schema: http://devicetree.org/meta-schemas/core.yaml#
0007
0008 title: Baikal-T1 APB-bus
0009
0010 maintainers:
0011 - Serge Semin <fancer.lancer@gmail.com>
0012
0013 description: |
0014 Baikal-T1 CPU or DMAC MMIO requests are handled by the AMBA 3 AXI Interconnect
0015 which routes them to the AXI-APB bridge. This interface is a single master
0016 multiple slaves bus in turn serializing IO accesses and routing them to the
0017 addressed APB slave devices. In case of any APB protocol collisions, slave
0018 device not responding on timeout an IRQ is raised with an erroneous address
0019 reported to the APB terminator (APB Errors Handler Block).
0020
0021 allOf:
0022 - $ref: /schemas/simple-bus.yaml#
0023
0024 properties:
0025 compatible:
0026 contains:
0027 const: baikal,bt1-apb
0028
0029 reg:
0030 items:
0031 - description: APB EHB MMIO registers
0032 - description: APB MMIO region with no any device mapped
0033
0034 reg-names:
0035 items:
0036 - const: ehb
0037 - const: nodev
0038
0039 interrupts:
0040 maxItems: 1
0041
0042 clocks:
0043 items:
0044 - description: APB reference clock
0045
0046 clock-names:
0047 items:
0048 - const: pclk
0049
0050 resets:
0051 items:
0052 - description: APB domain reset line
0053
0054 reset-names:
0055 items:
0056 - const: prst
0057
0058 unevaluatedProperties: false
0059
0060 required:
0061 - compatible
0062 - reg
0063 - reg-names
0064 - interrupts
0065 - clocks
0066 - clock-names
0067
0068 examples:
0069 - |
0070 #include <dt-bindings/interrupt-controller/mips-gic.h>
0071
0072 bus@1f059000 {
0073 compatible = "baikal,bt1-apb", "simple-bus";
0074 reg = <0x1f059000 0x1000>,
0075 <0x1d000000 0x2040000>;
0076 reg-names = "ehb", "nodev";
0077 #address-cells = <1>;
0078 #size-cells = <1>;
0079
0080 ranges;
0081
0082 interrupts = <GIC_SHARED 16 IRQ_TYPE_LEVEL_HIGH>;
0083
0084 clocks = <&ccu_sys 1>;
0085 clock-names = "pclk";
0086
0087 resets = <&ccu_sys 1>;
0088 reset-names = "prst";
0089 };
0090 ...