162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/bus/arm,integrator-ap-lm.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Integrator/AP Logic Module extension bus
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Linus Walleij <linusw@kernel.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: The Integrator/AP is a prototyping platform and as such has a
1362306a36Sopenharmony_ci  site for stacking up to four logic modules (LM) designed specifically for
1462306a36Sopenharmony_ci  use with this platform. A special system controller register can be read to
1562306a36Sopenharmony_ci  determine if a logic module is connected at index 0, 1, 2 or 3. The logic
1662306a36Sopenharmony_ci  module connector is described in this binding. The logic modules per se
1762306a36Sopenharmony_ci  then have their own specific per-module bindings and they will be described
1862306a36Sopenharmony_ci  as subnodes under this logic module extension bus.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciproperties:
2162306a36Sopenharmony_ci  "#address-cells":
2262306a36Sopenharmony_ci    const: 1
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  "#size-cells":
2562306a36Sopenharmony_ci    const: 1
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  compatible:
2862306a36Sopenharmony_ci    items:
2962306a36Sopenharmony_ci      - const: arm,integrator-ap-lm
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  ranges: true
3262306a36Sopenharmony_ci  dma-ranges: true
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cipatternProperties:
3562306a36Sopenharmony_ci  "^bus(@[0-9a-f]*)?$":
3662306a36Sopenharmony_ci    description: Nodes on the Logic Module bus represent logic modules
3762306a36Sopenharmony_ci      and are named with bus. The first module is at 0xc0000000, the second
3862306a36Sopenharmony_ci      at 0xd0000000 and so on until the top of the memory of the system at
3962306a36Sopenharmony_ci      0xffffffff. All information about the memory used by the module is
4062306a36Sopenharmony_ci      in ranges and dma-ranges.
4162306a36Sopenharmony_ci    type: object
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci    required:
4462306a36Sopenharmony_ci      - compatible
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_cirequired:
4762306a36Sopenharmony_ci  - compatible
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciexamples:
5062306a36Sopenharmony_ci  - |
5162306a36Sopenharmony_ci    bus@c0000000 {
5262306a36Sopenharmony_ci      compatible = "arm,integrator-ap-lm";
5362306a36Sopenharmony_ci      #address-cells = <1>;
5462306a36Sopenharmony_ci      #size-cells = <1>;
5562306a36Sopenharmony_ci      ranges = <0xc0000000 0xc0000000 0x40000000>;
5662306a36Sopenharmony_ci      dma-ranges;
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci      bus@c0000000 {
5962306a36Sopenharmony_ci        compatible = "simple-bus";
6062306a36Sopenharmony_ci        ranges = <0x00000000 0xc0000000 0x10000000>;
6162306a36Sopenharmony_ci        /* The Logic Modules sees the Core Module 0 RAM @80000000 */
6262306a36Sopenharmony_ci        dma-ranges = <0x00000000 0x80000000 0x10000000>;
6362306a36Sopenharmony_ci        #address-cells = <1>;
6462306a36Sopenharmony_ci        #size-cells = <1>;
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci        serial@100000 {
6762306a36Sopenharmony_ci          compatible = "arm,pl011", "arm,primecell";
6862306a36Sopenharmony_ci          reg = <0x00100000 0x1000>;
6962306a36Sopenharmony_ci          interrupts-extended = <&impd1_vic 1>;
7062306a36Sopenharmony_ci        };
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci        impd1_vic: interrupt-controller@3000000 {
7362306a36Sopenharmony_ci          compatible = "arm,pl192-vic";
7462306a36Sopenharmony_ci          interrupt-controller;
7562306a36Sopenharmony_ci          #interrupt-cells = <1>;
7662306a36Sopenharmony_ci          reg = <0x03000000 0x1000>;
7762306a36Sopenharmony_ci          valid-mask = <0x00000bff>;
7862306a36Sopenharmony_ci          interrupts-extended = <&pic 9>;
7962306a36Sopenharmony_ci        };
8062306a36Sopenharmony_ci      };
8162306a36Sopenharmony_ci    };
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciadditionalProperties: false
84