On Tue, Mar 05, 2019 at 03:24:02PM +0100, Fabien Dessenne wrote: > Document the ML-AHB interconnect for stm32 SoCs. > > Signed-off-by: Fabien Dessenne <fabien.dessenne@xxxxxx> > --- > .../devicetree/bindings/arm/stm32/mlahb.txt | 30 ++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > create mode 100644 Documentation/devicetree/bindings/arm/stm32/mlahb.txt > > diff --git a/Documentation/devicetree/bindings/arm/stm32/mlahb.txt b/Documentation/devicetree/bindings/arm/stm32/mlahb.txt > new file mode 100644 > index 0000000..880cb38 > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/stm32/mlahb.txt > @@ -0,0 +1,30 @@ > +ML-AHB interconnect bindings > + > +These bindings describe the STM32 SoCs ML-AHB interconnect bus which connects > +a Cortex-M subsystem with dedicated memories. > + > +Required properties: > +- compatible: should be "simple-bus" A binding for simple-bus was the first thing that looked odd. > +- ranges: describes memory addresses translation between the local CPU and the > + remote Cortex-M processor. Each memory region, is declared with 3 > + parameters: > + - param 1: device base address (Cortex-M processor address) > + - param 2: physical base address (local CPU address) > + - param 3: size of the memory region. Given that the driver is parsing ranges itself, this looks like abuse of ranges. What exactly is address 0 supposed to be here? If it is the M4's view of memory, then dma-ranges is what you want to use here. > + > +The Cortex-M remote processor accessed via the mlahb interconnect is described > +by a child node. > + > +Example: > +mlahb: mlahb@0 { Note that the unit-address is wrong here as it should be 38000000. > + compatible = "simple-bus"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0x00000000 0x38000000 0x10000>, > + <0x10000000 0x10000000 0x60000>, > + <0x30000000 0x30000000 0x60000>; > + > + m4_rproc: m4@0 { > + ... > + }; > +}; > -- > 2.7.4 >