xref: /linux/Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.yaml (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
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