1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/pinctrl/renesas,rzg2l-pinctrl.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Renesas RZ/{G2L,V2L} combined Pin and GPIO controller
10 - Geert Uytterhoeven <geert+renesas@glider.be>
11 - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
14 The Renesas SoCs of the RZ/{G2L,V2L} alike series feature a combined Pin and
16 Pin multiplexing and GPIO configuration is performed on a per-pin basis.
17 Each port features up to 8 pins, each of them configurable for GPIO function
18 (port mode) or in alternate function mode.
19 Up to 8 different alternate function modes exist for each single pin.
26 - renesas,r9a07g043-pinctrl # RZ/G2UL{Type-1,Type-2} and RZ/Five
27 - renesas,r9a07g044-pinctrl # RZ/G2{L,LC}
28 - renesas,r9a08g045-pinctrl # RZ/G3S
32 - renesas,r9a07g054-pinctrl # RZ/V2L
33 - const: renesas,r9a07g044-pinctrl # RZ/G2{L,LC} fallback for RZ/V2L
43 The first cell contains the global GPIO port index, constructed using the
44 RZG2L_GPIO() helper macro in <dt-bindings/pinctrl/rzg2l-pinctrl.h> and the
45 second cell represents consumer flag as mentioned in ../gpio/gpio.txt
46 E.g. "RZG2L_GPIO(39, 1)" for P39_1.
51 interrupt-controller: true
56 The first cell contains the global GPIO port index, constructed using the
57 RZG2L_GPIO() helper macro in <dt-bindings/pinctrl/rzg2l-pinctrl.h> and the
58 second cell is used to specify the flag.
59 E.g. "interrupts = <RZG2L_GPIO(43, 0) IRQ_TYPE_EDGE_FALLING>;" if P43_0 is
60 being used as an interrupt.
70 - description: GPIO_RSTN signal
71 - description: GPIO_PORT_RESETN signal
72 - description: GPIO_SPARE_RESETN signal
77 additionalProperties: false
79 - $ref: pincfg-node.yaml#
80 - $ref: pinmux-node.yaml#
87 - renesas,r9a08g045-pinctrl
91 output-impedance-ohms: false
95 drive-strength-microamp: false
98 Pin controller client devices use pin configuration subnodes (children
99 and grandchildren) for desired pin configuration.
100 Client device subnodes use below standard properties.
105 Values are constructed from GPIO port number, pin number, and
106 alternate function configuration number using the RZG2L_PORT_PINMUX()
107 helper macro in <dt-bindings/pinctrl/rzg2l-pinctrl.h>.
110 enum: [ 2, 4, 8, 12 ]
111 drive-strength-microamp:
112 enum: [ 1900, 2200, 4000, 4400, 4500, 4700, 5200, 5300, 5700,
113 5800, 6000, 6050, 6100, 6550, 6800, 7000, 8000, 9000,
115 output-impedance-ohms:
116 enum: [ 33, 50, 66, 100 ]
118 description: I/O voltage in millivolt.
119 enum: [ 1800, 2500, 3300 ]
129 additionalProperties:
130 $ref: "#/additionalProperties/anyOf/0"
133 - $ref: pinctrl.yaml#
141 - interrupt-controller
149 #include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
150 #include <dt-bindings/clock/r9a07g044-cpg.h>
152 pinctrl: pinctrl@11030000 {
153 compatible = "renesas,r9a07g044-pinctrl";
154 reg = <0x11030000 0x10000>;
158 gpio-ranges = <&pinctrl 0 0 392>;
159 interrupt-controller;
160 #interrupt-cells = <2>;
161 clocks = <&cpg CPG_MOD R9A07G044_GPIO_HCLK>;
162 resets = <&cpg R9A07G044_GPIO_RSTN>,
163 <&cpg R9A07G044_GPIO_PORT_RESETN>,
164 <&cpg R9A07G044_GPIO_SPARE_RESETN>;
165 power-domains = <&cpg>;
167 scif0_pins: serial0 {
168 pinmux = <RZG2L_PORT_PINMUX(38, 0, 1)>, /* Tx */
169 <RZG2L_PORT_PINMUX(38, 1, 1)>; /* Rx */
173 pins = "RIIC1_SDA", "RIIC1_SCL";
179 gpios = <RZG2L_GPIO(39, 2) 0>;
181 line-name = "sd1_pwr_en";
186 pinmux = <RZG2L_PORT_PINMUX(19, 0, 1)>, /* CD */
187 <RZG2L_PORT_PINMUX(19, 1, 1)>; /* WP */
188 power-source = <3300>;
192 pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3";
193 power-source = <3300>;
197 pins = "SD1_CLK", "SD1_CMD";
198 power-source = <3300>;