Hi Cyrille, On Mon, 15 Jun 2015 18:38:04 +0200 Cyrille Pitchen <cyrille.pitchen@xxxxxxxxx> wrote: > Signed-off-by: Cyrille Pitchen <cyrille.pitchen@xxxxxxxxx> > --- > .../devicetree/bindings/mfd/atmel-flexcom.txt | 28 ++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > create mode 100644 Documentation/devicetree/bindings/mfd/atmel-flexcom.txt > > diff --git a/Documentation/devicetree/bindings/mfd/atmel-flexcom.txt b/Documentation/devicetree/bindings/mfd/atmel-flexcom.txt > new file mode 100644 > index 0000000..6b1a32e > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/atmel-flexcom.txt > @@ -0,0 +1,28 @@ > +* Device tree bindings for Atmel Flexcom (Flexible Serial Communication Unit) > + > +The Atmel Flexcom is just a wrapper which embeds a SPI controller, an I2C > +controller and an USART. Only one function can be used at a time and is chosen > +at boot time according to the device tree. > + > +Required properties: > +- compatible: "atmel,sama5d2-flexcom" > +- reg: shall be the offset/length value for Flexcom dedicated I/O registers > + (without USART, TWI or SPI registers). > +- clocks: shall be the Flexcom peripheral clock from PMC. > +- #address-cells: should be <1> > +- #size-cells: should be <1> > +- ranges: must be present > +- atmel,flexcom-mode: shall be a string among { "spi", "usart", "i2c", "twi" }. > + "i2c" and "twi" are synonymous. > + > +Example: > + > +flx0: flexcom@f8034000 { > + compatible = "atmel,sama5d2-flexcom"; > + reg = <0xf8034000 0x200>; > + clocks = <&flx0_clk>; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges; > + atmel,flexcom-mode = "spi"; > +}; Since the subdevices are using a set of registers contained by the flexcom device I would define it like this: flx0: flexcom@f8034000 { compatible = "atmel,sama5d2-flexcom"; reg = <0xf8034000 0x800>; clocks = <&flx0_clk>; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0xf8034000 0x800>; atmel,flexcom-mode = "spi"; usart@200 { reg = <0x200 0x100>; /* ... */ }; spi@400 { reg = <0x400 0x100>; /* ... */ }; i2c@600 { reg = <0x600 0x100>; /* ... */ }; }; Best Regards, Boris -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html