Skip to content

Commit 186f3ed

Browse files
committed
Merge tag 'pinctrl-v6.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij: "Nothing stands out, apart from maybe the interesting Eswin EIC7700, a RISC-V SoC I've never seen before. Core changes: - Open code PINCTRL_FUNCTION_DESC() instead of defining a complex macro only used in one place - Add pinmux_generic_add_pinfunction() helper and use this in a few drivers New drivers: - Amlogic S7, S7D and S6 pin control support - Eswin EIC7700 pin control support - Qualcomm PMIV0104, PM7550 and Milos pin control support Because of unhelpful numbering schemes, the Qualcomm driver now needs to start to rely on SoC codenames - STM32 HDP pin control support - Mediatek MT8189 pin control support Improvements: - Switch remaining pin control drivers over to the new GPIO set callback that provides a return value - Support RSVD (reserved) pins in the STM32 driver - Move many fixed assignments over to pinctrl_desc definitions - Handle multiple TLMM regions in the Qualcomm driver" * tag 'pinctrl-v6.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (105 commits) pinctrl: mediatek: Add pinctrl driver for mt8189 dt-bindings: pinctrl: mediatek: Add support for mt8189 pinctrl: aspeed-g6: Add PCIe RC PERST pin group pinctrl: ingenic: use pinmux_generic_add_pinfunction() pinctrl: keembay: use pinmux_generic_add_pinfunction() pinctrl: mediatek: moore: use pinmux_generic_add_pinfunction() pinctrl: airoha: use pinmux_generic_add_pinfunction() pinctrl: equilibrium: use pinmux_generic_add_pinfunction() pinctrl: provide pinmux_generic_add_pinfunction() pinctrl: pinmux: open-code PINCTRL_FUNCTION_DESC() pinctrl: ma35: use new GPIO line value setter callbacks MAINTAINERS: add Clément Le Goffic as STM32 HDP maintainer pinctrl: stm32: Introduce HDP driver dt-bindings: pinctrl: stm32: Introduce HDP pinctrl: qcom: Add Milos pinctrl driver dt-bindings: pinctrl: document the Milos Top Level Mode Multiplexer pinctrl: qcom: spmi: Add PM7550 dt-bindings: pinctrl: qcom,pmic-gpio: Add PM7550 support pinctrl: qcom: spmi: Add PMIV0104 dt-bindings: pinctrl: qcom,pmic-gpio: Add PMIV0104 support ...
2 parents eacf91b + a3fe132 commit 186f3ed

File tree

109 files changed

+8726
-548
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+8726
-548
lines changed

Documentation/devicetree/bindings/pinctrl/amlogic,pinctrl-a4.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,18 @@ allOf:
1515
properties:
1616
compatible:
1717
oneOf:
18-
- const: amlogic,pinctrl-a4
18+
- enum:
19+
- amlogic,pinctrl-a4
20+
- amlogic,pinctrl-s6
21+
- amlogic,pinctrl-s7
1922
- items:
2023
- enum:
2124
- amlogic,pinctrl-a5
2225
- const: amlogic,pinctrl-a4
26+
- items:
27+
- enum:
28+
- amlogic,pinctrl-s7d
29+
- const: amlogic,pinctrl-s7
2330

