xref: /openbmc/linux/Documentation/devicetree/bindings/arm/stm32/st,mlahb.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
134566e4fSArnaud Pouliquen# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
234566e4fSArnaud Pouliquen%YAML 1.2
334566e4fSArnaud Pouliquen---
4*45698208SRob Herring$id: http://devicetree.org/schemas/arm/stm32/st,mlahb.yaml#
5*45698208SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
634566e4fSArnaud Pouliquen
784e85359SKrzysztof Kozlowskititle: STMicroelectronics STM32 ML-AHB interconnect
834566e4fSArnaud Pouliquen
934566e4fSArnaud Pouliquenmaintainers:
10f4eedebdSPatrice Chotard  - Fabien Dessenne <fabien.dessenne@foss.st.com>
11f4eedebdSPatrice Chotard  - Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
1234566e4fSArnaud Pouliquen
1334566e4fSArnaud Pouliquendescription: |
1434566e4fSArnaud Pouliquen  These bindings describe the STM32 SoCs ML-AHB interconnect bus which connects
1534566e4fSArnaud Pouliquen  a Cortex-M subsystem with dedicated memories. The MCU SRAM and RETRAM memory
1634566e4fSArnaud Pouliquen  parts can be accessed through different addresses (see "RAM aliases" in [1])
1734566e4fSArnaud Pouliquen  using different buses (see [2]): balancing the Cortex-M firmware accesses
1834566e4fSArnaud Pouliquen  among those ports allows to tune the system performance.
1934566e4fSArnaud Pouliquen  [1]: https://www.st.com/resource/en/reference_manual/dm00327659.pdf
2034566e4fSArnaud Pouliquen  [2]: https://wiki.st.com/stm32mpu/wiki/STM32MP15_RAM_mapping
2134566e4fSArnaud Pouliquen
2234566e4fSArnaud PouliquenallOf:
2334566e4fSArnaud Pouliquen  - $ref: /schemas/simple-bus.yaml#
2434566e4fSArnaud Pouliquen
2534566e4fSArnaud Pouliquenproperties:
2634566e4fSArnaud Pouliquen  compatible:
2734566e4fSArnaud Pouliquen    contains:
2834566e4fSArnaud Pouliquen      enum:
2934566e4fSArnaud Pouliquen        - st,mlahb
3034566e4fSArnaud Pouliquen
3134566e4fSArnaud Pouliquen  dma-ranges:
3234566e4fSArnaud Pouliquen    description: |
3334566e4fSArnaud Pouliquen      Describe memory addresses translation between the local CPU and the
3434566e4fSArnaud Pouliquen      remote Cortex-M processor. Each memory region, is declared with
3534566e4fSArnaud Pouliquen      3 parameters:
3634566e4fSArnaud Pouliquen      - param 1: device base address (Cortex-M processor address)
3734566e4fSArnaud Pouliquen      - param 2: physical base address (local CPU address)
3834566e4fSArnaud Pouliquen      - param 3: size of the memory region.
3934566e4fSArnaud Pouliquen    maxItems: 3
4034566e4fSArnaud Pouliquen
4134566e4fSArnaud Pouliquen  '#address-cells':
4234566e4fSArnaud Pouliquen    const: 1
4334566e4fSArnaud Pouliquen
4434566e4fSArnaud Pouliquen  '#size-cells':
4534566e4fSArnaud Pouliquen    const: 1
4634566e4fSArnaud Pouliquen
4734566e4fSArnaud Pouliquenrequired:
4834566e4fSArnaud Pouliquen  - compatible
4934566e4fSArnaud Pouliquen  - '#address-cells'
5034566e4fSArnaud Pouliquen  - '#size-cells'
5134566e4fSArnaud Pouliquen  - dma-ranges
5234566e4fSArnaud Pouliquen
536fdc6e23SRob HerringunevaluatedProperties: false
546fdc6e23SRob Herring
5534566e4fSArnaud Pouliquenexamples:
5634566e4fSArnaud Pouliquen  - |
5751a21e0eSRob Herring    mlahb: ahb@38000000 {
5834566e4fSArnaud Pouliquen      compatible = "st,mlahb", "simple-bus";
5934566e4fSArnaud Pouliquen      #address-cells = <1>;
6034566e4fSArnaud Pouliquen      #size-cells = <1>;
6134566e4fSArnaud Pouliquen      reg = <0x10000000 0x40000>;
6234566e4fSArnaud Pouliquen      ranges;
6334566e4fSArnaud Pouliquen      dma-ranges = <0x00000000 0x38000000 0x10000>,
6434566e4fSArnaud Pouliquen                   <0x10000000 0x10000000 0x60000>,
6534566e4fSArnaud Pouliquen                   <0x30000000 0x30000000 0x60000>;
6634566e4fSArnaud Pouliquen
6734566e4fSArnaud Pouliquen      m4_rproc: m4@10000000 {
6834566e4fSArnaud Pouliquen       reg = <0x10000000 0x40000>;
6934566e4fSArnaud Pouliquen      };
7034566e4fSArnaud Pouliquen    };
7134566e4fSArnaud Pouliquen
7234566e4fSArnaud Pouliquen...
73