Skip to content

Commit ff61bc8

Browse files
committed
Merge tag 'pinctrl-v5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij: "No core changes this time. Just new driver code and improvements! New drivers: - New driver for the Broadcom BCM4908 SoC. - New subdriver for Tesla FSD (Full Self Driving) SoC, a derivative of the Samsung Exynos pin control driver. - New driver for the Amlogic Meson S4 SoC. - New driver for the Sunplus SP7021 SoC. - New driver for the Microsemi Ocelot family ServalT SoC. - New subdriver for Intel Alder Lake-M SoC. - New subdriver for Intel Ice Lake-N SoC, including PCH support. - New subdriver for Renesas R8A779F0 SoC. - New subdriver for Mediatek MT8186 SoC. - New subdriver for NXP Freescale i.MX93 SoC. - New driver for Nuvoton WPCM450 SoC. - New driver for Qualcomm SC8280XP SoC. Improvements: - Wakeup support on Samsung Exynos850 and ExynosAutov9. - Serious and voluminous maintenance cleanup and refactoring in the Renesas drivers. Mainly sharing similar data between the different SoC subdrivers. - Qualcomm SM8450 EGPIO support. - Drive strength support on the Mediatek MT8195. - Add some missing groups and functions to the Ralink RT2880" * tag 'pinctrl-v5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (188 commits) pinctrl: mediatek: common-v1: fix semicolon.cocci warnings pinctrl: nuvoton: wpcm450: Fix build error without OF pinctrl: qcom-pmic-gpio: Add support for pm8450 dt-bindings: pinctrl: aspeed: Update gfx node in example dt-bindings: pinctrl: rt2880: add missing pin groups and functions pinctrl: ingenic: Fix regmap on X series SoCs pinctrl: nuvoton: Fix return value check in wpcm450_gpio_register() pinctrl: nuvoton: wpcm450: off by one in wpcm450_gpio_register() pinctrl: nuvoton: wpcm450: select GENERIC_PINCTRL_GROUPS pinctrl: nuvoton: Fix sparse warning pinctrl: mediatek: mt8186: Account for probe refactoring pinctrl: mediatek: common-v1: Commonize spec_ies_smt_set callback pinctrl: mediatek: common-v1: Commonize spec_pupd callback pinctrl: mediatek: common-v1: Use common probe function pinctrl: mediatek: common-v1: Add common probe function pinctrl: mediatek: paris: Unify probe function by using OF match data pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe pinctrl: berlin: fix error return code of berlin_pinctrl_build_state() pinctrl: qcom: Introduce sc8280xp TLMM driver ...
2 parents 901c728 + 4a6d014 commit ff61bc8

File tree

135 files changed

+19104
-3941
lines changed

Some content is hidden

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

135 files changed

+19104
-3941
lines changed

Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ additionalProperties: false
7575

7676
examples:
7777
- |
78+
#include <dt-bindings/clock/aspeed-clock.h>
7879
apb {
7980
compatible = "simple-bus";
8081
#address-cells = <1>;
@@ -84,6 +85,8 @@ examples:
8485
syscon: scu@1e6e2000 {
8586
compatible = "aspeed,ast2500-scu", "syscon", "simple-mfd";
8687
reg = <0x1e6e2000 0x1a8>;
88+
#clock-cells = <1>;
89+
#reset-cells = <1>;
8790
8891
pinctrl: pinctrl {
8992
compatible = "aspeed,ast2500-pinctrl";
@@ -104,6 +107,12 @@ examples:
104107
gfx: display@1e6e6000 {
105108
compatible = "aspeed,ast2500-gfx", "syscon";
106109
reg = <0x1e6e6000 0x1000>;
110+
reg-io-width = <4>;
111+
clocks = <&syscon ASPEED_CLK_GATE_D1CLK>;
112+
resets = <&syscon ASPEED_RESET_CRT1>;
113+
interrupts = <0x19>;
114+
syscon = <&syscon>;
115+
memory-region = <&gfx_memory>;
107116
};
108117
};
109118
@@ -130,3 +139,10 @@ examples:
130139
};
131140
};
132141
};
142+
143+
gfx_memory: framebuffer {
144+
size = <0x01000000>;
145+
alignment = <0x01000000>;
146+
compatible = "shared-dma-pool";
147+
reusable;
148+
};

