| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- # Copyright 2020 Lubomir Rintel <lkundrak@v3.sk>
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/serial/8250.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: UART (Universal Asynchronous Receiver/Transmitter)
- maintainers:
- - devicetree@vger.kernel.org
- allOf:
- - $ref: serial.yaml#
- - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml#
- - if:
- anyOf:
- - required:
- - aspeed,lpc-io-reg
- - required:
- - aspeed,lpc-interrupts
- - required:
- - aspeed,sirq-polarity-sense
- then:
- properties:
- compatible:
- const: aspeed,ast2500-vuart
- - if:
- properties:
- compatible:
- const: mrvl,mmp-uart
- then:
- properties:
- reg-shift:
- const: 2
- required:
- - reg-shift
- - if:
- not:
- properties:
- compatible:
- items:
- - enum:
- - ns8250
- - ns16450
- - ns16550
- - ns16550a
- then:
- oneOf:
- - required: [ clock-frequency ]
- - required: [ clocks ]
- properties:
- compatible:
- oneOf:
- - const: ns8250
- - const: ns16450
- - const: ns16550
- - const: ns16550a
- - const: ns16850
- - const: aspeed,ast2400-vuart
- - const: aspeed,ast2500-vuart
- - const: intel,xscale-uart
- - const: mrvl,pxa-uart
- - const: nuvoton,wpcm450-uart
- - const: nuvoton,npcm750-uart
- - const: nvidia,tegra20-uart
- - const: nxp,lpc3220-uart
- - items:
- - enum:
- - exar,xr16l2552
- - exar,xr16l2551
- - exar,xr16l2550
- - const: ns8250
- - items:
- - enum:
- - altr,16550-FIFO32
- - altr,16550-FIFO64
- - altr,16550-FIFO128
- - fsl,16550-FIFO64
- - fsl,ns16550
- - andestech,uart16550
- - nxp,lpc1850-uart
- - opencores,uart16550-rtlsvn105
- - ti,da830-uart
- - const: ns16550a
- - items:
- - enum:
- - ns16750
- - cavium,octeon-3860-uart
- - xlnx,xps-uart16550-2.00.b
- - ralink,rt2880-uart
- - enum:
- - ns16550 # Deprecated, unless the FIFO really is broken
- - ns16550a
- - items:
- - enum:
- - nuvoton,npcm845-uart
- - const: nuvoton,npcm750-uart
- - items:
- - enum:
- - ralink,mt7620a-uart
- - ralink,rt3052-uart
- - ralink,rt3883-uart
- - const: ralink,rt2880-uart
- - enum:
- - ns16550 # Deprecated, unless the FIFO really is broken
- - ns16550a
- - items:
- - enum:
- - mediatek,mt7622-btif
- - mediatek,mt7623-btif
- - const: mediatek,mtk-btif
- - items:
- - const: mrvl,mmp-uart
- - const: intel,xscale-uart
- - items:
- - enum:
- - nvidia,tegra30-uart
- - nvidia,tegra114-uart
- - nvidia,tegra124-uart
- - nvidia,tegra210-uart
- - nvidia,tegra186-uart
- - nvidia,tegra194-uart
- - nvidia,tegra234-uart
- - const: nvidia,tegra20-uart
- reg:
- maxItems: 1
- interrupts:
- maxItems: 1
- clock-frequency: true
- clocks:
- maxItems: 1
- resets:
- maxItems: 1
- current-speed:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: The current active speed of the UART.
- reg-offset:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: |
- Offset to apply to the mapbase from the start of the registers.
- reg-shift:
- description: Quantity to shift the register offsets by.
- reg-io-width:
- description: |
- The size (in bytes) of the IO accesses that should be performed on the
- device. There are some systems that require 32-bit accesses to the
- UART (e.g. TI davinci).
- used-by-rtas:
- type: boolean
- description: |
- Set to indicate that the port is in use by the OpenFirmware RTAS and
- should not be registered.
- no-loopback-test:
- type: boolean
- description: |
- Set to indicate that the port does not implement loopback test mode.
- fifo-size:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: The fifo size of the UART.
- auto-flow-control:
- type: boolean
- description: |
- One way to enable automatic flow control support. The driver is
- allowed to detect support for the capability even without this
- property.
- tx-threshold:
- description: |
- Specify the TX FIFO low water indication for parts with programmable
- TX FIFO thresholds.
- overrun-throttle-ms:
- description: |
- How long to pause uart rx when input overrun is encountered.
- rts-gpios: true
- cts-gpios: true
- dtr-gpios: true
- dsr-gpios: true
- rng-gpios: true
- dcd-gpios: true
- aspeed,sirq-polarity-sense:
- $ref: /schemas/types.yaml#/definitions/phandle-array
- description: |
- Phandle to aspeed,ast2500-scu compatible syscon alongside register
- offset and bit number to identify how the SIRQ polarity should be
- configured. One possible data source is the LPC/eSPI mode bit. Only
- applicable to aspeed,ast2500-vuart.
- deprecated: true
- aspeed,lpc-io-reg:
- $ref: /schemas/types.yaml#/definitions/uint32-array
- maxItems: 1
- description: |
- The VUART LPC address. Only applicable to aspeed,ast2500-vuart.
- aspeed,lpc-interrupts:
- $ref: /schemas/types.yaml#/definitions/uint32-array
- minItems: 2
- maxItems: 2
- description: |
- A 2-cell property describing the VUART SIRQ number and SIRQ
- polarity (IRQ_TYPE_LEVEL_LOW or IRQ_TYPE_LEVEL_HIGH). Only
- applicable to aspeed,ast2500-vuart.
- required:
- - reg
- - interrupts
- unevaluatedProperties: false
- examples:
- - |
- serial@80230000 {
- compatible = "ns8250";
- reg = <0x80230000 0x100>;
- interrupts = <10>;
- reg-shift = <2>;
- clock-frequency = <48000000>;
- };
- - |
- #include <dt-bindings/gpio/gpio.h>
- serial@49042000 {
- compatible = "andestech,uart16550", "ns16550a";
- reg = <0x49042000 0x400>;
- interrupts = <80>;
- clock-frequency = <48000000>;
- cts-gpios = <&gpio3 5 GPIO_ACTIVE_LOW>;
- rts-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
- dtr-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
- dsr-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
- dcd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
- rng-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
- };
- - |
- #include <dt-bindings/clock/aspeed-clock.h>
- #include <dt-bindings/interrupt-controller/irq.h>
- serial@1e787000 {
- compatible = "aspeed,ast2500-vuart";
- reg = <0x1e787000 0x40>;
- reg-shift = <2>;
- interrupts = <8>;
- clocks = <&syscon ASPEED_CLK_APB>;
- no-loopback-test;
- aspeed,lpc-io-reg = <0x3f8>;
- aspeed,lpc-interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
- };
- ...
|