blob: d761fddc220625bd1cf07af0b1388258cee7e7f4 [file] [log] [blame]
Geert Uytterhoeven4d0e6262020-06-26 16:36:38 +02001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pinctrl/renesas,rza2-pinctrl.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Renesas RZ/A2 combined Pin and GPIO controller
8
9maintainers:
10 - Chris Brandt <chris.brandt@renesas.com>
11 - Geert Uytterhoeven <geert+renesas@glider.be>
12
13description:
14 The Renesas SoCs of the RZ/A2 series feature a combined Pin and GPIO
15 controller.
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.
20
21properties:
22 compatible:
23 const: "renesas,r7s9210-pinctrl" # RZ/A2M
24
25 reg:
26 maxItems: 1
27
28 gpio-controller: true
29
30 '#gpio-cells':
31 const: 2
32 description:
33 The first cell contains the global GPIO port index, constructed using the
34 RZA2_PIN() helper macro in r7s9210-pinctrl.h.
35 E.g. "RZA2_PIN(PORT6, 0)" for P6_0.
36
37 gpio-ranges:
38 maxItems: 1
39
40patternProperties:
41 "^.*$":
42 if:
43 type: object
44 then:
45 allOf:
46 - $ref: pincfg-node.yaml#
47 - $ref: pinmux-node.yaml#
48 description:
49 The child nodes of the pin controller designate pins to be used for
50 specific peripheral functions or as GPIO.
51
52 A pin multiplexing sub-node describes how to configure a set of
53 (or a single) pin in some desired alternate function mode.
54 The values for the pinmux properties are a combination of port name,
55 pin number and the desired function index. Use the RZA2_PINMUX macro
56 located in include/dt-bindings/pinctrl/r7s9210-pinctrl.h to easily
57 define these.
58 For assigning GPIO pins, use the macro RZA2_PIN also in
59 to express the desired port pin.
60
61 properties:
62 phandle: true
63
64 pinmux:
65 description:
66 Values are constructed from GPIO port number, pin number, and
67 alternate function configuration number using the RZA2_PINMUX()
68 helper macro in r7s9210-pinctrl.h.
69
70 required:
71 - pinmux
72
73 additionalProperties: false
74
Rafał Miłeckic09acbc2021-12-02 07:32:16 +010075allOf:
76 - $ref: "pinctrl.yaml#"
77
Geert Uytterhoeven4d0e6262020-06-26 16:36:38 +020078required:
79 - compatible
80 - reg
81 - gpio-controller
82 - '#gpio-cells'
83 - gpio-ranges
84
85additionalProperties: false
86
87examples:
88 - |
89 #include <dt-bindings/pinctrl/r7s9210-pinctrl.h>
Geert Uytterhoevend4691b72020-08-21 13:11:27 +020090 pinctrl: pinctrl@fcffe000 {
Geert Uytterhoeven4d0e6262020-06-26 16:36:38 +020091 compatible = "renesas,r7s9210-pinctrl";
92 reg = <0xfcffe000 0x1000>;
93
94 gpio-controller;
95 #gpio-cells = <2>;
96 gpio-ranges = <&pinctrl 0 0 176>;
97
98 /* Serial Console */
99 scif4_pins: serial4 {
100 pinmux = <RZA2_PINMUX(PORT9, 0, 4)>, /* TxD4 */
101 <RZA2_PINMUX(PORT9, 1, 4)>; /* RxD4 */
102 };
103 };