| * 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: Should be "atmel,sama5d2-flexcom" |
| - reg: Should be the offset/length value for Flexcom dedicated |
| I/O registers (without USART, TWI or SPI registers). |
| - clocks: Should be the Flexcom peripheral clock from PMC. |
| - #address-cells: Should be <1> |
| - #size-cells: Should be <1> |
| - ranges: Should be one range for the full I/O register region |
| (including USART, TWI and SPI registers). |
| - atmel,flexcom-mode: Should be one of the following values: |
| - <1> for USART |
| - <2> for SPI |
| - <3> for I2C |
| |
| Required child: |
| A single available child device of type matching the "atmel,flexcom-mode" |
| property. |
| |
| The phandle provided by the clocks property of the child is the same as one for |
| the Flexcom parent. |
| |
| For other properties, please refer to the documentations of the respective |
| device: |
| - ../serial/atmel-usart.txt |
| - ../spi/spi_atmel.txt |
| - ../i2c/i2c-at91.txt |
| |
| Example: |
| |
| flexcom@f8034000 { |
| compatible = "atmel,sama5d2-flexcom"; |
| reg = <0xf8034000 0x200>; |
| clocks = <&flx0_clk>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| ranges = <0x0 0xf8034000 0x800>; |
| atmel,flexcom-mode = <2>; |
| |
| spi@400 { |
| compatible = "atmel,at91rm9200-spi"; |
| reg = <0x400 0x200>; |
| interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_flx0_default>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| clocks = <&flx0_clk>; |
| clock-names = "spi_clk"; |
| atmel,fifo-size = <32>; |
| |
| mtd_dataflash@0 { |
| compatible = "atmel,at25f512b"; |
| reg = <0>; |
| spi-max-frequency = <20000000>; |
| }; |
| }; |
| }; |