1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/serial/nxp,sc16is7xx.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP SC16IS7xx Advanced Universal Asynchronous Receiver-Transmitter (UART)
8
9maintainers:
10  - Hugo Villeneuve <[email protected]>
11
12properties:
13  compatible:
14    enum:
15      - nxp,sc16is740
16      - nxp,sc16is741
17      - nxp,sc16is750
18      - nxp,sc16is752
19      - nxp,sc16is760
20      - nxp,sc16is762
21
22  reg:
23    maxItems: 1
24
25  interrupts:
26    description:
27      When missing, device driver uses polling instead.
28    maxItems: 1
29
30  clocks:
31    maxItems: 1
32
33  reset-gpios:
34    maxItems: 1
35
36  clock-frequency:
37    description:
38      When there is no clock provider visible to the platform, this
39      is the source crystal or external clock frequency for the IC in Hz.
40    minimum: 1
41    maximum: 80000000
42
43  gpio-controller: true
44
45  "#gpio-cells":
46    const: 2
47
48  gpio-line-names:
49    minItems: 1
50    maxItems: 8
51
52  irda-mode-ports:
53    description: |
54      An array that lists the indices of the port that should operate in IrDA
55      mode:
56      0: port A
57      1: port B
58    $ref: /schemas/types.yaml#/definitions/uint32-array
59    minItems: 1
60    maxItems: 2
61    items:
62      minimum: 0
63      maximum: 1
64
65  nxp,modem-control-line-ports:
66    description: |
67      An array that lists the indices of the port that should have shared GPIO
68      lines configured as modem control lines:
69      0: port A
70      1: port B
71    $ref: /schemas/types.yaml#/definitions/uint32-array
72    minItems: 1
73    maxItems: 2
74    items:
75      minimum: 0
76      maximum: 1
77
78required:
79  - compatible
80  - reg
81
82allOf:
83  - $ref: /schemas/spi/spi-peripheral-props.yaml#
84  - $ref: /schemas/serial/serial.yaml#
85  - $ref: /schemas/serial/rs485.yaml#
86
87oneOf:
88  - required:
89      - clocks
90  - required:
91      - clock-frequency
92
93unevaluatedProperties: false
94
95examples:
96  - |
97    #include <dt-bindings/interrupt-controller/irq.h>
98    #include <dt-bindings/gpio/gpio.h>
99    i2c {
100        #address-cells = <1>;
101        #size-cells = <0>;
102
103        serial@51 {
104            compatible = "nxp,sc16is750";
105            reg = <0x51>;
106            clocks = <&clk20m>;
107            interrupt-parent = <&gpio3>;
108            interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
109            gpio-controller;
110            #gpio-cells = <2>;
111        };
112
113        serial@53 {
114            compatible = "nxp,sc16is752";
115            reg = <0x53>;
116            clocks = <&clk20m>;
117            interrupt-parent = <&gpio3>;
118            interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
119            nxp,modem-control-line-ports = <1>; /* Port 1 as modem control lines */
120            gpio-controller; /* Port 0 as GPIOs */
121            #gpio-cells = <2>;
122        };
123
124        serial@54 {
125            compatible = "nxp,sc16is752";
126            reg = <0x54>;
127            clocks = <&clk20m>;
128            reset-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
129            interrupt-parent = <&gpio3>;
130            interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
131            nxp,modem-control-line-ports = <0 1>; /* Ports 0 and 1 as modem control lines */
132        };
133    };
134