Skip to content

Commit 7ee193e

Browse files
Andy Tenglinusw
authored andcommitted
dt-bindings: pinctrl: add bindings for MediaTek MT6779 SoC
Add devicetree bindings for MediaTek MT6779 pinctrl driver. Signed-off-by: Andy Teng <[email protected]> Signed-off-by: Hanks Chen <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Linus Walleij <[email protected]>
1 parent 1de39b6 commit 7ee193e

File tree

1 file changed

+202
-0
lines changed

1 file changed

+202
-0
lines changed
Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/mediatek,mt6779-pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Mediatek MT6779 Pin Controller Device Tree Bindings
8+
9+
maintainers:
10+
- Andy Teng <[email protected]>
11+
12+
description: |+
13+
The pin controller node should be the child of a syscon node with the
14+
required property:
15+
- compatible: "syscon"
16+
17+
properties:
18+
compatible:
19+
const: mediatek,mt6779-pinctrl
20+
21+
reg:
22+
minItems: 9
23+
maxItems: 9
24+
25+
reg-names:
26+
items:
27+
- const: "gpio"
28+
- const: "iocfg_rm"
29+
- const: "iocfg_br"
30+
- const: "iocfg_lm"
31+
- const: "iocfg_lb"
32+
- const: "iocfg_rt"
33+
- const: "iocfg_lt"
34+
- const: "iocfg_tl"
35+
- const: "eint"
36+
37+
gpio-controller: true
38+
39+
"#gpio-cells":
40+
const: 2
41+
description: |
42+
Number of cells in GPIO specifier. Since the generic GPIO
43+
binding is used, the amount of cells must be specified as 2. See the below
44+
mentioned gpio binding representation for description of particular cells.
45+
46+
gpio-ranges:
47+
minItems: 1
48+
maxItems: 5
49+
description: |
50+
GPIO valid number range.
51+
52+
interrupt-controller: true
53+
54+
interrupts:
55+
maxItems: 1
56+
description: |
57+
Specifies the summary IRQ.
58+
59+
"#interrupt-cells":
60+
const: 2
61+
62+
required:
63+
- compatible
64+
- reg
65+
- reg-names
66+
- gpio-controller
67+
- "#gpio-cells"
68+
- gpio-ranges
69+
- interrupt-controller
70+
- interrupts
71+
- "#interrupt-cells"
72+
73+
patternProperties:
74+
'-[0-9]*$':
75+
type: object
76+
patternProperties:
77+
'-pins*$':
78+
type: object
79+
description: |
80+
A pinctrl node should contain at least one subnodes representing the
81+
pinctrl groups available on the machine. Each subnode will list the
82+
pins it needs, and how they should be configured, with regard to muxer
83+
configuration, pullups, drive strength, input enable/disable and input schmitt.
84+
$ref: "/schemas/pinctrl/pincfg-node.yaml"
85+
86+
properties:
87+
pinmux:
88+
description:
89+
integer array, represents gpio pin number and mux setting.
90+
Supported pin number and mux varies for different SoCs, and are defined
91+
as macros in boot/dts/<soc>-pinfunc.h directly.
92+
93+
bias-disable: true
94+
95+
bias-pull-up: true
96+
97+
bias-pull-down: true
98+
99+
input-enable: true
100+
101+
input-disable: true
102+
103+
output-low: true
104+
105+
output-high: true
106+
107+
input-schmitt-enable: true
108+
109+
input-schmitt-disable: true
110+
111+
mediatek,pull-up-adv:
112+
description: |
113+
Pull up setings for 2 pull resistors, R0 and R1. User can
114+
configure those special pins. Valid arguments are described as below:
115+
0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
116+
1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
117+
2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
118+
3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
119+
$ref: /schemas/types.yaml#/definitions/uint32
120+
enum: [0, 1, 2, 3]
121+
122+
mediatek,pull-down-adv:
123+
description: |
124+
Pull down settings for 2 pull resistors, R0 and R1. User can
125+
configure those special pins. Valid arguments are described as below:
126+
0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
127+
1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
128+
2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
129+
3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
130+
$ref: /schemas/types.yaml#/definitions/uint32
131+
enum: [0, 1, 2, 3]
132+
133+
required:
134+
- pinmux
135+
136+
additionalProperties: false
137+
138+
additionalProperties: false
139+
140+
examples:
141+
- |
142+
#include <dt-bindings/interrupt-controller/irq.h>
143+
#include <dt-bindings/interrupt-controller/arm-gic.h>
144+
#include <dt-bindings/pinctrl/mt6779-pinfunc.h>
145+
146+
soc {
147+
#address-cells = <2>;
148+
#size-cells = <2>;
149+
150+
pio: pinctrl@10005000 {
151+
compatible = "mediatek,mt6779-pinctrl";
152+
reg = <0 0x10005000 0 0x1000>,
153+
<0 0x11c20000 0 0x1000>,
154+
<0 0x11d10000 0 0x1000>,
155+
<0 0x11e20000 0 0x1000>,
156+
<0 0x11e70000 0 0x1000>,
157+
<0 0x11ea0000 0 0x1000>,
158+
<0 0x11f20000 0 0x1000>,
159+
<0 0x11f30000 0 0x1000>,
160+
<0 0x1000b000 0 0x1000>;
161+
reg-names = "gpio", "iocfg_rm",
162+
"iocfg_br", "iocfg_lm",
163+
"iocfg_lb", "iocfg_rt",
164+
"iocfg_lt", "iocfg_tl",
165+
"eint";
166+
gpio-controller;
167+
#gpio-cells = <2>;
168+
gpio-ranges = <&pio 0 0 210>;
169+
interrupt-controller;
170+
#interrupt-cells = <2>;
171+
interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>;
172+
173+
mmc0_pins_default: mmc0-0 {
174+
cmd-dat-pins {
175+
pinmux = <PINMUX_GPIO168__FUNC_MSDC0_DAT0>,
176+
<PINMUX_GPIO172__FUNC_MSDC0_DAT1>,
177+
<PINMUX_GPIO169__FUNC_MSDC0_DAT2>,
178+
<PINMUX_GPIO177__FUNC_MSDC0_DAT3>,
179+
<PINMUX_GPIO170__FUNC_MSDC0_DAT4>,
180+
<PINMUX_GPIO173__FUNC_MSDC0_DAT5>,
181+
<PINMUX_GPIO171__FUNC_MSDC0_DAT6>,
182+
<PINMUX_GPIO174__FUNC_MSDC0_DAT7>,
183+
<PINMUX_GPIO167__FUNC_MSDC0_CMD>;
184+
input-enable;
185+
mediatek,pull-up-adv = <1>;
186+
};
187+
clk-pins {
188+
pinmux = <PINMUX_GPIO176__FUNC_MSDC0_CLK>;
189+
mediatek,pull-down-adv = <2>;
190+
};
191+
rst-pins {
192+
pinmux = <PINMUX_GPIO178__FUNC_MSDC0_RSTB>;
193+
mediatek,pull-up-adv = <0>;
194+
};
195+
};
196+
};
197+
198+
mmc0 {
199+
pinctrl-0 = <&mmc0_pins_default>;
200+
pinctrl-names = "default";
201+
};
202+
};

0 commit comments

Comments
 (0)