xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/mediatek,mt6795-pinctrl.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1a22452afSArınç ÜNAL# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2a22452afSArınç ÜNAL%YAML 1.2
3a22452afSArınç ÜNAL---
4a22452afSArınç ÜNAL$id: http://devicetree.org/schemas/pinctrl/mediatek,mt6795-pinctrl.yaml#
5a22452afSArınç ÜNAL$schema: http://devicetree.org/meta-schemas/core.yaml#
6a22452afSArınç ÜNAL
7a9d44c4cSArınç ÜNALtitle: MediaTek MT6795 Pin Controller
8a22452afSArınç ÜNAL
9a22452afSArınç ÜNALmaintainers:
10a22452afSArınç ÜNAL  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
11a22452afSArınç ÜNAL  - Sean Wang <sean.wang@kernel.org>
12a22452afSArınç ÜNAL
13c911ad22SArınç ÜNALdescription:
14a9d44c4cSArınç ÜNAL  The MediaTek's MT6795 Pin controller is used to control SoC pins.
15a22452afSArınç ÜNAL
16a22452afSArınç ÜNALproperties:
17a22452afSArınç ÜNAL  compatible:
18a22452afSArınç ÜNAL    const: mediatek,mt6795-pinctrl
19a22452afSArınç ÜNAL
20a22452afSArınç ÜNAL  gpio-controller: true
21a22452afSArınç ÜNAL
22a22452afSArınç ÜNAL  '#gpio-cells':
23c911ad22SArınç ÜNAL    description:
24a22452afSArınç ÜNAL      Number of cells in GPIO specifier. Since the generic GPIO binding is used,
25c911ad22SArınç ÜNAL      the amount of cells must be specified as 2. See the below mentioned gpio
26c911ad22SArınç ÜNAL      binding representation for description of particular cells.
27a22452afSArınç ÜNAL    const: 2
28a22452afSArınç ÜNAL
29a22452afSArınç ÜNAL  gpio-ranges:
30a22452afSArınç ÜNAL    description: GPIO valid number range.
31a22452afSArınç ÜNAL    maxItems: 1
32a22452afSArınç ÜNAL
33a22452afSArınç ÜNAL  reg:
34a22452afSArınç ÜNAL    description:
35c911ad22SArınç ÜNAL      Physical address base for GPIO base and eint registers.
36a22452afSArınç ÜNAL    minItems: 2
37a22452afSArınç ÜNAL
38a22452afSArınç ÜNAL  reg-names:
39a22452afSArınç ÜNAL    items:
40a22452afSArınç ÜNAL      - const: base
41a22452afSArınç ÜNAL      - const: eint
42a22452afSArınç ÜNAL
43a22452afSArınç ÜNAL  interrupt-controller: true
44a22452afSArınç ÜNAL
45a22452afSArınç ÜNAL  '#interrupt-cells':
46a22452afSArınç ÜNAL    const: 2
47a22452afSArınç ÜNAL
48a22452afSArınç ÜNAL  interrupts:
49a22452afSArınç ÜNAL    description: Interrupt outputs to the system interrupt controller (sysirq).
50a22452afSArınç ÜNAL    minItems: 1
51a22452afSArınç ÜNAL    items:
52a22452afSArınç ÜNAL      - description: EINT interrupt
53a22452afSArınç ÜNAL      - description: EINT event_b interrupt
54a22452afSArınç ÜNAL
55a22452afSArınç ÜNAL# PIN CONFIGURATION NODES
56a22452afSArınç ÜNALpatternProperties:
57a22452afSArınç ÜNAL  '-pins$':
58a22452afSArınç ÜNAL    type: object
59a22452afSArınç ÜNAL    additionalProperties: false
60a22452afSArınç ÜNAL    patternProperties:
61a22452afSArınç ÜNAL      '^pins':
62a22452afSArınç ÜNAL        type: object
63a22452afSArınç ÜNAL        additionalProperties: false
64a22452afSArınç ÜNAL        description: |
65a22452afSArınç ÜNAL          A pinctrl node should contain at least one subnodes representing the
66a22452afSArınç ÜNAL          pinctrl groups available on the machine. Each subnode will list the
67a22452afSArınç ÜNAL          pins it needs, and how they should be configured, with regard to muxer
68c911ad22SArınç ÜNAL          configuration, pullups, drive strength, input enable/disable and input
69c911ad22SArınç ÜNAL          schmitt.
70a22452afSArınç ÜNAL          An example of using macro:
71a22452afSArınç ÜNAL          pincontroller {
72a22452afSArınç ÜNAL            /* GPIO0 set as multifunction GPIO0 */
73a22452afSArınç ÜNAL            gpio-pins {
74a22452afSArınç ÜNAL              pins {
75a22452afSArınç ÜNAL                pinmux = <PINMUX_GPIO0__FUNC_GPIO0>;
76a22452afSArınç ÜNAL              }
77a22452afSArınç ÜNAL            };
78a22452afSArınç ÜNAL            /* GPIO45 set as multifunction SDA0 */
79a22452afSArınç ÜNAL            i2c0-pins {
80a22452afSArınç ÜNAL              pins {
81a22452afSArınç ÜNAL                pinmux = <PINMUX_GPIO45__FUNC_SDA0>;
82a22452afSArınç ÜNAL              }
83a22452afSArınç ÜNAL            };
84a22452afSArınç ÜNAL          };
856a735ad5SArınç ÜNAL        $ref: pinmux-node.yaml
86a22452afSArınç ÜNAL
87a22452afSArınç ÜNAL        properties:
88a22452afSArınç ÜNAL          pinmux:
89c911ad22SArınç ÜNAL            description:
90a22452afSArınç ÜNAL              Integer array, represents gpio pin number and mux setting.
91a22452afSArınç ÜNAL              Supported pin number and mux varies for different SoCs, and are
92c911ad22SArınç ÜNAL              defined as macros in dt-bindings/pinctrl/<soc>-pinfunc.h directly.
93a22452afSArınç ÜNAL
94a22452afSArınç ÜNAL          drive-strength:
95a22452afSArınç ÜNAL            enum: [2, 4, 6, 8, 10, 12, 14, 16]
96a22452afSArınç ÜNAL
97a22452afSArınç ÜNAL          bias-pull-down:
98a22452afSArınç ÜNAL            oneOf:
99a22452afSArınç ÜNAL              - type: boolean
100a22452afSArınç ÜNAL              - enum: [100, 101, 102, 103]
101a22452afSArınç ÜNAL                description: mt6795 pull down PUPD/R0/R1 type define value.
102c911ad22SArınç ÜNAL            description:
103a22452afSArınç ÜNAL              For normal pull down type, it is not necessary to specify R1R0
104a22452afSArınç ÜNAL              values; When pull down type is PUPD/R0/R1, adding R1R0 defines
105a22452afSArınç ÜNAL              will set different resistance values.
106a22452afSArınç ÜNAL
107a22452afSArınç ÜNAL          bias-pull-up:
108a22452afSArınç ÜNAL            oneOf:
109a22452afSArınç ÜNAL              - type: boolean
110a22452afSArınç ÜNAL              - enum: [100, 101, 102, 103]
111a22452afSArınç ÜNAL                description: mt6795 pull up PUPD/R0/R1 type define value.
112c911ad22SArınç ÜNAL            description:
113a22452afSArınç ÜNAL              For normal pull up type, it is not necessary to specify R1R0
114c911ad22SArınç ÜNAL              values; When pull up type is PUPD/R0/R1, adding R1R0 defines will
115c911ad22SArınç ÜNAL              set different resistance values.
116a22452afSArınç ÜNAL
117a22452afSArınç ÜNAL          bias-disable: true
118a22452afSArınç ÜNAL
119a22452afSArınç ÜNAL          output-high: true
120a22452afSArınç ÜNAL
121a22452afSArınç ÜNAL          output-low: true
122a22452afSArınç ÜNAL
123a22452afSArınç ÜNAL          input-enable: true
124a22452afSArınç ÜNAL
125a22452afSArınç ÜNAL          input-disable: true
126a22452afSArınç ÜNAL
127a22452afSArınç ÜNAL          input-schmitt-enable: true
128a22452afSArınç ÜNAL
129a22452afSArınç ÜNAL          input-schmitt-disable: true
130a22452afSArınç ÜNAL
131a22452afSArınç ÜNAL          mediatek,pull-up-adv:
132a22452afSArınç ÜNAL            description: |
133*47aab533SBjorn Helgaas              Pull up settings for 2 pull resistors, R0 and R1. User can
134c911ad22SArınç ÜNAL              configure those special pins. Valid arguments are described as
135c911ad22SArınç ÜNAL              below:
136a22452afSArınç ÜNAL              0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
137a22452afSArınç ÜNAL              1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
138a22452afSArınç ÜNAL              2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
139a22452afSArınç ÜNAL              3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
140a22452afSArınç ÜNAL            $ref: /schemas/types.yaml#/definitions/uint32
141a22452afSArınç ÜNAL            enum: [0, 1, 2, 3]
142a22452afSArınç ÜNAL
143a22452afSArınç ÜNAL          mediatek,pull-down-adv:
144a22452afSArınç ÜNAL            description: |
145a22452afSArınç ÜNAL              Pull down settings for 2 pull resistors, R0 and R1. User can
146c911ad22SArınç ÜNAL              configure those special pins. Valid arguments are described as
147c911ad22SArınç ÜNAL              below:
148a22452afSArınç ÜNAL              0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
149a22452afSArınç ÜNAL              1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
150a22452afSArınç ÜNAL              2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
151a22452afSArınç ÜNAL              3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
152a22452afSArınç ÜNAL            $ref: /schemas/types.yaml#/definitions/uint32
153a22452afSArınç ÜNAL            enum: [0, 1, 2, 3]
154a22452afSArınç ÜNAL
155a22452afSArınç ÜNAL        required:
156a22452afSArınç ÜNAL          - pinmux
157a22452afSArınç ÜNAL
158a22452afSArınç ÜNALallOf:
1596a735ad5SArınç ÜNAL  - $ref: pinctrl.yaml#
160a22452afSArınç ÜNAL
161a22452afSArınç ÜNALrequired:
162a22452afSArınç ÜNAL  - compatible
163a22452afSArınç ÜNAL  - reg
164a22452afSArınç ÜNAL  - reg-names
165a22452afSArınç ÜNAL  - interrupts
166a22452afSArınç ÜNAL  - interrupt-controller
167a22452afSArınç ÜNAL  - '#interrupt-cells'
168a22452afSArınç ÜNAL  - gpio-controller
169a22452afSArınç ÜNAL  - '#gpio-cells'
170a22452afSArınç ÜNAL  - gpio-ranges
171a22452afSArınç ÜNAL
172a22452afSArınç ÜNALadditionalProperties: false
173a22452afSArınç ÜNAL
174a22452afSArınç ÜNALexamples:
175a22452afSArınç ÜNAL  - |
176a22452afSArınç ÜNAL    #include <dt-bindings/interrupt-controller/arm-gic.h>
177a22452afSArınç ÜNAL    #include <dt-bindings/interrupt-controller/irq.h>
178a22452afSArınç ÜNAL    #include <dt-bindings/pinctrl/mt6795-pinfunc.h>
179a22452afSArınç ÜNAL
180a22452afSArınç ÜNAL    soc {
181a22452afSArınç ÜNAL        #address-cells = <2>;
182a22452afSArınç ÜNAL        #size-cells = <2>;
183a22452afSArınç ÜNAL
184a22452afSArınç ÜNAL        pio: pinctrl@10005000 {
185a22452afSArınç ÜNAL            compatible = "mediatek,mt6795-pinctrl";
186a22452afSArınç ÜNAL            reg = <0 0x10005000 0 0x1000>, <0 0x1000b000 0 0x1000>;
187a22452afSArınç ÜNAL            reg-names = "base", "eint";
188a22452afSArınç ÜNAL            gpio-controller;
189a22452afSArınç ÜNAL            #gpio-cells = <2>;
190a22452afSArınç ÜNAL            gpio-ranges = <&pio 0 0 196>;
191a22452afSArınç ÜNAL            interrupt-controller;
192a22452afSArınç ÜNAL            interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
193a22452afSArınç ÜNAL            #interrupt-cells = <2>;
194a22452afSArınç ÜNAL
195a22452afSArınç ÜNAL            i2c0-pins {
196a22452afSArınç ÜNAL                pins-sda-scl {
197a22452afSArınç ÜNAL                    pinmux = <PINMUX_GPIO45__FUNC_SDA0>,
198a22452afSArınç ÜNAL                             <PINMUX_GPIO46__FUNC_SCL0>;
199a22452afSArınç ÜNAL                };
200a22452afSArınç ÜNAL            };
201a22452afSArınç ÜNAL
202a22452afSArınç ÜNAL            mmc0-pins {
203a22452afSArınç ÜNAL                pins-cmd-dat {
204a22452afSArınç ÜNAL                    pinmux = <PINMUX_GPIO154__FUNC_MSDC0_DAT0>,
205a22452afSArınç ÜNAL                             <PINMUX_GPIO155__FUNC_MSDC0_DAT1>,
206a22452afSArınç ÜNAL                             <PINMUX_GPIO156__FUNC_MSDC0_DAT2>,
207a22452afSArınç ÜNAL                             <PINMUX_GPIO157__FUNC_MSDC0_DAT3>,
208a22452afSArınç ÜNAL                             <PINMUX_GPIO158__FUNC_MSDC0_DAT4>,
209a22452afSArınç ÜNAL                             <PINMUX_GPIO159__FUNC_MSDC0_DAT5>,
210a22452afSArınç ÜNAL                             <PINMUX_GPIO160__FUNC_MSDC0_DAT6>,
211a22452afSArınç ÜNAL                             <PINMUX_GPIO161__FUNC_MSDC0_DAT7>,
212a22452afSArınç ÜNAL                             <PINMUX_GPIO162__FUNC_MSDC0_CMD>;
213a22452afSArınç ÜNAL                    input-enable;
214a22452afSArınç ÜNAL                    bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
215a22452afSArınç ÜNAL                };
216a22452afSArınç ÜNAL
217a22452afSArınç ÜNAL                pins-clk {
218a22452afSArınç ÜNAL                    pinmux = <PINMUX_GPIO163__FUNC_MSDC0_CLK>;
219a22452afSArınç ÜNAL                    bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
220a22452afSArınç ÜNAL                };
221a22452afSArınç ÜNAL
222a22452afSArınç ÜNAL                pins-rst {
223a22452afSArınç ÜNAL                    pinmux = <PINMUX_GPIO165__FUNC_MSDC0_RSTB>;
224a22452afSArınç ÜNAL                    bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
225a22452afSArınç ÜNAL                };
226a22452afSArınç ÜNAL            };
227a22452afSArınç ÜNAL        };
228a22452afSArınç ÜNAL    };
229