1e69f5dc6SLubomir Rintel# Copyright 2020 Lubomir Rintel <lkundrak@v3.sk> 2e69f5dc6SLubomir Rintel%YAML 1.2 3e69f5dc6SLubomir Rintel--- 4e69f5dc6SLubomir Rintel$id: http://devicetree.org/schemas/serial/8250.yaml# 5e69f5dc6SLubomir Rintel$schema: http://devicetree.org/meta-schemas/core.yaml# 6e69f5dc6SLubomir Rintel 784e85359SKrzysztof Kozlowskititle: UART (Universal Asynchronous Receiver/Transmitter) 8e69f5dc6SLubomir Rintel 9e69f5dc6SLubomir Rintelmaintainers: 10e69f5dc6SLubomir Rintel - devicetree@vger.kernel.org 11e69f5dc6SLubomir Rintel 12e69f5dc6SLubomir RintelallOf: 138f082dcfSZhen Lei - $ref: serial.yaml# 14*770ba14bSKrzysztof Kozlowski - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml# 15e69f5dc6SLubomir Rintel - if: 16845766b6SZev Weiss anyOf: 17845766b6SZev Weiss - required: 18845766b6SZev Weiss - aspeed,lpc-io-reg 19845766b6SZev Weiss - required: 20845766b6SZev Weiss - aspeed,lpc-interrupts 21845766b6SZev Weiss - required: 22e69f5dc6SLubomir Rintel - aspeed,sirq-polarity-sense 23e69f5dc6SLubomir Rintel then: 24e69f5dc6SLubomir Rintel properties: 25e69f5dc6SLubomir Rintel compatible: 26e69f5dc6SLubomir Rintel const: aspeed,ast2500-vuart 27e69f5dc6SLubomir Rintel - if: 28e69f5dc6SLubomir Rintel properties: 29e69f5dc6SLubomir Rintel compatible: 30e69f5dc6SLubomir Rintel const: mrvl,mmp-uart 31e69f5dc6SLubomir Rintel then: 32e69f5dc6SLubomir Rintel properties: 33e69f5dc6SLubomir Rintel reg-shift: 34e69f5dc6SLubomir Rintel const: 2 35e69f5dc6SLubomir Rintel required: 36e69f5dc6SLubomir Rintel - reg-shift 37e69f5dc6SLubomir Rintel - if: 38e69f5dc6SLubomir Rintel not: 39e69f5dc6SLubomir Rintel properties: 40e69f5dc6SLubomir Rintel compatible: 41e69f5dc6SLubomir Rintel items: 42e69f5dc6SLubomir Rintel - enum: 43e69f5dc6SLubomir Rintel - ns8250 44e69f5dc6SLubomir Rintel - ns16450 45e69f5dc6SLubomir Rintel - ns16550 46e69f5dc6SLubomir Rintel - ns16550a 47e69f5dc6SLubomir Rintel then: 48e69f5dc6SLubomir Rintel anyOf: 49e69f5dc6SLubomir Rintel - required: [ clock-frequency ] 50e69f5dc6SLubomir Rintel - required: [ clocks ] 51e69f5dc6SLubomir Rintel 52e69f5dc6SLubomir Rintelproperties: 53e69f5dc6SLubomir Rintel compatible: 54e69f5dc6SLubomir Rintel oneOf: 55e69f5dc6SLubomir Rintel - const: ns8250 56e69f5dc6SLubomir Rintel - const: ns16450 57e69f5dc6SLubomir Rintel - const: ns16550 58e69f5dc6SLubomir Rintel - const: ns16550a 59e69f5dc6SLubomir Rintel - const: ns16850 60e69f5dc6SLubomir Rintel - const: aspeed,ast2400-vuart 61e69f5dc6SLubomir Rintel - const: aspeed,ast2500-vuart 62e69f5dc6SLubomir Rintel - const: intel,xscale-uart 63e69f5dc6SLubomir Rintel - const: mrvl,pxa-uart 643ece873eSJonathan Neuschäfer - const: nuvoton,wpcm450-uart 65e69f5dc6SLubomir Rintel - const: nuvoton,npcm750-uart 66e69f5dc6SLubomir Rintel - const: nvidia,tegra20-uart 67e69f5dc6SLubomir Rintel - const: nxp,lpc3220-uart 68e69f5dc6SLubomir Rintel - items: 69e69f5dc6SLubomir Rintel - enum: 70f444f34bSLinus Walleij - exar,xr16l2552 71f444f34bSLinus Walleij - exar,xr16l2551 72f444f34bSLinus Walleij - exar,xr16l2550 73f444f34bSLinus Walleij - const: ns8250 74f444f34bSLinus Walleij - items: 75f444f34bSLinus Walleij - enum: 76e69f5dc6SLubomir Rintel - altr,16550-FIFO32 77e69f5dc6SLubomir Rintel - altr,16550-FIFO64 78e69f5dc6SLubomir Rintel - altr,16550-FIFO128 79e69f5dc6SLubomir Rintel - fsl,16550-FIFO64 80e69f5dc6SLubomir Rintel - fsl,ns16550 81e69f5dc6SLubomir Rintel - andestech,uart16550 82e69f5dc6SLubomir Rintel - nxp,lpc1850-uart 83e69f5dc6SLubomir Rintel - opencores,uart16550-rtlsvn105 84e69f5dc6SLubomir Rintel - ti,da830-uart 85e69f5dc6SLubomir Rintel - const: ns16550a 86e69f5dc6SLubomir Rintel - items: 87e69f5dc6SLubomir Rintel - enum: 88e69f5dc6SLubomir Rintel - ns16750 89e69f5dc6SLubomir Rintel - cavium,octeon-3860-uart 90e69f5dc6SLubomir Rintel - xlnx,xps-uart16550-2.00.b 91e69f5dc6SLubomir Rintel - ralink,rt2880-uart 92e69f5dc6SLubomir Rintel - enum: 93e69f5dc6SLubomir Rintel - ns16550 # Deprecated, unless the FIFO really is broken 94e69f5dc6SLubomir Rintel - ns16550a 95e69f5dc6SLubomir Rintel - items: 96e69f5dc6SLubomir Rintel - enum: 97531f1ca4SKrzysztof Kozlowski - nuvoton,npcm845-uart 98531f1ca4SKrzysztof Kozlowski - const: nuvoton,npcm750-uart 99531f1ca4SKrzysztof Kozlowski - items: 100531f1ca4SKrzysztof Kozlowski - enum: 101e69f5dc6SLubomir Rintel - ralink,mt7620a-uart 102e69f5dc6SLubomir Rintel - ralink,rt3052-uart 103e69f5dc6SLubomir Rintel - ralink,rt3883-uart 104e69f5dc6SLubomir Rintel - const: ralink,rt2880-uart 105e69f5dc6SLubomir Rintel - enum: 106e69f5dc6SLubomir Rintel - ns16550 # Deprecated, unless the FIFO really is broken 107e69f5dc6SLubomir Rintel - ns16550a 108e69f5dc6SLubomir Rintel - items: 109e69f5dc6SLubomir Rintel - enum: 110e69f5dc6SLubomir Rintel - mediatek,mt7622-btif 111e69f5dc6SLubomir Rintel - mediatek,mt7623-btif 112e69f5dc6SLubomir Rintel - const: mediatek,mtk-btif 113e69f5dc6SLubomir Rintel - items: 114e69f5dc6SLubomir Rintel - const: mrvl,mmp-uart 115e69f5dc6SLubomir Rintel - const: intel,xscale-uart 116e69f5dc6SLubomir Rintel - items: 117e69f5dc6SLubomir Rintel - enum: 118e69f5dc6SLubomir Rintel - nvidia,tegra30-uart 119e69f5dc6SLubomir Rintel - nvidia,tegra114-uart 120e69f5dc6SLubomir Rintel - nvidia,tegra124-uart 12196b594d2SThierry Reding - nvidia,tegra210-uart 122e69f5dc6SLubomir Rintel - nvidia,tegra186-uart 123e69f5dc6SLubomir Rintel - nvidia,tegra194-uart 12496b594d2SThierry Reding - nvidia,tegra234-uart 125e69f5dc6SLubomir Rintel - const: nvidia,tegra20-uart 126e69f5dc6SLubomir Rintel 127e69f5dc6SLubomir Rintel reg: 128e69f5dc6SLubomir Rintel maxItems: 1 129e69f5dc6SLubomir Rintel 130e69f5dc6SLubomir Rintel interrupts: 131e69f5dc6SLubomir Rintel maxItems: 1 132e69f5dc6SLubomir Rintel 133e69f5dc6SLubomir Rintel clock-frequency: true 134e69f5dc6SLubomir Rintel 135e69f5dc6SLubomir Rintel clocks: 136e69f5dc6SLubomir Rintel maxItems: 1 137e69f5dc6SLubomir Rintel 138e69f5dc6SLubomir Rintel resets: 139e69f5dc6SLubomir Rintel maxItems: 1 140e69f5dc6SLubomir Rintel 141e69f5dc6SLubomir Rintel current-speed: 142d69c6dddSRob Herring $ref: /schemas/types.yaml#/definitions/uint32 143e69f5dc6SLubomir Rintel description: The current active speed of the UART. 144e69f5dc6SLubomir Rintel 145e69f5dc6SLubomir Rintel reg-offset: 1464e71ed98SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 147e69f5dc6SLubomir Rintel description: | 148e69f5dc6SLubomir Rintel Offset to apply to the mapbase from the start of the registers. 149e69f5dc6SLubomir Rintel 150e69f5dc6SLubomir Rintel reg-shift: 151e69f5dc6SLubomir Rintel description: Quantity to shift the register offsets by. 152e69f5dc6SLubomir Rintel 153e69f5dc6SLubomir Rintel reg-io-width: 154e69f5dc6SLubomir Rintel description: | 155e69f5dc6SLubomir Rintel The size (in bytes) of the IO accesses that should be performed on the 156e69f5dc6SLubomir Rintel device. There are some systems that require 32-bit accesses to the 157e69f5dc6SLubomir Rintel UART (e.g. TI davinci). 158e69f5dc6SLubomir Rintel 159e69f5dc6SLubomir Rintel used-by-rtas: 160e69f5dc6SLubomir Rintel type: boolean 161e69f5dc6SLubomir Rintel description: | 162e69f5dc6SLubomir Rintel Set to indicate that the port is in use by the OpenFirmware RTAS and 163e69f5dc6SLubomir Rintel should not be registered. 164e69f5dc6SLubomir Rintel 165e69f5dc6SLubomir Rintel no-loopback-test: 166e69f5dc6SLubomir Rintel type: boolean 167e69f5dc6SLubomir Rintel description: | 168e69f5dc6SLubomir Rintel Set to indicate that the port does not implement loopback test mode. 169e69f5dc6SLubomir Rintel 170e69f5dc6SLubomir Rintel fifo-size: 171d69c6dddSRob Herring $ref: /schemas/types.yaml#/definitions/uint32 172e69f5dc6SLubomir Rintel description: The fifo size of the UART. 173e69f5dc6SLubomir Rintel 174e69f5dc6SLubomir Rintel auto-flow-control: 175e69f5dc6SLubomir Rintel type: boolean 176e69f5dc6SLubomir Rintel description: | 177e69f5dc6SLubomir Rintel One way to enable automatic flow control support. The driver is 178e69f5dc6SLubomir Rintel allowed to detect support for the capability even without this 179e69f5dc6SLubomir Rintel property. 180e69f5dc6SLubomir Rintel 181e69f5dc6SLubomir Rintel tx-threshold: 182e69f5dc6SLubomir Rintel description: | 183e69f5dc6SLubomir Rintel Specify the TX FIFO low water indication for parts with programmable 184e69f5dc6SLubomir Rintel TX FIFO thresholds. 185e69f5dc6SLubomir Rintel 186e69f5dc6SLubomir Rintel overrun-throttle-ms: 187e69f5dc6SLubomir Rintel description: | 188e69f5dc6SLubomir Rintel How long to pause uart rx when input overrun is encountered. 189e69f5dc6SLubomir Rintel 190e69f5dc6SLubomir Rintel rts-gpios: true 191e69f5dc6SLubomir Rintel cts-gpios: true 192e69f5dc6SLubomir Rintel dtr-gpios: true 193e69f5dc6SLubomir Rintel dsr-gpios: true 194e69f5dc6SLubomir Rintel rng-gpios: true 195e69f5dc6SLubomir Rintel dcd-gpios: true 196e69f5dc6SLubomir Rintel 197e69f5dc6SLubomir Rintel aspeed,sirq-polarity-sense: 198e69f5dc6SLubomir Rintel $ref: /schemas/types.yaml#/definitions/phandle-array 199e69f5dc6SLubomir Rintel description: | 200e69f5dc6SLubomir Rintel Phandle to aspeed,ast2500-scu compatible syscon alongside register 201e69f5dc6SLubomir Rintel offset and bit number to identify how the SIRQ polarity should be 202e69f5dc6SLubomir Rintel configured. One possible data source is the LPC/eSPI mode bit. Only 203e69f5dc6SLubomir Rintel applicable to aspeed,ast2500-vuart. 204a13df3beSZev Weiss deprecated: true 205e69f5dc6SLubomir Rintel 206845766b6SZev Weiss aspeed,lpc-io-reg: 207eec2c477SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32-array 208436eae7eSRob Herring maxItems: 1 209845766b6SZev Weiss description: | 210845766b6SZev Weiss The VUART LPC address. Only applicable to aspeed,ast2500-vuart. 211845766b6SZev Weiss 212845766b6SZev Weiss aspeed,lpc-interrupts: 213eec2c477SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32-array 214845766b6SZev Weiss minItems: 2 215845766b6SZev Weiss maxItems: 2 216845766b6SZev Weiss description: | 217845766b6SZev Weiss A 2-cell property describing the VUART SIRQ number and SIRQ 218845766b6SZev Weiss polarity (IRQ_TYPE_LEVEL_LOW or IRQ_TYPE_LEVEL_HIGH). Only 219845766b6SZev Weiss applicable to aspeed,ast2500-vuart. 220845766b6SZev Weiss 221e69f5dc6SLubomir Rintelrequired: 222e69f5dc6SLubomir Rintel - reg 223e69f5dc6SLubomir Rintel - interrupts 224e69f5dc6SLubomir Rintel 225e69f5dc6SLubomir RintelunevaluatedProperties: false 226e69f5dc6SLubomir Rintel 227e69f5dc6SLubomir Rintelexamples: 228e69f5dc6SLubomir Rintel - | 229e69f5dc6SLubomir Rintel serial@80230000 { 230e69f5dc6SLubomir Rintel compatible = "ns8250"; 231e69f5dc6SLubomir Rintel reg = <0x80230000 0x100>; 232e69f5dc6SLubomir Rintel interrupts = <10>; 233e69f5dc6SLubomir Rintel reg-shift = <2>; 234e69f5dc6SLubomir Rintel clock-frequency = <48000000>; 235e69f5dc6SLubomir Rintel }; 236e69f5dc6SLubomir Rintel - | 237e69f5dc6SLubomir Rintel #include <dt-bindings/gpio/gpio.h> 238e69f5dc6SLubomir Rintel serial@49042000 { 239e69f5dc6SLubomir Rintel compatible = "andestech,uart16550", "ns16550a"; 240e69f5dc6SLubomir Rintel reg = <0x49042000 0x400>; 241e69f5dc6SLubomir Rintel interrupts = <80>; 242e69f5dc6SLubomir Rintel clock-frequency = <48000000>; 243e69f5dc6SLubomir Rintel cts-gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; 244e69f5dc6SLubomir Rintel rts-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>; 245e69f5dc6SLubomir Rintel dtr-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; 246e69f5dc6SLubomir Rintel dsr-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; 247e69f5dc6SLubomir Rintel dcd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; 248e69f5dc6SLubomir Rintel rng-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; 249e69f5dc6SLubomir Rintel }; 250e69f5dc6SLubomir Rintel - | 251e69f5dc6SLubomir Rintel #include <dt-bindings/clock/aspeed-clock.h> 252845766b6SZev Weiss #include <dt-bindings/interrupt-controller/irq.h> 253e69f5dc6SLubomir Rintel serial@1e787000 { 254e69f5dc6SLubomir Rintel compatible = "aspeed,ast2500-vuart"; 255e69f5dc6SLubomir Rintel reg = <0x1e787000 0x40>; 256e69f5dc6SLubomir Rintel reg-shift = <2>; 257e69f5dc6SLubomir Rintel interrupts = <8>; 258e69f5dc6SLubomir Rintel clocks = <&syscon ASPEED_CLK_APB>; 259e69f5dc6SLubomir Rintel no-loopback-test; 260845766b6SZev Weiss aspeed,lpc-io-reg = <0x3f8>; 261845766b6SZev Weiss aspeed,lpc-interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 262e69f5dc6SLubomir Rintel }; 263e69f5dc6SLubomir Rintel 264e69f5dc6SLubomir Rintel... 265