xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/renesas,rzv2m-pinctrl.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
134e3b69bSPhil Edworthy# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
234e3b69bSPhil Edworthy%YAML 1.2
334e3b69bSPhil Edworthy---
434e3b69bSPhil Edworthy$id: http://devicetree.org/schemas/pinctrl/renesas,rzv2m-pinctrl.yaml#
534e3b69bSPhil Edworthy$schema: http://devicetree.org/meta-schemas/core.yaml#
634e3b69bSPhil Edworthy
734e3b69bSPhil Edworthytitle: Renesas RZ/V2M combined Pin and GPIO controller
834e3b69bSPhil Edworthy
934e3b69bSPhil Edworthymaintainers:
10*d2572856SChris Paterson  - Fabrizio Castro <fabrizio.castro.jz@renesas.com>
1134e3b69bSPhil Edworthy  - Geert Uytterhoeven <geert+renesas@glider.be>
1234e3b69bSPhil Edworthy
1334e3b69bSPhil Edworthydescription:
1434e3b69bSPhil Edworthy  The Renesas RZ/V2M SoC features a combined Pin and GPIO controller.
1534e3b69bSPhil Edworthy  Pin multiplexing and GPIO configuration is performed on a per-pin basis.
1634e3b69bSPhil Edworthy  Each port features up to 16 pins, each of them configurable for GPIO function
1734e3b69bSPhil Edworthy  (port mode) or in alternate function mode.
1834e3b69bSPhil Edworthy  Up to 8 different alternate function modes exist for each single pin.
1934e3b69bSPhil Edworthy
2034e3b69bSPhil Edworthyproperties:
2134e3b69bSPhil Edworthy  compatible:
2234e3b69bSPhil Edworthy    const: renesas,r9a09g011-pinctrl # RZ/V2M
2334e3b69bSPhil Edworthy
2434e3b69bSPhil Edworthy  reg:
2534e3b69bSPhil Edworthy    maxItems: 1
2634e3b69bSPhil Edworthy
2734e3b69bSPhil Edworthy  gpio-controller: true
2834e3b69bSPhil Edworthy
2934e3b69bSPhil Edworthy  '#gpio-cells':
3034e3b69bSPhil Edworthy    const: 2
3134e3b69bSPhil Edworthy    description:
3234e3b69bSPhil Edworthy      The first cell contains the global GPIO port index, constructed using the
3334e3b69bSPhil Edworthy      RZV2M_GPIO() helper macro in <dt-bindings/pinctrl/rzv2m-pinctrl.h> and the
3434e3b69bSPhil Edworthy      second cell represents consumer flag as mentioned in ../gpio/gpio.txt
3534e3b69bSPhil Edworthy      E.g. "RZV2M_GPIO(8, 1)" for P8_1.
3634e3b69bSPhil Edworthy
3734e3b69bSPhil Edworthy  gpio-ranges:
3834e3b69bSPhil Edworthy    maxItems: 1
3934e3b69bSPhil Edworthy
4034e3b69bSPhil Edworthy  interrupts:
4134e3b69bSPhil Edworthy    description: INEXINT[0..38] corresponding to individual pin inputs.
4234e3b69bSPhil Edworthy    maxItems: 39
4334e3b69bSPhil Edworthy
4434e3b69bSPhil Edworthy  clocks:
4534e3b69bSPhil Edworthy    maxItems: 1
4634e3b69bSPhil Edworthy
4734e3b69bSPhil Edworthy  power-domains:
4834e3b69bSPhil Edworthy    maxItems: 1
4934e3b69bSPhil Edworthy
5034e3b69bSPhil Edworthy  resets:
5134e3b69bSPhil Edworthy    maxItems: 1
5234e3b69bSPhil Edworthy
5334e3b69bSPhil EdworthyadditionalProperties:
5434e3b69bSPhil Edworthy  anyOf:
5534e3b69bSPhil Edworthy    - type: object
5634e3b69bSPhil Edworthy      allOf:
5734e3b69bSPhil Edworthy        - $ref: pincfg-node.yaml#
5834e3b69bSPhil Edworthy        - $ref: pinmux-node.yaml#
5934e3b69bSPhil Edworthy
6034e3b69bSPhil Edworthy      description:
6134e3b69bSPhil Edworthy        Pin controller client devices use pin configuration subnodes (children
6234e3b69bSPhil Edworthy        and grandchildren) for desired pin configuration.
6334e3b69bSPhil Edworthy        Client device subnodes use below standard properties.
6434e3b69bSPhil Edworthy
6534e3b69bSPhil Edworthy      properties:
6634e3b69bSPhil Edworthy        pinmux:
6734e3b69bSPhil Edworthy          description:
6834e3b69bSPhil Edworthy            Values are constructed from GPIO port number, pin number, and
6934e3b69bSPhil Edworthy            alternate function configuration number using the RZV2M_PORT_PINMUX()
7034e3b69bSPhil Edworthy            helper macro in <dt-bindings/pinctrl/rzv2m-pinctrl.h>.
7134e3b69bSPhil Edworthy        pins: true
7234e3b69bSPhil Edworthy        bias-disable: true
7334e3b69bSPhil Edworthy        bias-pull-down: true
7434e3b69bSPhil Edworthy        bias-pull-up: true
7534e3b69bSPhil Edworthy        drive-strength-microamp:
7634e3b69bSPhil Edworthy          # Superset of supported values
7734e3b69bSPhil Edworthy          enum: [ 1600, 1800, 2000, 3200, 3800, 4000, 6400, 7800, 8000,
7834e3b69bSPhil Edworthy                  9000, 9600, 11000, 12000, 13000, 18000 ]
7934e3b69bSPhil Edworthy        slew-rate:
8034e3b69bSPhil Edworthy          description: 0 is slow slew rate, 1 is fast slew rate
8134e3b69bSPhil Edworthy          enum: [ 0, 1 ]
8234e3b69bSPhil Edworthy        gpio-hog: true
8334e3b69bSPhil Edworthy        gpios: true
8434e3b69bSPhil Edworthy        output-high: true
8534e3b69bSPhil Edworthy        output-low: true
8634e3b69bSPhil Edworthy        line-name: true
8734e3b69bSPhil Edworthy
8834e3b69bSPhil Edworthy    - type: object
8934e3b69bSPhil Edworthy      additionalProperties:
9034e3b69bSPhil Edworthy        $ref: "#/additionalProperties/anyOf/0"
9134e3b69bSPhil Edworthy
9234e3b69bSPhil EdworthyallOf:
9349cd1dd1SRob Herring  - $ref: pinctrl.yaml#
9434e3b69bSPhil Edworthy
9534e3b69bSPhil Edworthyrequired:
9634e3b69bSPhil Edworthy  - compatible
9734e3b69bSPhil Edworthy  - reg
9834e3b69bSPhil Edworthy  - gpio-controller
9934e3b69bSPhil Edworthy  - '#gpio-cells'
10034e3b69bSPhil Edworthy  - gpio-ranges
10134e3b69bSPhil Edworthy  - interrupts
10234e3b69bSPhil Edworthy  - clocks
10334e3b69bSPhil Edworthy  - power-domains
10434e3b69bSPhil Edworthy  - resets
10534e3b69bSPhil Edworthy
10634e3b69bSPhil Edworthyexamples:
10734e3b69bSPhil Edworthy  - |
10834e3b69bSPhil Edworthy    #include <dt-bindings/pinctrl/rzv2m-pinctrl.h>
10934e3b69bSPhil Edworthy    #include <dt-bindings/clock/r9a09g011-cpg.h>
11034e3b69bSPhil Edworthy    #include <dt-bindings/interrupt-controller/arm-gic.h>
11134e3b69bSPhil Edworthy
11234e3b69bSPhil Edworthy    pinctrl: pinctrl@b6250000 {
11334e3b69bSPhil Edworthy            compatible = "renesas,r9a09g011-pinctrl";
11434e3b69bSPhil Edworthy            reg = <0xb6250000 0x800>;
11534e3b69bSPhil Edworthy
11634e3b69bSPhil Edworthy            gpio-controller;
11734e3b69bSPhil Edworthy            #gpio-cells = <2>;
11834e3b69bSPhil Edworthy            gpio-ranges = <&pinctrl 0 0 352>;
11934e3b69bSPhil Edworthy            interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
12034e3b69bSPhil Edworthy                         <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
12134e3b69bSPhil Edworthy                         <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
12234e3b69bSPhil Edworthy                         <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
12334e3b69bSPhil Edworthy                         <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
12434e3b69bSPhil Edworthy                         <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
12534e3b69bSPhil Edworthy                         <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
12634e3b69bSPhil Edworthy                         <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
12734e3b69bSPhil Edworthy                         <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
12834e3b69bSPhil Edworthy                         <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
12934e3b69bSPhil Edworthy                         <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
13034e3b69bSPhil Edworthy                         <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
13134e3b69bSPhil Edworthy                         <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
13234e3b69bSPhil Edworthy                         <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>,
13334e3b69bSPhil Edworthy                         <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
13434e3b69bSPhil Edworthy                         <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
13534e3b69bSPhil Edworthy                         <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
13634e3b69bSPhil Edworthy                         <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
13734e3b69bSPhil Edworthy                         <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
13834e3b69bSPhil Edworthy                         <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
13934e3b69bSPhil Edworthy                         <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
14034e3b69bSPhil Edworthy                         <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
14134e3b69bSPhil Edworthy                         <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
14234e3b69bSPhil Edworthy                         <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
14334e3b69bSPhil Edworthy                         <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
14434e3b69bSPhil Edworthy                         <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
14534e3b69bSPhil Edworthy                         <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
14634e3b69bSPhil Edworthy                         <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
14734e3b69bSPhil Edworthy                         <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
14834e3b69bSPhil Edworthy                         <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
14934e3b69bSPhil Edworthy                         <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
15034e3b69bSPhil Edworthy                         <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
15134e3b69bSPhil Edworthy                         <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
15234e3b69bSPhil Edworthy                         <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
15334e3b69bSPhil Edworthy                         <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
15434e3b69bSPhil Edworthy                         <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
15534e3b69bSPhil Edworthy                         <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
15634e3b69bSPhil Edworthy                         <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
15734e3b69bSPhil Edworthy                         <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
15834e3b69bSPhil Edworthy            clocks = <&cpg CPG_MOD R9A09G011_PFC_PCLK>;
15934e3b69bSPhil Edworthy            resets = <&cpg R9A09G011_PFC_PRESETN>;
16034e3b69bSPhil Edworthy            power-domains = <&cpg>;
16134e3b69bSPhil Edworthy
16234e3b69bSPhil Edworthy            i2c2_pins: i2c2 {
16334e3b69bSPhil Edworthy                    pinmux = <RZV2M_PORT_PINMUX(3, 8, 2)>, /* SDA */
16434e3b69bSPhil Edworthy                             <RZV2M_PORT_PINMUX(3, 9, 2)>; /* SCL */
16534e3b69bSPhil Edworthy            };
16634e3b69bSPhil Edworthy    };
167