Skip to content

Commit b225010

Browse files
CathyXu12linusw
authored andcommitted
dt-bindings: pinctrl: mediatek: Add support for mt8189
Add the new binding document for pinctrl on MediaTek mt8189. Signed-off-by: Cathy Xu <[email protected]> Reviewed-by: AngeloGioacchino Del Regno <[email protected]> Reviewed-by: Rob Herring (Arm) <[email protected]> Link: https://lore.kernel.org/[email protected] Signed-off-by: Linus Walleij <[email protected]>
1 parent b1d4c90 commit b225010

File tree

1 file changed

+213
-0
lines changed

1 file changed

+213
-0
lines changed
Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
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,mt8189-pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: MediaTek MT8189 Pin Controller
8+
9+
maintainers:
10+
- Lei Xue <[email protected]>
11+
- Cathy Xu <[email protected]>
12+
13+
description:
14+
The MediaTek's MT8189 Pin controller is used to control SoC pins.
15+
16+
properties:
17+
compatible:
18+
const: mediatek,mt8189-pinctrl
19+
20+
reg:
21+
items:
22+
- description: gpio base
23+
- description: lm group IO
24+
- description: rb0 group IO
25+
- description: rb1 group IO
26+
- description: bm0 group IO
27+
- description: bm1 group IO
28+
- description: bm2 group IO
29+
- description: lt0 group IO
30+
- description: lt1 group IO
31+
- description: rt group IO
32+
- description: eint0 group IO
33+
- description: eint1 group IO
34+
- description: eint2 group IO
35+
- description: eint3 group IO
36+
- description: eint4 group IO
37+
38+
reg-names:
39+
items:
40+
- const: base
41+
- const: lm
42+
- const: rb0
43+
- const: rb1
44+
- const: bm0
45+
- const: bm1
46+
- const: bm2
47+
- const: lt0
48+
- const: lt1
49+
- const: rt
50+
- const: eint0
51+
- const: eint1
52+
- const: eint2
53+
- const: eint3
54+
- const: eint4
55+
56+
interrupts:
57+
maxItems: 1
58+
59+
interrupt-controller: true
60+
61+
'#interrupt-cells':
62+
const: 2
63+
64+
gpio-controller: true
65+
66+
'#gpio-cells':
67+
const: 2
68+
69+
gpio-ranges:
70+
maxItems: 1
71+
72+
gpio-line-names: true
73+
74+
# PIN CONFIGURATION NODES
75+
patternProperties:
76+
'-pins$':
77+
type: object
78+
additionalProperties: false
79+
80+
patternProperties:
81+
'^pins':
82+
type: object
83+
$ref: /schemas/pinctrl/pincfg-node.yaml
84+
additionalProperties: false
85+
description:
86+
A pinctrl node should contain at least one subnode representing the
87+
pinctrl groups available on the machine. Each subnode will list the
88+
pins it needs, and how they should be configured, with regard to muxer
89+
configuration, pullups, drive strength, input enable/disable and input
90+
schmitt.
91+
92+
properties:
93+
pinmux:
94+
description:
95+
Integer array, represents gpio pin number and mux setting.
96+
Supported pin number and mux varies for different SoCs, and are
97+
defined as macros in arch/arm64/boot/dts/mediatek/mt8189-pinfunc.h
98+
directly, for this SoC.
99+
100+
drive-strength:
101+
enum: [2, 4, 6, 8, 10, 12, 14, 16]
102+
103+
bias-pull-down:
104+
oneOf:
105+
- type: boolean
106+
- enum: [100, 101, 102, 103]
107+
description: mt8189 pull down PUPD/R0/R1 type define value.
108+
- enum: [75000, 5000]
109+
description: mt8189 pull down RSEL type si unit value(ohm).
110+
description: |
111+
For pull down type is normal, it doesn't need add R1R0 define
112+
and resistance value.
113+
114+
For pull down type is PUPD/R0/R1 type, it can add R1R0 define to
115+
set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
116+
"MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
117+
"MTK_PUPD_SET_R1R0_11" define in mt8189.
118+
119+
For pull down type is PD/RSEL, it can add resistance value(ohm)
120+
to set different resistance by identifying property
121+
"mediatek,rsel-resistance-in-si-unit".
122+
123+
bias-pull-up:
124+
oneOf:
125+
- type: boolean
126+
- enum: [100, 101, 102, 103]
127+
description: mt8189 pull up PUPD/R0/R1 type define value.
128+
- enum: [1000, 1500, 2000, 3000, 4000, 5000, 75000]
129+
description: mt8189 pull up RSEL type si unit value(ohm).
130+
description: |
131+
For pull up type is normal, it don't need add R1R0 define
132+
and resistance value.
133+
134+
For pull up type is PUPD/R0/R1 type, it can add R1R0 define to
135+
set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
136+
"MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
137+
"MTK_PUPD_SET_R1R0_11" define in mt8189.
138+
139+
For pull up type is PU/RSEL, it can add resistance value(ohm)
140+
to set different resistance by identifying property
141+
"mediatek,rsel-resistance-in-si-unit".
142+
143+
bias-disable: true
144+
145+
output-high: true
146+
147+
output-low: true
148+
149+
input-enable: true
150+
151+
input-disable: true
152+
153+
input-schmitt-enable: true
154+
155+
input-schmitt-disable: true
156+
157+
required:
158+
- pinmux
159+
160+
required:
161+
- compatible
162+
- reg
163+
- interrupts
164+
- interrupt-controller
165+
- '#interrupt-cells'
166+
- gpio-controller
167+
- '#gpio-cells'
168+
- gpio-ranges
169+
170+
additionalProperties: false
171+
172+
examples:
173+
- |
174+
#include <dt-bindings/pinctrl/mt65xx.h>
175+
#include <dt-bindings/interrupt-controller/arm-gic.h>
176+
#define PINMUX_GPIO51__FUNC_SCL0 (MTK_PIN_NO(51) | 2)
177+
#define PINMUX_GPIO52__FUNC_SDA0 (MTK_PIN_NO(52) | 2)
178+
179+
pio: pinctrl@10005000 {
180+
compatible = "mediatek,mt8189-pinctrl";
181+
reg = <0x10005000 0x1000>,
182+
<0x11b50000 0x1000>,
183+
<0x11c50000 0x1000>,
184+
<0x11c60000 0x1000>,
185+
<0x11d20000 0x1000>,
186+
<0x11d30000 0x1000>,
187+
<0x11d40000 0x1000>,
188+
<0x11e20000 0x1000>,
189+
<0x11e30000 0x1000>,
190+
<0x11f20000 0x1000>,
191+
<0x11ce0000 0x1000>,
192+
<0x11de0000 0x1000>,
193+
<0x11e60000 0x1000>,
194+
<0x1c01e000 0x1000>,
195+
<0x11f00000 0x1000>;
196+
reg-names = "base", "lm", "rb0", "rb1", "bm0" , "bm1",
197+
"bm2", "lt0", "lt1", "rt", "eint0", "eint1",
198+
"eint2", "eint3", "eint4";
199+
gpio-controller;
200+
#gpio-cells = <2>;
201+
gpio-ranges = <&pio 0 0 182>;
202+
interrupt-controller;
203+
interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH 0>;
204+
#interrupt-cells = <2>;
205+
206+
i2c0-pins {
207+
pins {
208+
pinmux = <PINMUX_GPIO51__FUNC_SCL0>,
209+
<PINMUX_GPIO52__FUNC_SDA0>;
210+
bias-disable;
211+
};
212+
};
213+
};

0 commit comments

Comments
 (0)