1# Copyright 2020 Lubomir Rintel <lkundrak@v3.sk> 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/serial/8250.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: UART (Universal Asynchronous Receiver/Transmitter) bindings 8 9maintainers: 10 - devicetree@vger.kernel.org 11 12allOf: 13 - $ref: /schemas/serial.yaml# 14 - if: 15 required: 16 - aspeed,sirq-polarity-sense 17 then: 18 properties: 19 compatible: 20 const: aspeed,ast2500-vuart 21 - if: 22 properties: 23 compatible: 24 const: mrvl,mmp-uart 25 then: 26 properties: 27 reg-shift: 28 const: 2 29 required: 30 - reg-shift 31 - if: 32 not: 33 properties: 34 compatible: 35 items: 36 - enum: 37 - ns8250 38 - ns16450 39 - ns16550 40 - ns16550a 41 then: 42 anyOf: 43 - required: [ clock-frequency ] 44 - required: [ clocks ] 45 46properties: 47 compatible: 48 oneOf: 49 - const: ns8250 50 - const: ns16450 51 - const: ns16550 52 - const: ns16550a 53 - const: ns16850 54 - const: aspeed,ast2400-vuart 55 - const: aspeed,ast2500-vuart 56 - const: intel,xscale-uart 57 - const: mrvl,pxa-uart 58 - const: nuvoton,npcm750-uart 59 - const: nvidia,tegra20-uart 60 - const: nxp,lpc3220-uart 61 - items: 62 - enum: 63 - altr,16550-FIFO32 64 - altr,16550-FIFO64 65 - altr,16550-FIFO128 66 - fsl,16550-FIFO64 67 - fsl,ns16550 68 - andestech,uart16550 69 - nxp,lpc1850-uart 70 - opencores,uart16550-rtlsvn105 71 - ti,da830-uart 72 - const: ns16550a 73 - items: 74 - enum: 75 - ns16750 76 - cavium,octeon-3860-uart 77 - xlnx,xps-uart16550-2.00.b 78 - ralink,rt2880-uart 79 - enum: 80 - ns16550 # Deprecated, unless the FIFO really is broken 81 - ns16550a 82 - items: 83 - enum: 84 - ralink,mt7620a-uart 85 - ralink,rt3052-uart 86 - ralink,rt3883-uart 87 - const: ralink,rt2880-uart 88 - enum: 89 - ns16550 # Deprecated, unless the FIFO really is broken 90 - ns16550a 91 - items: 92 - enum: 93 - mediatek,mt7622-btif 94 - mediatek,mt7623-btif 95 - const: mediatek,mtk-btif 96 - items: 97 - enum: 98 - mediatek,mt7622-btif 99 - mediatek,mt7623-btif 100 - const: mediatek,mtk-btif 101 - items: 102 - const: mrvl,mmp-uart 103 - const: intel,xscale-uart 104 - items: 105 - enum: 106 - nvidia,tegra30-uart 107 - nvidia,tegra114-uart 108 - nvidia,tegra124-uart 109 - nvidia,tegra186-uart 110 - nvidia,tegra194-uart 111 - nvidia,tegra210-uart 112 - const: nvidia,tegra20-uart 113 114 reg: 115 maxItems: 1 116 117 interrupts: 118 maxItems: 1 119 120 clock-frequency: true 121 122 clocks: 123 maxItems: 1 124 125 resets: 126 maxItems: 1 127 128 current-speed: 129 $ref: /schemas/types.yaml#/definitions/uint32 130 description: The current active speed of the UART. 131 132 reg-offset: 133 description: | 134 Offset to apply to the mapbase from the start of the registers. 135 136 reg-shift: 137 description: Quantity to shift the register offsets by. 138 139 reg-io-width: 140 description: | 141 The size (in bytes) of the IO accesses that should be performed on the 142 device. There are some systems that require 32-bit accesses to the 143 UART (e.g. TI davinci). 144 145 used-by-rtas: 146 type: boolean 147 description: | 148 Set to indicate that the port is in use by the OpenFirmware RTAS and 149 should not be registered. 150 151 no-loopback-test: 152 type: boolean 153 description: | 154 Set to indicate that the port does not implement loopback test mode. 155 156 fifo-size: 157 $ref: /schemas/types.yaml#/definitions/uint32 158 description: The fifo size of the UART. 159 160 auto-flow-control: 161 type: boolean 162 description: | 163 One way to enable automatic flow control support. The driver is 164 allowed to detect support for the capability even without this 165 property. 166 167 tx-threshold: 168 $ref: /schemas/types.yaml#/definitions/uint32 169 description: | 170 Specify the TX FIFO low water indication for parts with programmable 171 TX FIFO thresholds. 172 173 overrun-throttle-ms: 174 description: | 175 How long to pause uart rx when input overrun is encountered. 176 177 rts-gpios: true 178 cts-gpios: true 179 dtr-gpios: true 180 dsr-gpios: true 181 rng-gpios: true 182 dcd-gpios: true 183 184 aspeed,sirq-polarity-sense: 185 $ref: /schemas/types.yaml#/definitions/phandle-array 186 description: | 187 Phandle to aspeed,ast2500-scu compatible syscon alongside register 188 offset and bit number to identify how the SIRQ polarity should be 189 configured. One possible data source is the LPC/eSPI mode bit. Only 190 applicable to aspeed,ast2500-vuart. 191 192required: 193 - reg 194 - interrupts 195 196unevaluatedProperties: false 197 198examples: 199 - | 200 serial@80230000 { 201 compatible = "ns8250"; 202 reg = <0x80230000 0x100>; 203 interrupts = <10>; 204 reg-shift = <2>; 205 clock-frequency = <48000000>; 206 }; 207 - | 208 #include <dt-bindings/gpio/gpio.h> 209 serial@49042000 { 210 compatible = "andestech,uart16550", "ns16550a"; 211 reg = <0x49042000 0x400>; 212 interrupts = <80>; 213 clock-frequency = <48000000>; 214 cts-gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; 215 rts-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>; 216 dtr-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; 217 dsr-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; 218 dcd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; 219 rng-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; 220 }; 221 - | 222 #include <dt-bindings/clock/aspeed-clock.h> 223 serial@1e787000 { 224 compatible = "aspeed,ast2500-vuart"; 225 reg = <0x1e787000 0x40>; 226 reg-shift = <2>; 227 interrupts = <8>; 228 clocks = <&syscon ASPEED_CLK_APB>; 229 no-loopback-test; 230 aspeed,sirq-polarity-sense = <&syscon 0x70 25>; 231 }; 232 233... 234