1 # SPDX-License-Identifier: (GPL-2.0-only OR BS 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 # Copyright (C) 2022 Microchip Technology, Inc 2 # Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries 3 %YAML 1.2 3 %YAML 1.2 4 --- 4 --- 5 $id: http://devicetree.org/schemas/serial/atme 5 $id: http://devicetree.org/schemas/serial/atmel,at91-usart.yaml# 6 $schema: http://devicetree.org/meta-schemas/co 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 7 8 title: Atmel Universal Synchronous Asynchronou 8 title: Atmel Universal Synchronous Asynchronous Receiver/Transmitter (USART) 9 9 10 maintainers: 10 maintainers: 11 - Richard Genoud <richard.genoud@bootlin.com> !! 11 - Richard Genoud <richard.genoud@gmail.com> 12 12 13 properties: 13 properties: 14 compatible: 14 compatible: 15 oneOf: 15 oneOf: 16 - enum: 16 - enum: 17 - atmel,at91rm9200-usart 17 - atmel,at91rm9200-usart 18 - atmel,at91sam9260-usart 18 - atmel,at91sam9260-usart 19 - items: 19 - items: 20 - const: atmel,at91rm9200-dbgu 20 - const: atmel,at91rm9200-dbgu 21 - const: atmel,at91rm9200-usart 21 - const: atmel,at91rm9200-usart 22 - items: 22 - items: 23 - const: atmel,at91sam9260-dbgu 23 - const: atmel,at91sam9260-dbgu 24 - const: atmel,at91sam9260-usart 24 - const: atmel,at91sam9260-usart 25 - items: 25 - items: 26 - enum: !! 26 - const: microchip,sam9x60-usart 27 - microchip,sam9x60-usart << 28 - microchip,sam9x7-usart << 29 - const: atmel,at91sam9260-usart 27 - const: atmel,at91sam9260-usart 30 - items: 28 - items: 31 - const: microchip,sam9x60-dbgu 29 - const: microchip,sam9x60-dbgu 32 - const: microchip,sam9x60-usart 30 - const: microchip,sam9x60-usart 33 - const: atmel,at91sam9260-dbgu 31 - const: atmel,at91sam9260-dbgu 34 - const: atmel,at91sam9260-usart << 35 - items: << 36 - const: microchip,sam9x7-dbgu << 37 - const: atmel,at91sam9260-dbgu << 38 - const: microchip,sam9x7-usart << 39 - const: atmel,at91sam9260-usart 32 - const: atmel,at91sam9260-usart 40 33 41 reg: 34 reg: 42 maxItems: 1 35 maxItems: 1 43 36 44 interrupts: 37 interrupts: 45 maxItems: 1 38 maxItems: 1 46 39 47 clock-names: 40 clock-names: 48 minItems: 1 41 minItems: 1 49 items: 42 items: 50 - const: usart 43 - const: usart 51 - const: gclk 44 - const: gclk 52 45 53 clocks: 46 clocks: 54 minItems: 1 47 minItems: 1 55 items: 48 items: 56 - description: USART Peripheral Clock 49 - description: USART Peripheral Clock 57 - description: USART Generic Clock 50 - description: USART Generic Clock 58 51 59 dmas: 52 dmas: 60 items: 53 items: 61 - description: TX DMA Channel 54 - description: TX DMA Channel 62 - description: RX DMA Channel 55 - description: RX DMA Channel 63 56 64 dma-names: 57 dma-names: 65 items: 58 items: 66 - const: tx 59 - const: tx 67 - const: rx 60 - const: rx 68 61 69 atmel,usart-mode: 62 atmel,usart-mode: 70 $ref: /schemas/types.yaml#/definitions/uin 63 $ref: /schemas/types.yaml#/definitions/uint32 71 description: 64 description: 72 Must be either <AT91_USART_MODE_SPI> for 65 Must be either <AT91_USART_MODE_SPI> for SPI or 73 <AT91_USART_MODE_SERIAL> for USART (foun 66 <AT91_USART_MODE_SERIAL> for USART (found in dt-bindings/mfd/at91-usart.h). 74 enum: [ 0, 1 ] 67 enum: [ 0, 1 ] 75 68 76 atmel,use-dma-rx: 69 atmel,use-dma-rx: 77 type: boolean 70 type: boolean 78 description: use of PDC or DMA for receivi 71 description: use of PDC or DMA for receiving data 79 72 80 atmel,use-dma-tx: 73 atmel,use-dma-tx: 81 type: boolean 74 type: boolean 82 description: use of PDC or DMA for transmi 75 description: use of PDC or DMA for transmitting data 83 76 84 atmel,fifo-size: 77 atmel,fifo-size: 85 $ref: /schemas/types.yaml#/definitions/uin 78 $ref: /schemas/types.yaml#/definitions/uint32 86 description: 79 description: 87 Maximum number of data the RX and TX FIF 80 Maximum number of data the RX and TX FIFOs can store for FIFO 88 capable USARTS. 81 capable USARTS. 89 enum: [ 16, 32 ] 82 enum: [ 16, 32 ] 90 83 91 required: 84 required: 92 - compatible 85 - compatible 93 - reg 86 - reg 94 - interrupts 87 - interrupts 95 - clock-names 88 - clock-names 96 - clocks 89 - clocks 97 - atmel,usart-mode 90 - atmel,usart-mode 98 91 99 allOf: 92 allOf: 100 - if: 93 - if: 101 properties: 94 properties: 102 atmel,usart-mode: 95 atmel,usart-mode: 103 const: 1 96 const: 1 104 then: 97 then: 105 allOf: 98 allOf: 106 - $ref: /schemas/spi/spi-controller.ya 99 - $ref: /schemas/spi/spi-controller.yaml# 107 100 108 properties: 101 properties: 109 atmel,use-dma-rx: false 102 atmel,use-dma-rx: false 110 103 111 atmel,use-dma-tx: false 104 atmel,use-dma-tx: false 112 105 113 atmel,fifo-size: false 106 atmel,fifo-size: false 114 107 115 "#size-cells": 108 "#size-cells": 116 const: 0 109 const: 0 117 110 118 "#address-cells": 111 "#address-cells": 119 const: 1 112 const: 1 120 113 121 required: 114 required: 122 - "#size-cells" 115 - "#size-cells" 123 - "#address-cells" 116 - "#address-cells" 124 117 125 else: 118 else: 126 allOf: 119 allOf: 127 - $ref: /schemas/serial/serial.yaml# 120 - $ref: /schemas/serial/serial.yaml# 128 - $ref: /schemas/serial/rs485.yaml# 121 - $ref: /schemas/serial/rs485.yaml# 129 122 130 unevaluatedProperties: false 123 unevaluatedProperties: false 131 124 132 examples: 125 examples: 133 - | 126 - | 134 #include <dt-bindings/gpio/gpio.h> 127 #include <dt-bindings/gpio/gpio.h> 135 #include <dt-bindings/interrupt-controller 128 #include <dt-bindings/interrupt-controller/irq.h> 136 #include <dt-bindings/mfd/at91-usart.h> 129 #include <dt-bindings/mfd/at91-usart.h> 137 #include <dt-bindings/dma/at91.h> 130 #include <dt-bindings/dma/at91.h> 138 131 139 /* use PDC */ 132 /* use PDC */ 140 usart0: serial@fff8c000 { 133 usart0: serial@fff8c000 { 141 compatible = "atmel,at91sam9260-usart" 134 compatible = "atmel,at91sam9260-usart"; 142 reg = <0xfff8c000 0x4000>; 135 reg = <0xfff8c000 0x4000>; 143 atmel,usart-mode = <AT91_USART_MODE_SE 136 atmel,usart-mode = <AT91_USART_MODE_SERIAL>; 144 interrupts = <7>; 137 interrupts = <7>; 145 clocks = <&usart0_clk>; 138 clocks = <&usart0_clk>; 146 clock-names = "usart"; 139 clock-names = "usart"; 147 atmel,use-dma-rx; 140 atmel,use-dma-rx; 148 atmel,use-dma-tx; 141 atmel,use-dma-tx; 149 rts-gpios = <&pioD 15 GPIO_ACTIVE_LOW> 142 rts-gpios = <&pioD 15 GPIO_ACTIVE_LOW>; 150 cts-gpios = <&pioD 16 GPIO_ACTIVE_LOW> 143 cts-gpios = <&pioD 16 GPIO_ACTIVE_LOW>; 151 dtr-gpios = <&pioD 17 GPIO_ACTIVE_LOW> 144 dtr-gpios = <&pioD 17 GPIO_ACTIVE_LOW>; 152 dsr-gpios = <&pioD 18 GPIO_ACTIVE_LOW> 145 dsr-gpios = <&pioD 18 GPIO_ACTIVE_LOW>; 153 dcd-gpios = <&pioD 20 GPIO_ACTIVE_LOW> 146 dcd-gpios = <&pioD 20 GPIO_ACTIVE_LOW>; 154 rng-gpios = <&pioD 19 GPIO_ACTIVE_LOW> 147 rng-gpios = <&pioD 19 GPIO_ACTIVE_LOW>; 155 }; 148 }; 156 149 157 - | 150 - | 158 #include <dt-bindings/gpio/gpio.h> 151 #include <dt-bindings/gpio/gpio.h> 159 #include <dt-bindings/interrupt-controller 152 #include <dt-bindings/interrupt-controller/irq.h> 160 #include <dt-bindings/mfd/at91-usart.h> 153 #include <dt-bindings/mfd/at91-usart.h> 161 #include <dt-bindings/dma/at91.h> 154 #include <dt-bindings/dma/at91.h> 162 155 163 /* use DMA */ 156 /* use DMA */ 164 usart1: serial@f001c000 { 157 usart1: serial@f001c000 { 165 compatible = "atmel,at91sam9260-usart" 158 compatible = "atmel,at91sam9260-usart"; 166 reg = <0xf001c000 0x100>; 159 reg = <0xf001c000 0x100>; 167 atmel,usart-mode = <AT91_USART_MODE_SE 160 atmel,usart-mode = <AT91_USART_MODE_SERIAL>; 168 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 5 161 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 5>; 169 clocks = <&usart0_clk>; 162 clocks = <&usart0_clk>; 170 clock-names = "usart"; 163 clock-names = "usart"; 171 atmel,use-dma-rx; 164 atmel,use-dma-rx; 172 atmel,use-dma-tx; 165 atmel,use-dma-tx; 173 dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(3) 166 dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(3)>, 174 <&dma0 2 (AT91_DMA_CFG_PER_ID(4 167 <&dma0 2 (AT91_DMA_CFG_PER_ID(4) | AT91_DMA_CFG_FIFOCFG_ASAP)>; 175 dma-names = "tx", "rx"; 168 dma-names = "tx", "rx"; 176 atmel,fifo-size = <32>; 169 atmel,fifo-size = <32>; 177 }; 170 }; 178 171 179 - | 172 - | 180 #include <dt-bindings/gpio/gpio.h> 173 #include <dt-bindings/gpio/gpio.h> 181 #include <dt-bindings/interrupt-controller 174 #include <dt-bindings/interrupt-controller/irq.h> 182 #include <dt-bindings/mfd/at91-usart.h> 175 #include <dt-bindings/mfd/at91-usart.h> 183 #include <dt-bindings/dma/at91.h> 176 #include <dt-bindings/dma/at91.h> 184 177 185 /* SPI mode */ 178 /* SPI mode */ 186 spi0: spi@f001c000 { 179 spi0: spi@f001c000 { 187 compatible = "atmel,at91sam9260-usart" 180 compatible = "atmel,at91sam9260-usart"; 188 reg = <0xf001c000 0x100>; 181 reg = <0xf001c000 0x100>; 189 #address-cells = <1>; 182 #address-cells = <1>; 190 #size-cells = <0>; 183 #size-cells = <0>; 191 atmel,usart-mode = <AT91_USART_MODE_SP 184 atmel,usart-mode = <AT91_USART_MODE_SPI>; 192 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 5 185 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 5>; 193 clocks = <&usart0_clk>; 186 clocks = <&usart0_clk>; 194 clock-names = "usart"; 187 clock-names = "usart"; 195 dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(3) 188 dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(3)>, 196 <&dma0 2 (AT91_DMA_CFG_PER_ID(4 189 <&dma0 2 (AT91_DMA_CFG_PER_ID(4) | AT91_DMA_CFG_FIFOCFG_ASAP)>; 197 dma-names = "tx", "rx"; 190 dma-names = "tx", "rx"; 198 cs-gpios = <&pioB 3 GPIO_ACTIVE_HIGH>; 191 cs-gpios = <&pioB 3 GPIO_ACTIVE_HIGH>; 199 }; 192 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.