17958f88aSLad Prabhakar# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 27958f88aSLad Prabhakar%YAML 1.2 37958f88aSLad Prabhakar--- 47958f88aSLad Prabhakar$id: http://devicetree.org/schemas/pinctrl/renesas,rzg2l-pinctrl.yaml# 57958f88aSLad Prabhakar$schema: http://devicetree.org/meta-schemas/core.yaml# 67958f88aSLad Prabhakar 7c07b19deSBiju Dastitle: Renesas RZ/{G2L,V2L} combined Pin and GPIO controller 87958f88aSLad Prabhakar 97958f88aSLad Prabhakarmaintainers: 107958f88aSLad Prabhakar - Geert Uytterhoeven <geert+renesas@glider.be> 117958f88aSLad Prabhakar - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> 127958f88aSLad Prabhakar 137958f88aSLad Prabhakardescription: 1474273035SBiju Das The Renesas SoCs of the RZ/{G2L,V2L} alike series feature a combined Pin and 1574273035SBiju Das GPIO controller. 167958f88aSLad Prabhakar Pin multiplexing and GPIO configuration is performed on a per-pin basis. 177958f88aSLad Prabhakar Each port features up to 8 pins, each of them configurable for GPIO function 187958f88aSLad Prabhakar (port mode) or in alternate function mode. 197958f88aSLad Prabhakar Up to 8 different alternate function modes exist for each single pin. 207958f88aSLad Prabhakar 217958f88aSLad Prabhakarproperties: 227958f88aSLad Prabhakar compatible: 23c07b19deSBiju Das oneOf: 24c07b19deSBiju Das - items: 25c07b19deSBiju Das - enum: 2696355be8SLad Prabhakar - renesas,r9a07g043-pinctrl # RZ/G2UL{Type-1,Type-2} and RZ/Five 277958f88aSLad Prabhakar - renesas,r9a07g044-pinctrl # RZ/G2{L,LC} 287958f88aSLad Prabhakar 29c07b19deSBiju Das - items: 30c07b19deSBiju Das - enum: 31c07b19deSBiju Das - renesas,r9a07g054-pinctrl # RZ/V2L 32c07b19deSBiju Das - const: renesas,r9a07g044-pinctrl # RZ/G2{L,LC} fallback for RZ/V2L 33c07b19deSBiju Das 347958f88aSLad Prabhakar reg: 357958f88aSLad Prabhakar maxItems: 1 367958f88aSLad Prabhakar 377958f88aSLad Prabhakar gpio-controller: true 387958f88aSLad Prabhakar 397958f88aSLad Prabhakar '#gpio-cells': 407958f88aSLad Prabhakar const: 2 417958f88aSLad Prabhakar description: 427958f88aSLad Prabhakar The first cell contains the global GPIO port index, constructed using the 437958f88aSLad Prabhakar RZG2L_GPIO() helper macro in <dt-bindings/pinctrl/rzg2l-pinctrl.h> and the 447958f88aSLad Prabhakar second cell represents consumer flag as mentioned in ../gpio/gpio.txt 457958f88aSLad Prabhakar E.g. "RZG2L_GPIO(39, 1)" for P39_1. 467958f88aSLad Prabhakar 477958f88aSLad Prabhakar gpio-ranges: 487958f88aSLad Prabhakar maxItems: 1 497958f88aSLad Prabhakar 5035c37efdSLad Prabhakar interrupt-controller: true 5135c37efdSLad Prabhakar 5235c37efdSLad Prabhakar '#interrupt-cells': 5335c37efdSLad Prabhakar const: 2 5435c37efdSLad Prabhakar description: 5535c37efdSLad Prabhakar The first cell contains the global GPIO port index, constructed using the 5635c37efdSLad Prabhakar RZG2L_GPIO() helper macro in <dt-bindings/pinctrl/rzg2l-pinctrl.h> and the 5735c37efdSLad Prabhakar second cell is used to specify the flag. 5835c37efdSLad Prabhakar E.g. "interrupts = <RZG2L_GPIO(43, 0) IRQ_TYPE_EDGE_FALLING>;" if P43_0 is 5935c37efdSLad Prabhakar being used as an interrupt. 6035c37efdSLad Prabhakar 617958f88aSLad Prabhakar clocks: 627958f88aSLad Prabhakar maxItems: 1 637958f88aSLad Prabhakar 647958f88aSLad Prabhakar power-domains: 657958f88aSLad Prabhakar maxItems: 1 667958f88aSLad Prabhakar 677958f88aSLad Prabhakar resets: 687958f88aSLad Prabhakar items: 697958f88aSLad Prabhakar - description: GPIO_RSTN signal 707958f88aSLad Prabhakar - description: GPIO_PORT_RESETN signal 717958f88aSLad Prabhakar - description: GPIO_SPARE_RESETN signal 727958f88aSLad Prabhakar 737958f88aSLad PrabhakaradditionalProperties: 747958f88aSLad Prabhakar anyOf: 757958f88aSLad Prabhakar - type: object 767958f88aSLad Prabhakar allOf: 777958f88aSLad Prabhakar - $ref: pincfg-node.yaml# 787958f88aSLad Prabhakar - $ref: pinmux-node.yaml# 797958f88aSLad Prabhakar 807958f88aSLad Prabhakar description: 817958f88aSLad Prabhakar Pin controller client devices use pin configuration subnodes (children 827958f88aSLad Prabhakar and grandchildren) for desired pin configuration. 837958f88aSLad Prabhakar Client device subnodes use below standard properties. 847958f88aSLad Prabhakar 857958f88aSLad Prabhakar properties: 867958f88aSLad Prabhakar pinmux: 877958f88aSLad Prabhakar description: 887958f88aSLad Prabhakar Values are constructed from GPIO port number, pin number, and 897958f88aSLad Prabhakar alternate function configuration number using the RZG2L_PORT_PINMUX() 907958f88aSLad Prabhakar helper macro in <dt-bindings/pinctrl/rzg2l-pinctrl.h>. 917958f88aSLad Prabhakar pins: true 927958f88aSLad Prabhakar drive-strength: 937958f88aSLad Prabhakar enum: [ 2, 4, 8, 12 ] 94aa52b008SLad Prabhakar output-impedance-ohms: 95aa52b008SLad Prabhakar enum: [ 33, 50, 66, 100 ] 967958f88aSLad Prabhakar power-source: 971dcb6b78SLad Prabhakar description: I/O voltage in millivolt. 987958f88aSLad Prabhakar enum: [ 1800, 2500, 3300 ] 997958f88aSLad Prabhakar slew-rate: true 1007958f88aSLad Prabhakar gpio-hog: true 1017958f88aSLad Prabhakar gpios: true 1027958f88aSLad Prabhakar input-enable: true 1037958f88aSLad Prabhakar output-high: true 1047958f88aSLad Prabhakar output-low: true 1057958f88aSLad Prabhakar line-name: true 1067958f88aSLad Prabhakar 1077958f88aSLad Prabhakar - type: object 1087958f88aSLad Prabhakar additionalProperties: 1097958f88aSLad Prabhakar $ref: "#/additionalProperties/anyOf/0" 1107958f88aSLad Prabhakar 111c09acbc4SRafał MiłeckiallOf: 112*49cd1dd1SRob Herring - $ref: pinctrl.yaml# 113c09acbc4SRafał Miłecki 1147958f88aSLad Prabhakarrequired: 1157958f88aSLad Prabhakar - compatible 1167958f88aSLad Prabhakar - reg 1177958f88aSLad Prabhakar - gpio-controller 1187958f88aSLad Prabhakar - '#gpio-cells' 1197958f88aSLad Prabhakar - gpio-ranges 12035c37efdSLad Prabhakar - interrupt-controller 12135c37efdSLad Prabhakar - '#interrupt-cells' 1227958f88aSLad Prabhakar - clocks 1237958f88aSLad Prabhakar - power-domains 1247958f88aSLad Prabhakar - resets 1257958f88aSLad Prabhakar 1267958f88aSLad Prabhakarexamples: 1277958f88aSLad Prabhakar - | 1287958f88aSLad Prabhakar #include <dt-bindings/pinctrl/rzg2l-pinctrl.h> 1297958f88aSLad Prabhakar #include <dt-bindings/clock/r9a07g044-cpg.h> 1307958f88aSLad Prabhakar 1317958f88aSLad Prabhakar pinctrl: pinctrl@11030000 { 1327958f88aSLad Prabhakar compatible = "renesas,r9a07g044-pinctrl"; 1337958f88aSLad Prabhakar reg = <0x11030000 0x10000>; 1347958f88aSLad Prabhakar 1357958f88aSLad Prabhakar gpio-controller; 1367958f88aSLad Prabhakar #gpio-cells = <2>; 1377958f88aSLad Prabhakar gpio-ranges = <&pinctrl 0 0 392>; 13835c37efdSLad Prabhakar interrupt-controller; 13935c37efdSLad Prabhakar #interrupt-cells = <2>; 1407958f88aSLad Prabhakar clocks = <&cpg CPG_MOD R9A07G044_GPIO_HCLK>; 1417958f88aSLad Prabhakar resets = <&cpg R9A07G044_GPIO_RSTN>, 1427958f88aSLad Prabhakar <&cpg R9A07G044_GPIO_PORT_RESETN>, 1437958f88aSLad Prabhakar <&cpg R9A07G044_GPIO_SPARE_RESETN>; 1447958f88aSLad Prabhakar power-domains = <&cpg>; 1457958f88aSLad Prabhakar 1467958f88aSLad Prabhakar scif0_pins: serial0 { 1477958f88aSLad Prabhakar pinmux = <RZG2L_PORT_PINMUX(38, 0, 1)>, /* Tx */ 1487958f88aSLad Prabhakar <RZG2L_PORT_PINMUX(38, 1, 1)>; /* Rx */ 1497958f88aSLad Prabhakar }; 1507958f88aSLad Prabhakar 1517958f88aSLad Prabhakar i2c1_pins: i2c1 { 1527958f88aSLad Prabhakar pins = "RIIC1_SDA", "RIIC1_SCL"; 1537958f88aSLad Prabhakar input-enable; 1547958f88aSLad Prabhakar }; 1557958f88aSLad Prabhakar 1567958f88aSLad Prabhakar sd1-pwr-en-hog { 1577958f88aSLad Prabhakar gpio-hog; 1587958f88aSLad Prabhakar gpios = <RZG2L_GPIO(39, 2) 0>; 1597958f88aSLad Prabhakar output-high; 1607958f88aSLad Prabhakar line-name = "sd1_pwr_en"; 1617958f88aSLad Prabhakar }; 1627958f88aSLad Prabhakar 1637958f88aSLad Prabhakar sdhi1_pins: sd1 { 1647958f88aSLad Prabhakar sd1_mux { 1657958f88aSLad Prabhakar pinmux = <RZG2L_PORT_PINMUX(19, 0, 1)>, /* CD */ 1667958f88aSLad Prabhakar <RZG2L_PORT_PINMUX(19, 1, 1)>; /* WP */ 1677958f88aSLad Prabhakar power-source = <3300>; 1687958f88aSLad Prabhakar }; 1697958f88aSLad Prabhakar 1707958f88aSLad Prabhakar sd1_data { 1717958f88aSLad Prabhakar pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3"; 1727958f88aSLad Prabhakar power-source = <3300>; 1737958f88aSLad Prabhakar }; 1747958f88aSLad Prabhakar 1757958f88aSLad Prabhakar sd1_ctrl { 1767958f88aSLad Prabhakar pins = "SD1_CLK", "SD1_CMD"; 1777958f88aSLad Prabhakar power-source = <3300>; 1787958f88aSLad Prabhakar }; 1797958f88aSLad Prabhakar }; 1807958f88aSLad Prabhakar }; 181