2431
"#address-cells":
2532
const: 2
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/eswin,eic7700-pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Eswin Eic7700 Pinctrl
8+
9+
maintainers:
10+
- Yulin Lu <luyulin@eswincomputing.com>
11+
12+
allOf:
13+
- $ref: pinctrl.yaml#
14+
15+
description: |
16+
eic7700 pin configuration nodes act as a container for an arbitrary number of
17+
subnodes. Each of these subnodes represents some desired configuration for one or
18+
more pins. This configuration can include the mux function to select on those pin(s),
19+
and various pin configuration parameters, such as input-enable, pull-up, etc.
20+
21+
properties:
22+
compatible:
23+
const: eswin,eic7700-pinctrl
24+
25+
reg:
26+
maxItems: 1
27+
28+
vrgmii-supply:
29+
description:
30+
Regulator supply for the RGMII interface IO power domain.
31+
This property should reference a regulator that provides either 1.8V or 3.3V,
32+
depending on the board-level voltage configuration required by the RGMII interface.
33+
34+
patternProperties:
35+
'-grp$':
36+
type: object
37+
additionalProperties: false
38+
39+
patternProperties:
40+
'-pins$':
41+
type: object
42+
43+
properties:
44+
pins:
45+
description:
46+
For eic7700, specifies the name(s) of one or more pins to be configured by
47+
this node.
48+
items:
49+
enum: [ chip_mode, mode_set0, mode_set1, mode_set2, mode_set3, xin,
50+
rst_out_n, key_reset_n, gpio0, por_sel, jtag0_tck, jtag0_tms,
51+
jtag0_tdi, jtag0_tdo, gpio5, spi2_cs0_n, jtag1_tck, jtag1_tms,
52+
jtag1_tdi, jtag1_tdo, gpio11, spi2_cs1_n, pcie_clkreq_n,
53+
pcie_wake_n, pcie_perst_n, hdmi_scl, hdmi_sda, hdmi_cec,
54+
jtag2_trst, rgmii0_clk_125, rgmii0_txen, rgmii0_txclk,
55+
rgmii0_txd0, rgmii0_txd1, rgmii0_txd2, rgmii0_txd3, i2s0_bclk,
56+
i2s0_wclk, i2s0_sdi, i2s0_sdo, i2s_mclk, rgmii0_rxclk,
57+
rgmii0_rxdv, rgmii0_rxd0, rgmii0_rxd1, rgmii0_rxd2, rgmii0_rxd3,
58+
i2s2_bclk, i2s2_wclk, i2s2_sdi, i2s2_sdo, gpio27, gpio28, gpio29,
59+
rgmii0_mdc, rgmii0_mdio, rgmii0_intb, rgmii1_clk_125, rgmii1_txen,
60+
rgmii1_txclk, rgmii1_txd0, rgmii1_txd1, rgmii1_txd2, rgmii1_txd3,
61+
i2s1_bclk, i2s1_wclk, i2s1_sdi, i2s1_sdo, gpio34, rgmii1_rxclk,
62+
rgmii1_rxdv, rgmii1_rxd0, rgmii1_rxd1, rgmii1_rxd2, rgmii1_rxd3,
63+
spi1_cs0_n, spi1_clk, spi1_d0, spi1_d1, spi1_d2, spi1_d3, spi1_cs1_n,
64+
rgmii1_mdc, rgmii1_mdio, rgmii1_intb, usb0_pwren, usb1_pwren,
65+
i2c0_scl, i2c0_sda, i2c1_scl, i2c1_sda, i2c2_scl, i2c2_sda,
66+
i2c3_scl, i2c3_sda, i2c4_scl, i2c4_sda, i2c5_scl, i2c5_sda,
67+
uart0_tx, uart0_rx, uart1_tx, uart1_rx, uart1_cts, uart1_rts,
68+
uart2_tx, uart2_rx, jtag2_tck, jtag2_tms, jtag2_tdi, jtag2_tdo,
69+
fan_pwm, fan_tach, mipi_csi0_xvs, mipi_csi0_xhs, mipi_csi0_mclk,
70+
mipi_csi1_xvs, mipi_csi1_xhs, mipi_csi1_mclk, mipi_csi2_xvs,
71+
mipi_csi2_xhs, mipi_csi2_mclk, mipi_csi3_xvs, mipi_csi3_xhs,
72+
mipi_csi3_mclk, mipi_csi4_xvs, mipi_csi4_xhs, mipi_csi4_mclk,
73+
mipi_csi5_xvs, mipi_csi5_xhs, mipi_csi5_mclk, spi3_cs_n, spi3_clk,
74+
spi3_di, spi3_do, gpio92, gpio93, s_mode, gpio95, spi0_cs_n,
75+
spi0_clk, spi0_d0, spi0_d1, spi0_d2, spi0_d3, i2c10_scl,
76+
i2c10_sda, i2c11_scl, i2c11_sda, gpio106, boot_sel0, boot_sel1,
77+
boot_sel2, boot_sel3, gpio111, lpddr_ref_clk ]
78+
79+
function:
80+
description:
81+
Specify the alternative function to be configured for the
82+
given pins.
83+
enum: [ disabled, boot_sel, chip_mode, emmc, fan_tach,
84+
gpio, hdmi, i2c, i2s, jtag, ddr_ref_clk_sel,
85+
lpddr_ref_clk, mipi_csi, osc, pcie, pwm,
86+
rgmii, reset, sata, sdio, spi, s_mode, uart, usb ]
87+
88+
input-schmitt-enable: true
89+
90+
input-schmitt-disable: true
91+
92+
bias-disable: true
93+
94+
bias-pull-down: true
95+
96+
bias-pull-up: true
97+
98+
input-enable: true
99+
100+
input-disable: true
101+
102+
drive-strength-microamp: true
103+
104+
required:
105+
- pins
106+
107+
additionalProperties: false
108+
109+
allOf:
110+
- $ref: pincfg-node.yaml#
111+
- $ref: pinmux-node.yaml#
112+
113+
- if:
114+
properties:
115+
pins:
116+
anyOf:
117+
- pattern: '^rgmii'
118+
- const: lpddr_ref_clk
119+
then:
120+
properties:
121+
drive-strength-microamp:
122+
enum: [3000, 6000, 9000, 12000, 15000, 18000, 21000, 24000]
123+
else:
124+
properties:
125+
drive-strength-microamp:
126+
enum: [6000, 9000, 12000, 15000, 18000, 21000, 24000, 27000]
127+
128+
required:
129+
- compatible
130+
- reg
131+
132+
unevaluatedProperties: false
133+
134+
examples:
135+
- |
136+
pinctrl@51600080 {
137+
compatible = "eswin,eic7700-pinctrl";
138+
reg = <0x51600080 0x1fff80>;
139+
vrgmii-supply = <&vcc_1v8>;
140+
141+
dev-active-grp {
142+
/* group node defining 1 standard pin */
143+
gpio10-pins {
144+
pins = "jtag1_tdo";
145+
function = "gpio";
146+
input-enable;
147+
bias-pull-up;
148+
};
149+
150+
/* group node defining 2 I2C pins */
151+
i2c6-pins {
152+
pins = "uart1_cts", "uart1_rts";
153+
function = "i2c";
154+
};
155+
};
156+
};
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 <lei.xue@mediatek.com>
11+
- Cathy Xu <ot_cathy.xu@mediatek.com>
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)