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} 2860e4dc19SClaudiu Beznea - renesas,r9a08g045-pinctrl # RZ/G3S 295c7fb203SBiju Das - renesas,r9a09g047-pinctrl # RZ/G3E 30*626acdedSLad Prabhakar - renesas,r9a09g056-pinctrl # RZ/V2N 31fb73d663SLad Prabhakar - renesas,r9a09g057-pinctrl # RZ/V2H(P) 327958f88aSLad Prabhakar 33c07b19deSBiju Das - items: 34c07b19deSBiju Das - enum: 35c07b19deSBiju Das - renesas,r9a07g054-pinctrl # RZ/V2L 36c07b19deSBiju Das - const: renesas,r9a07g044-pinctrl # RZ/G2{L,LC} fallback for RZ/V2L 37c07b19deSBiju Das 387958f88aSLad Prabhakar reg: 397958f88aSLad Prabhakar maxItems: 1 407958f88aSLad Prabhakar 417958f88aSLad Prabhakar gpio-controller: true 427958f88aSLad Prabhakar 437958f88aSLad Prabhakar '#gpio-cells': 447958f88aSLad Prabhakar const: 2 457958f88aSLad Prabhakar description: 467958f88aSLad Prabhakar The first cell contains the global GPIO port index, constructed using the 477958f88aSLad Prabhakar RZG2L_GPIO() helper macro in <dt-bindings/pinctrl/rzg2l-pinctrl.h> and the 487958f88aSLad Prabhakar second cell represents consumer flag as mentioned in ../gpio/gpio.txt 497958f88aSLad Prabhakar E.g. "RZG2L_GPIO(39, 1)" for P39_1. 507958f88aSLad Prabhakar 517958f88aSLad Prabhakar gpio-ranges: 527958f88aSLad Prabhakar maxItems: 1 537958f88aSLad Prabhakar 5435c37efdSLad Prabhakar interrupt-controller: true 5535c37efdSLad Prabhakar 5635c37efdSLad Prabhakar '#interrupt-cells': 5735c37efdSLad Prabhakar const: 2 5835c37efdSLad Prabhakar description: 5935c37efdSLad Prabhakar The first cell contains the global GPIO port index, constructed using the 6035c37efdSLad Prabhakar RZG2L_GPIO() helper macro in <dt-bindings/pinctrl/rzg2l-pinctrl.h> and the 6135c37efdSLad Prabhakar second cell is used to specify the flag. 6235c37efdSLad Prabhakar E.g. "interrupts = <RZG2L_GPIO(43, 0) IRQ_TYPE_EDGE_FALLING>;" if P43_0 is 6335c37efdSLad Prabhakar being used as an interrupt. 6435c37efdSLad Prabhakar 657958f88aSLad Prabhakar clocks: 667958f88aSLad Prabhakar maxItems: 1 677958f88aSLad Prabhakar 687958f88aSLad Prabhakar power-domains: 697958f88aSLad Prabhakar maxItems: 1 707958f88aSLad Prabhakar 717958f88aSLad Prabhakar resets: 72fb73d663SLad Prabhakar oneOf: 73fb73d663SLad Prabhakar - items: 747958f88aSLad Prabhakar - description: GPIO_RSTN signal 757958f88aSLad Prabhakar - description: GPIO_PORT_RESETN signal 767958f88aSLad Prabhakar - description: GPIO_SPARE_RESETN signal 77fb73d663SLad Prabhakar - items: 78fb73d663SLad Prabhakar - description: PFC main reset 79fb73d663SLad Prabhakar - description: Reset for the control register related to WDTUDFCA and WDTUDFFCM pins 807958f88aSLad Prabhakar 817958f88aSLad PrabhakaradditionalProperties: 827958f88aSLad Prabhakar anyOf: 837958f88aSLad Prabhakar - type: object 84caaeb8c5SRob Herring additionalProperties: false 857958f88aSLad Prabhakar allOf: 867958f88aSLad Prabhakar - $ref: pincfg-node.yaml# 877958f88aSLad Prabhakar - $ref: pinmux-node.yaml# 887958f88aSLad Prabhakar 897958f88aSLad Prabhakar description: 907958f88aSLad Prabhakar Pin controller client devices use pin configuration subnodes (children 917958f88aSLad Prabhakar and grandchildren) for desired pin configuration. 927958f88aSLad Prabhakar Client device subnodes use below standard properties. 937958f88aSLad Prabhakar 947958f88aSLad Prabhakar properties: 957958f88aSLad Prabhakar pinmux: 967958f88aSLad Prabhakar description: 977958f88aSLad Prabhakar Values are constructed from GPIO port number, pin number, and 987958f88aSLad Prabhakar alternate function configuration number using the RZG2L_PORT_PINMUX() 997958f88aSLad Prabhakar helper macro in <dt-bindings/pinctrl/rzg2l-pinctrl.h>. 1007958f88aSLad Prabhakar pins: true 1017958f88aSLad Prabhakar drive-strength: 1027958f88aSLad Prabhakar enum: [ 2, 4, 8, 12 ] 10360e4dc19SClaudiu Beznea drive-strength-microamp: 10460e4dc19SClaudiu Beznea enum: [ 1900, 2200, 4000, 4400, 4500, 4700, 5200, 5300, 5700, 10560e4dc19SClaudiu Beznea 5800, 6000, 6050, 6100, 6550, 6800, 7000, 8000, 9000, 10660e4dc19SClaudiu Beznea 10000 ] 107aa52b008SLad Prabhakar output-impedance-ohms: 108aa52b008SLad Prabhakar enum: [ 33, 50, 66, 100 ] 1097958f88aSLad Prabhakar power-source: 1101dcb6b78SLad Prabhakar description: I/O voltage in millivolt. 1117958f88aSLad Prabhakar enum: [ 1800, 2500, 3300 ] 1127958f88aSLad Prabhakar slew-rate: true 1137958f88aSLad Prabhakar gpio-hog: true 1147958f88aSLad Prabhakar gpios: true 115a76932e4SLad Prabhakar input: true 1167958f88aSLad Prabhakar input-enable: true 117a76932e4SLad Prabhakar output-enable: true 1187958f88aSLad Prabhakar output-high: true 1197958f88aSLad Prabhakar output-low: true 1207958f88aSLad Prabhakar line-name: true 121fb73d663SLad Prabhakar bias-disable: true 122fb73d663SLad Prabhakar bias-pull-down: true 123fb73d663SLad Prabhakar bias-pull-up: true 124f07e2b68SLad Prabhakar input-schmitt-enable: true 125f07e2b68SLad Prabhakar input-schmitt-disable: true 126f07e2b68SLad Prabhakar drive-open-drain: true 127f07e2b68SLad Prabhakar drive-push-pull: true 128fb73d663SLad Prabhakar renesas,output-impedance: 129fb73d663SLad Prabhakar description: 1305c7fb203SBiju Das Output impedance for pins on the RZ/{G3E,V2H(P)} SoC. The value provided by this 131fb73d663SLad Prabhakar property corresponds to register bit values that can be set in the PFC_IOLH_mn 132fb73d663SLad Prabhakar register, which adjusts the drive strength value and is pin-dependent. 133fb73d663SLad Prabhakar $ref: /schemas/types.yaml#/definitions/uint32 134fb73d663SLad Prabhakar enum: [0, 1, 2, 3] 1357958f88aSLad Prabhakar 1367958f88aSLad Prabhakar - type: object 1377958f88aSLad Prabhakar additionalProperties: 1387958f88aSLad Prabhakar $ref: "#/additionalProperties/anyOf/0" 1397958f88aSLad Prabhakar 140c09acbc4SRafał MiłeckiallOf: 14149cd1dd1SRob Herring - $ref: pinctrl.yaml# 142c09acbc4SRafał Miłecki 143fb73d663SLad Prabhakar - if: 144fb73d663SLad Prabhakar properties: 145fb73d663SLad Prabhakar compatible: 146fb73d663SLad Prabhakar contains: 1475c7fb203SBiju Das enum: 1485c7fb203SBiju Das - renesas,r9a09g047-pinctrl 149*626acdedSLad Prabhakar - renesas,r9a09g056-pinctrl 1505c7fb203SBiju Das - renesas,r9a09g057-pinctrl 151fb73d663SLad Prabhakar then: 152fb73d663SLad Prabhakar properties: 153fb73d663SLad Prabhakar resets: 154fb73d663SLad Prabhakar maxItems: 2 155fb73d663SLad Prabhakar else: 156fb73d663SLad Prabhakar properties: 157fb73d663SLad Prabhakar resets: 158fb73d663SLad Prabhakar minItems: 3 159fb73d663SLad Prabhakar 1607958f88aSLad Prabhakarrequired: 1617958f88aSLad Prabhakar - compatible 1627958f88aSLad Prabhakar - reg 1637958f88aSLad Prabhakar - gpio-controller 1647958f88aSLad Prabhakar - '#gpio-cells' 1657958f88aSLad Prabhakar - gpio-ranges 16635c37efdSLad Prabhakar - interrupt-controller 16735c37efdSLad Prabhakar - '#interrupt-cells' 1687958f88aSLad Prabhakar - clocks 1697958f88aSLad Prabhakar - power-domains 1707958f88aSLad Prabhakar - resets 1717958f88aSLad Prabhakar 1727958f88aSLad Prabhakarexamples: 1737958f88aSLad Prabhakar - | 1747958f88aSLad Prabhakar #include <dt-bindings/pinctrl/rzg2l-pinctrl.h> 1757958f88aSLad Prabhakar #include <dt-bindings/clock/r9a07g044-cpg.h> 1767958f88aSLad Prabhakar 1777958f88aSLad Prabhakar pinctrl: pinctrl@11030000 { 1787958f88aSLad Prabhakar compatible = "renesas,r9a07g044-pinctrl"; 1797958f88aSLad Prabhakar reg = <0x11030000 0x10000>; 1807958f88aSLad Prabhakar 1817958f88aSLad Prabhakar gpio-controller; 1827958f88aSLad Prabhakar #gpio-cells = <2>; 1837958f88aSLad Prabhakar gpio-ranges = <&pinctrl 0 0 392>; 18435c37efdSLad Prabhakar interrupt-controller; 18535c37efdSLad Prabhakar #interrupt-cells = <2>; 1867958f88aSLad Prabhakar clocks = <&cpg CPG_MOD R9A07G044_GPIO_HCLK>; 1877958f88aSLad Prabhakar resets = <&cpg R9A07G044_GPIO_RSTN>, 1887958f88aSLad Prabhakar <&cpg R9A07G044_GPIO_PORT_RESETN>, 1897958f88aSLad Prabhakar <&cpg R9A07G044_GPIO_SPARE_RESETN>; 1907958f88aSLad Prabhakar power-domains = <&cpg>; 1917958f88aSLad Prabhakar 1927958f88aSLad Prabhakar scif0_pins: serial0 { 1937958f88aSLad Prabhakar pinmux = <RZG2L_PORT_PINMUX(38, 0, 1)>, /* Tx */ 1947958f88aSLad Prabhakar <RZG2L_PORT_PINMUX(38, 1, 1)>; /* Rx */ 1957958f88aSLad Prabhakar }; 1967958f88aSLad Prabhakar 1977958f88aSLad Prabhakar i2c1_pins: i2c1 { 1987958f88aSLad Prabhakar pins = "RIIC1_SDA", "RIIC1_SCL"; 1997958f88aSLad Prabhakar input-enable; 2007958f88aSLad Prabhakar }; 2017958f88aSLad Prabhakar 2027958f88aSLad Prabhakar sd1-pwr-en-hog { 2037958f88aSLad Prabhakar gpio-hog; 2047958f88aSLad Prabhakar gpios = <RZG2L_GPIO(39, 2) 0>; 2057958f88aSLad Prabhakar output-high; 2067958f88aSLad Prabhakar line-name = "sd1_pwr_en"; 2077958f88aSLad Prabhakar }; 2087958f88aSLad Prabhakar 2097958f88aSLad Prabhakar sdhi1_pins: sd1 { 2107958f88aSLad Prabhakar sd1_mux { 2117958f88aSLad Prabhakar pinmux = <RZG2L_PORT_PINMUX(19, 0, 1)>, /* CD */ 2127958f88aSLad Prabhakar <RZG2L_PORT_PINMUX(19, 1, 1)>; /* WP */ 2137958f88aSLad Prabhakar power-source = <3300>; 2147958f88aSLad Prabhakar }; 2157958f88aSLad Prabhakar 2167958f88aSLad Prabhakar sd1_data { 2177958f88aSLad Prabhakar pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3"; 2187958f88aSLad Prabhakar power-source = <3300>; 2197958f88aSLad Prabhakar }; 2207958f88aSLad Prabhakar 2217958f88aSLad Prabhakar sd1_ctrl { 2227958f88aSLad Prabhakar pins = "SD1_CLK", "SD1_CMD"; 2237958f88aSLad Prabhakar power-source = <3300>; 2247958f88aSLad Prabhakar }; 2257958f88aSLad Prabhakar }; 2267958f88aSLad Prabhakar }; 227