162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/arm/sunxi/allwinner,sun4i-a10-mbus.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Allwinner Memory Bus (MBUS) controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Chen-Yu Tsai <wens@csie.org>
1162306a36Sopenharmony_ci  - Maxime Ripard <mripard@kernel.org>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  The MBUS controller drives the MBUS that other devices in the SoC
1562306a36Sopenharmony_ci  will use to perform DMA. It also has a register interface that
1662306a36Sopenharmony_ci  allows to monitor and control the bandwidth and priorities for
1762306a36Sopenharmony_ci  masters on that bus.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci  Each device having to perform their DMA through the MBUS must have
2062306a36Sopenharmony_ci  the interconnects and interconnect-names properties set to the MBUS
2162306a36Sopenharmony_ci  controller and with "dma-mem" as the interconnect name.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciproperties:
2462306a36Sopenharmony_ci  "#interconnect-cells":
2562306a36Sopenharmony_ci    const: 1
2662306a36Sopenharmony_ci    description:
2762306a36Sopenharmony_ci      The content of the cell is the MBUS ID.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  compatible:
3062306a36Sopenharmony_ci    enum:
3162306a36Sopenharmony_ci      - allwinner,sun5i-a13-mbus
3262306a36Sopenharmony_ci      - allwinner,sun8i-a33-mbus
3362306a36Sopenharmony_ci      - allwinner,sun8i-a50-mbus
3462306a36Sopenharmony_ci      - allwinner,sun8i-a83t-mbus
3562306a36Sopenharmony_ci      - allwinner,sun8i-h3-mbus
3662306a36Sopenharmony_ci      - allwinner,sun8i-r40-mbus
3762306a36Sopenharmony_ci      - allwinner,sun8i-v3s-mbus
3862306a36Sopenharmony_ci      - allwinner,sun8i-v536-mbus
3962306a36Sopenharmony_ci      - allwinner,sun20i-d1-mbus
4062306a36Sopenharmony_ci      - allwinner,sun50i-a64-mbus
4162306a36Sopenharmony_ci      - allwinner,sun50i-a100-mbus
4262306a36Sopenharmony_ci      - allwinner,sun50i-h5-mbus
4362306a36Sopenharmony_ci      - allwinner,sun50i-h6-mbus
4462306a36Sopenharmony_ci      - allwinner,sun50i-h616-mbus
4562306a36Sopenharmony_ci      - allwinner,sun50i-r329-mbus
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci  reg:
4862306a36Sopenharmony_ci    minItems: 1
4962306a36Sopenharmony_ci    items:
5062306a36Sopenharmony_ci      - description: MBUS interconnect/bandwidth limit/PMU registers
5162306a36Sopenharmony_ci      - description: DRAM controller/PHY registers
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  reg-names:
5462306a36Sopenharmony_ci    minItems: 1
5562306a36Sopenharmony_ci    items:
5662306a36Sopenharmony_ci      - const: mbus
5762306a36Sopenharmony_ci      - const: dram
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci  clocks:
6062306a36Sopenharmony_ci    minItems: 1
6162306a36Sopenharmony_ci    items:
6262306a36Sopenharmony_ci      - description: MBUS interconnect module clock
6362306a36Sopenharmony_ci      - description: DRAM controller/PHY module clock
6462306a36Sopenharmony_ci      - description: Register bus clock, shared by MBUS and DRAM
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci  clock-names:
6762306a36Sopenharmony_ci    minItems: 1
6862306a36Sopenharmony_ci    items:
6962306a36Sopenharmony_ci      - const: mbus
7062306a36Sopenharmony_ci      - const: dram
7162306a36Sopenharmony_ci      - const: bus
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci  interrupts:
7462306a36Sopenharmony_ci    maxItems: 1
7562306a36Sopenharmony_ci    description:
7662306a36Sopenharmony_ci      MBUS PMU activity interrupt.
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci  dma-ranges:
7962306a36Sopenharmony_ci    description:
8062306a36Sopenharmony_ci      See section 2.3.9 of the DeviceTree Specification.
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci  '#address-cells': true
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci  '#size-cells': true
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_cirequired:
8762306a36Sopenharmony_ci  - "#interconnect-cells"
8862306a36Sopenharmony_ci  - compatible
8962306a36Sopenharmony_ci  - reg
9062306a36Sopenharmony_ci  - clocks
9162306a36Sopenharmony_ci  - dma-ranges
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ciif:
9462306a36Sopenharmony_ci  not:
9562306a36Sopenharmony_ci    properties:
9662306a36Sopenharmony_ci      compatible:
9762306a36Sopenharmony_ci        contains:
9862306a36Sopenharmony_ci          enum:
9962306a36Sopenharmony_ci            - allwinner,sun5i-a13-mbus
10062306a36Sopenharmony_ci            - allwinner,sun8i-r40-mbus
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_cithen:
10362306a36Sopenharmony_ci  properties:
10462306a36Sopenharmony_ci    reg:
10562306a36Sopenharmony_ci      minItems: 2
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci    reg-names:
10862306a36Sopenharmony_ci      minItems: 2
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci    clocks:
11162306a36Sopenharmony_ci      minItems: 3
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci    clock-names:
11462306a36Sopenharmony_ci      minItems: 3
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci  required:
11762306a36Sopenharmony_ci    - reg-names
11862306a36Sopenharmony_ci    - clock-names
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_cielse:
12162306a36Sopenharmony_ci  properties:
12262306a36Sopenharmony_ci    reg:
12362306a36Sopenharmony_ci      maxItems: 1
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci    reg-names:
12662306a36Sopenharmony_ci      maxItems: 1
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci    clocks:
12962306a36Sopenharmony_ci      maxItems: 1
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci    clock-names:
13262306a36Sopenharmony_ci      maxItems: 1
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ciadditionalProperties: false
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ciexamples:
13762306a36Sopenharmony_ci  - |
13862306a36Sopenharmony_ci    #include <dt-bindings/clock/sun50i-a64-ccu.h>
13962306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci    dram-controller@1c01000 {
14262306a36Sopenharmony_ci        compatible = "allwinner,sun5i-a13-mbus";
14362306a36Sopenharmony_ci        reg = <0x01c01000 0x1000>;
14462306a36Sopenharmony_ci        clocks = <&ccu CLK_MBUS>;
14562306a36Sopenharmony_ci        #address-cells = <1>;
14662306a36Sopenharmony_ci        #size-cells = <1>;
14762306a36Sopenharmony_ci        dma-ranges = <0x00000000 0x40000000 0x20000000>;
14862306a36Sopenharmony_ci        #interconnect-cells = <1>;
14962306a36Sopenharmony_ci    };
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci  - |
15262306a36Sopenharmony_ci    dram-controller@1c62000 {
15362306a36Sopenharmony_ci        compatible = "allwinner,sun50i-a64-mbus";
15462306a36Sopenharmony_ci        reg = <0x01c62000 0x1000>,
15562306a36Sopenharmony_ci              <0x01c63000 0x1000>;
15662306a36Sopenharmony_ci        reg-names = "mbus", "dram";
15762306a36Sopenharmony_ci        clocks = <&ccu CLK_MBUS>,
15862306a36Sopenharmony_ci                 <&ccu CLK_DRAM>,
15962306a36Sopenharmony_ci                 <&ccu CLK_BUS_DRAM>;
16062306a36Sopenharmony_ci        clock-names = "mbus", "dram", "bus";
16162306a36Sopenharmony_ci        interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
16262306a36Sopenharmony_ci        #address-cells = <1>;
16362306a36Sopenharmony_ci        #size-cells = <1>;
16462306a36Sopenharmony_ci        dma-ranges = <0x00000000 0x40000000 0xc0000000>;
16562306a36Sopenharmony_ci        #interconnect-cells = <1>;
16662306a36Sopenharmony_ci    };
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci...
169