Documentation/devicetree/bindings/pinctrl/brcm,bcm11351-pinctrl.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ Optional Properties (for I2C pins):
8585
- function: String. Specifies the pin mux selection. Values
8686
must be one of: "alt1", "alt2", "alt3", "alt4"
8787
- bias-pull-up: Integer. Pull up strength in Ohm. There are 3
88-
pull-up resisitors (1.2k, 1.8k, 2.7k) available
88+
pull-up resistors (1.2k, 1.8k, 2.7k) available
8989
in parallel for I2C pins, so the valid values
9090
are: 568, 720, 831, 1080, 1200, 1800, 2700 Ohm.
9191
- bias-disable: No arguments. Disable pin bias.
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/brcm,bcm4908-pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Broadcom BCM4908 pin controller
8+
9+
maintainers:
10+
- Rafał Miłecki <[email protected]>
11+
12+
description:
13+
Binding for pin controller present on BCM4908 family SoCs.
14+
15+
properties:
16+
compatible:
17+
const: brcm,bcm4908-pinctrl
18+
19+
reg:
20+
maxItems: 1
21+
22+
patternProperties:
23+
'-pins$':
24+
type: object
25+
$ref: pinmux-node.yaml#
26+
27+
properties:
28+
function:
29+
enum: [ led_0, led_1, led_2, led_3, led_4, led_5, led_6, led_7, led_8,
30+
led_9, led_10, led_11, led_12, led_13, led_14, led_15, led_16,
31+
led_17, led_18, led_19, led_20, led_21, led_22, led_23, led_24,
32+
led_25, led_26, led_27, led_28, led_29, led_30, led_31,
33+
hs_uart, i2c, i2s, nand_ctrl, nand_data, emmc_ctrl, usb0_pwr,
34+
usb1_pwr ]
35+
36+
groups:
37+
minItems: 1
38+
maxItems: 2
39+
items:
40+
enum: [ led_0_grp_a, led_1_grp_a, led_2_grp_a, led_3_grp_a,
41+
led_4_grp_a, led_5_grp_a, led_6_grp_a, led_7_grp_a,
42+
led_8_grp_a, led_9_grp_a, led_10_grp_a, led_10_grp_b,
43+
led_11_grp_a, led_11_grp_b, led_12_grp_a, led_12_grp_b,
44+
led_13_grp_a, led_13_grp_b, led_14_grp_a, led_15_grp_a,
45+
led_16_grp_a, led_17_grp_a, led_18_grp_a, led_19_grp_a,
46+
led_20_grp_a, led_21_grp_a, led_22_grp_a, led_23_grp_a,
47+
led_24_grp_a, led_25_grp_a, led_26_grp_a, led_27_grp_a,
48+
led_28_grp_a, led_29_grp_a, led_30_grp_a, led_31_grp_a,
49+
led_31_grp_b, hs_uart_grp, i2c_grp_a, i2c_grp_b, i2s_grp,
50+
nand_ctrl_grp, nand_data_grp, emmc_ctrl_grp, usb0_pwr_grp,
51+
usb1_pwr_grp ]
52+
53+
allOf:
54+
- $ref: pinctrl.yaml#
55+
56+
required:
57+
- compatible
58+
- reg
59+
60+
unevaluatedProperties: false
61+
62+
examples:
63+
- |
64+
pinctrl@ff800560 {
65+
compatible = "brcm,bcm4908-pinctrl";
66+
reg = <0xff800560 0x10>;
67+
68+
led_0-a-pins {
69+
function = "led_0";
70+
groups = "led_0_grp_a";
71+
};
72+
};
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/fsl,imx93-pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Freescale IMX93 IOMUX Controller
8+
9+
maintainers:
10+
- Peng Fan <[email protected]>
11+
12+
description:
13+
Please refer to fsl,imx-pinctrl.txt and pinctrl-bindings.txt in this directory
14+
for common binding part and usage.
15+
16+
allOf:
17+
- $ref: "pinctrl.yaml#"
18+
19+
properties:
20+
compatible:
21+
const: fsl,imx93-iomuxc
22+
23+
reg:
24+
maxItems: 1
25+
26+
# Client device subnode's properties
27+
patternProperties:
28+
'grp$':
29+
type: object
30+
description:
31+
Pinctrl node's client devices use subnodes for desired pin configuration.
32+
Client device subnodes use below standard properties.
33+
34+
properties:
35+
fsl,pins:
36+
description:
37+
each entry consists of 6 integers and represents the mux and config
38+
setting for one pin. The first 5 integers <mux_reg conf_reg input_reg
39+
mux_val input_val> are specified using a PIN_FUNC_ID macro, which can
40+
be found in <arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h>. The last
41+
integer CONFIG is the pad setting value like pull-up on this pin. Please
42+
refer to i.MX8M Plus Reference Manual for detailed CONFIG settings.
43+
$ref: /schemas/types.yaml#/definitions/uint32-matrix
44+
items:
45+
items:
46+
- description: |
47+
"mux_reg" indicates the offset of mux register.
48+
- description: |
49+
"conf_reg" indicates the offset of pad configuration register.
50+
- description: |
51+
"input_reg" indicates the offset of select input register.
52+
- description: |
53+
"mux_val" indicates the mux value to be applied.
54+
- description: |
55+
"input_val" indicates the select input value to be applied.
56+
- description: |
57+
"pad_setting" indicates the pad configuration value to be applied.
58+
59+
60+
required:
61+
- fsl,pins
62+
63+
additionalProperties: false
64+
65+
required:
66+
- compatible
67+
- reg
68+
69+
additionalProperties: false
70+
71+
examples:
72+
# Pinmux controller node
73+
- |
74+
iomuxc: pinctrl@443c0000 {
75+
compatible = "fsl,imx93-iomuxc";
76+
reg = <0x30330000 0x10000>;
77+
78+
pinctrl_uart3: uart3grp {
79+
fsl,pins =
80+
<0x48 0x1f8 0x41c 0x1 0x0 0x49>,
81+
<0x4c 0x1fc 0x418 0x1 0x0 0x49>;
82+
};
83+
};
84+
85+
...

