0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: "http://devicetree.org/schemas/serial/renesas,scif.yaml#"
0005 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0006
0007 title: Renesas Serial Communication Interface with FIFO (SCIF)
0008
0009 maintainers:
0010 - Geert Uytterhoeven <geert+renesas@glider.be>
0011
0012 allOf:
0013 - $ref: serial.yaml#
0014
0015 properties:
0016 compatible:
0017 oneOf:
0018 - items:
0019 - enum:
0020 - renesas,scif-r7s72100 # RZ/A1H
0021 - const: renesas,scif # generic SCIF compatible UART
0022
0023 - items:
0024 - enum:
0025 - renesas,scif-r7s9210 # RZ/A2
0026
0027 - items:
0028 - enum:
0029 - renesas,scif-r8a7778 # R-Car M1
0030 - renesas,scif-r8a7779 # R-Car H1
0031 - const: renesas,rcar-gen1-scif # R-Car Gen1
0032 - const: renesas,scif # generic SCIF compatible UART
0033
0034 - items:
0035 - enum:
0036 - renesas,scif-r8a7742 # RZ/G1H
0037 - renesas,scif-r8a7743 # RZ/G1M
0038 - renesas,scif-r8a7744 # RZ/G1N
0039 - renesas,scif-r8a7745 # RZ/G1E
0040 - renesas,scif-r8a77470 # RZ/G1C
0041 - renesas,scif-r8a7790 # R-Car H2
0042 - renesas,scif-r8a7791 # R-Car M2-W
0043 - renesas,scif-r8a7792 # R-Car V2H
0044 - renesas,scif-r8a7793 # R-Car M2-N
0045 - renesas,scif-r8a7794 # R-Car E2
0046 - const: renesas,rcar-gen2-scif # R-Car Gen2 and RZ/G1
0047 - const: renesas,scif # generic SCIF compatible UART
0048
0049 - items:
0050 - enum:
0051 - renesas,scif-r8a774a1 # RZ/G2M
0052 - renesas,scif-r8a774b1 # RZ/G2N
0053 - renesas,scif-r8a774c0 # RZ/G2E
0054 - renesas,scif-r8a774e1 # RZ/G2H
0055 - renesas,scif-r8a7795 # R-Car H3
0056 - renesas,scif-r8a7796 # R-Car M3-W
0057 - renesas,scif-r8a77961 # R-Car M3-W+
0058 - renesas,scif-r8a77965 # R-Car M3-N
0059 - renesas,scif-r8a77970 # R-Car V3M
0060 - renesas,scif-r8a77980 # R-Car V3H
0061 - renesas,scif-r8a77990 # R-Car E3
0062 - renesas,scif-r8a77995 # R-Car D3
0063 - const: renesas,rcar-gen3-scif # R-Car Gen3 and RZ/G2
0064 - const: renesas,scif # generic SCIF compatible UART
0065
0066 - items:
0067 - enum:
0068 - renesas,scif-r8a779a0 # R-Car V3U
0069 - renesas,scif-r8a779f0 # R-Car S4-8
0070 - const: renesas,rcar-gen4-scif # R-Car Gen4
0071 - const: renesas,scif # generic SCIF compatible UART
0072
0073 - items:
0074 - enum:
0075 - renesas,scif-r9a07g044 # RZ/G2{L,LC}
0076
0077 - items:
0078 - enum:
0079 - renesas,scif-r9a07g043 # RZ/G2UL
0080 - renesas,scif-r9a07g054 # RZ/V2L
0081 - const: renesas,scif-r9a07g044 # RZ/G2{L,LC} fallback
0082
0083 reg:
0084 maxItems: 1
0085
0086 interrupts:
0087 oneOf:
0088 - items:
0089 - description: A combined interrupt
0090 - items:
0091 - description: Error interrupt
0092 - description: Receive buffer full interrupt
0093 - description: Transmit buffer empty interrupt
0094 - description: Transmit End interrupt
0095 - items:
0096 - description: Error interrupt
0097 - description: Receive buffer full interrupt
0098 - description: Transmit buffer empty interrupt
0099 - description: Break interrupt
0100 - description: Data Ready interrupt
0101 - description: Transmit End interrupt
0102
0103 interrupt-names:
0104 oneOf:
0105 - items:
0106 - const: eri
0107 - const: rxi
0108 - const: txi
0109 - const: tei
0110 - items:
0111 - const: eri
0112 - const: rxi
0113 - const: txi
0114 - const: bri
0115 - const: dri
0116 - const: tei
0117
0118 clocks:
0119 minItems: 1
0120 maxItems: 4
0121
0122 clock-names:
0123 minItems: 1
0124 maxItems: 4
0125 items:
0126 enum:
0127 - fck # UART functional clock
0128 - sck # optional external clock input
0129 - brg_int # optional internal clock source for BRG frequency divider
0130 - scif_clk # optional external clock source for BRG frequency divider
0131
0132 power-domains:
0133 maxItems: 1
0134
0135 resets:
0136 maxItems: 1
0137
0138 dmas:
0139 minItems: 2
0140 maxItems: 4
0141 description:
0142 Must contain a list of pairs of references to DMA specifiers, one for
0143 transmission, and one for reception.
0144
0145 dma-names:
0146 minItems: 2
0147 maxItems: 4
0148 items:
0149 enum:
0150 - tx
0151 - rx
0152
0153 required:
0154 - compatible
0155 - reg
0156 - interrupts
0157 - clocks
0158 - clock-names
0159 - power-domains
0160
0161 if:
0162 properties:
0163 compatible:
0164 contains:
0165 enum:
0166 - renesas,rcar-gen2-scif
0167 - renesas,rcar-gen3-scif
0168 - renesas,rcar-gen4-scif
0169 - renesas,scif-r9a07g044
0170 then:
0171 required:
0172 - resets
0173
0174 unevaluatedProperties: false
0175
0176 examples:
0177 - |
0178 #include <dt-bindings/clock/r8a7791-cpg-mssr.h>
0179 #include <dt-bindings/interrupt-controller/arm-gic.h>
0180 #include <dt-bindings/power/r8a7791-sysc.h>
0181 aliases {
0182 serial0 = &scif0;
0183 };
0184
0185 scif0: serial@e6e60000 {
0186 compatible = "renesas,scif-r8a7791", "renesas,rcar-gen2-scif",
0187 "renesas,scif";
0188 reg = <0xe6e60000 64>;
0189 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
0190 clocks = <&cpg CPG_MOD 721>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
0191 <&scif_clk>;
0192 clock-names = "fck", "brg_int", "scif_clk";
0193 dmas = <&dmac0 0x29>, <&dmac0 0x2a>, <&dmac1 0x29>, <&dmac1 0x2a>;
0194 dma-names = "tx", "rx", "tx", "rx";
0195 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
0196 resets = <&cpg 721>;
0197 };