Documentation/devicetree/bindings/pinctrl/meson,pinctrl.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Required properties for the root node:
1616
"amlogic,meson-g12a-periphs-pinctrl"
1717
"amlogic,meson-g12a-aobus-pinctrl"
1818
"amlogic,meson-a1-periphs-pinctrl"
19+
"amlogic,meson-s4-periphs-pinctrl"
1920
- reg: address and size of registers controlling irq functionality
2021

2122
=== GPIO sub-nodes ===

Documentation/devicetree/bindings/pinctrl/microchip,sparx5-sgpio.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ examples:
145145
clocks = <&sys_clk>;
146146
pinctrl-0 = <&sgpio2_pins>;
147147
pinctrl-names = "default";
148-
reg = <0x1101059c 0x100>;
148+
reg = <0x1101059c 0x118>;
149149
microchip,sgpio-port-ranges = <0 0>, <16 18>, <28 31>;
150150
bus-frequency = <25000000>;
151151
sgpio_in2: gpio@0 {

Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ Microsemi Ocelot pin controller Device Tree Bindings
44
Required properties:
55
- compatible : Should be "mscc,ocelot-pinctrl",
66
"mscc,jaguar2-pinctrl", "microchip,sparx5-pinctrl",
7-
"mscc,luton-pinctrl", "mscc,serval-pinctrl" or
8-
"microchip,lan966x-pinctrl"
7+
"mscc,luton-pinctrl", "mscc,serval-pinctrl",
8+
"microchip,lan966x-pinctrl" or "mscc,servalt-pinctrl"
99
- reg : Address and length of the register set for the device
1010
- gpio-controller : Indicates this device is a GPIO controller
1111
- #gpio-cells : Must be 2.
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/nuvoton,wpcm450-pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Nuvoton WPCM450 pin control and GPIO
8+
9+
maintainers:
10+
- Jonathan Neuschäfer <[email protected]>
11+
12+
properties:
13+
compatible:
14+
const: nuvoton,wpcm450-pinctrl
15+
16+
reg:
17+
maxItems: 1
18+
19+
'#address-cells':
20+
const: 1
21+
22+
'#size-cells':
23+
const: 0
24+
25+
patternProperties:
26+
# There are three kinds of subnodes:
27+
# 1. a GPIO controller node for each GPIO bank
28+
# 2. a pinmux node configures pin muxing for a group of pins (e.g. rmii2)
29+
# 3. a pinconf node configures properties of a single pin
30+
31+
"^gpio@[0-7]$":
32+
type: object
33+
34+
description:
35+
Eight GPIO banks (gpio@0 to gpio@7), that each contain between 14 and 18
36+
GPIOs. Some GPIOs support interrupts.
37+
38+
properties:
39+
reg:
40+
minimum: 0
41+
maximum: 7
42+
43+
gpio-controller: true
44+
45+
"#gpio-cells":
46+
const: 2
47+
48+
interrupt-controller: true
49+
50+
"#interrupt-cells":
51+
const: 2
52+
53+
interrupts:
54+
maxItems: 3
55+
description:
56+
The interrupts associated with this GPIO bank
57+
58+
required:
59+
- reg
60+
- gpio-controller
61+
- '#gpio-cells'
62+
63+
"^mux-":
64+
$ref: pinmux-node.yaml#
65+
66+
properties:
67+
groups:
68+
description:
69+
One or more groups of pins to mux to a certain function
70+
items:
71+
enum: [ smb3, smb4, smb5, scs1, scs2, scs3, smb0, smb1, smb2, bsp,
72+
hsp1, hsp2, r1err, r1md, rmii2, r2err, r2md, kbcc, dvo,
73+
clko, smi, uinc, gspi, mben, xcs2, xcs1, sdio, sspi, fi0,
74+
fi1, fi2, fi3, fi4, fi5, fi6, fi7, fi8, fi9, fi10, fi11,
75+
fi12, fi13, fi14, fi15, pwm0, pwm1, pwm2, pwm3, pwm4, pwm5,
76+
pwm6, pwm7, hg0, hg1, hg2, hg3, hg4, hg5, hg6, hg7 ]
77+
function:
78+
description:
79+
The function that a group of pins is muxed to
80+
enum: [ smb3, smb4, smb5, scs1, scs2, scs3, smb0, smb1, smb2, bsp,
81+
hsp1, hsp2, r1err, r1md, rmii2, r2err, r2md, kbcc, dvo0,
82+
dvo1, dvo2, dvo3, dvo4, dvo5, dvo6, dvo7, clko, smi, uinc,
83+
gspi, mben, xcs2, xcs1, sdio, sspi, fi0, fi1, fi2, fi3, fi4,
84+
fi5, fi6, fi7, fi8, fi9, fi10, fi11, fi12, fi13, fi14, fi15,
85+
pwm0, pwm1, pwm2, pwm3, pwm4, pwm5, pwm6, pwm7, hg0, hg1,
86+
hg2, hg3, hg4, hg5, hg6, hg7, gpio ]
87+
88+
dependencies:
89+
groups: [ function ]
90+
function: [ groups ]
91+
92+
additionalProperties: false
93+
94+
"^cfg-":
95+
$ref: pincfg-node.yaml#
96+
97+
properties:
98+
pins:
99+
description:
100+
A list of pins to configure in certain ways, such as enabling
101+
debouncing
102+
items:
103+
pattern: "^gpio1?[0-9]{1,2}$"
104+
105+
input-debounce: true
106+
107+
additionalProperties: false
108+
109+
required:
110+
- compatible
111+
- reg
112+
113+
additionalProperties: false
114+
115+
examples:
116+
- |
117+
#include <dt-bindings/interrupt-controller/irq.h>
118+
#include <dt-bindings/gpio/gpio.h>
119+
pinctrl: pinctrl@b8003000 {
120+
compatible = "nuvoton,wpcm450-pinctrl";
121+
reg = <0xb8003000 0x1000>;
122+
#address-cells = <1>;
123+
#size-cells = <0>;
124+
125+
gpio0: gpio@0 {
126+
reg = <0>;
127+
gpio-controller;
128+
#gpio-cells = <2>;
129+
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>,
130+
<3 IRQ_TYPE_LEVEL_HIGH>,
131+
<4 IRQ_TYPE_LEVEL_HIGH>;
132+
};
133+
134+
mux-rmii2 {
135+
groups = "rmii2";
136+
function = "rmii2";
137+
};
138+
139+
pinmux_uid: mux-uid {
140+
groups = "gspi", "sspi";
141+
function = "gpio";
142+
};
143+
144+
pinctrl_uid: cfg-uid {
145+
pins = "gpio14";
146+
input-debounce = <1>;
147+
};
148+
};
149+
150+
gpio-keys {
151+
compatible = "gpio-keys";
152+
pinctrl-names = "default";
153+
pinctrl-0 = <&pinctrl_uid>, <&pinmux_uid>;
154+
155+
uid {
156+
label = "UID";
157+
linux,code = <102>;
158+
gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
159+
};
160+
};

0 commit comments

Comments
 (0)