Skip to content

Commit a32b344

Browse files
committed
Merge tag 'pinctrl-v5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij: "This is the bulk of pin control changes for the v5.14 kernel. Not so much going on. No core changes, just drivers. The most interesting would be that MIPS Ralink is migrating to pin control and we have some bindings but not yet code for the Apple M1 pin controller. New drivers: - Last merge window we created a driver for the Ralink RT2880. We are now moving the Ralink SoC pin control drivers out of the MIPS architecture code and into the pin control subsystem. This concerns RT288X, MT7620, RT305X, RT3883 and MT7621. - Qualcomm SM6125 SoC pin control driver. - Qualcomm spmi-gpio support for PM7325. - Qualcomm spmi-mpp also handles PMI8994 (just a compatible string) - Mediatek MT8365 SoC pin controller. - New device HID for the AMD GPIO controller. Improvements: - Pin bias config support for a slew of Renesas pin controllers. - Incremental improvements and non-urgent bug fixes to the Renesas SoC drivers. - Implement irq_set_wake on the AMD pin controller so we can wake up from external pin events. Misc: - Devicetree bindings for the Apple M1 pin controller, we will probably see a proper driver for this soon as well" * tag 'pinctrl-v5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (54 commits) pinctrl: ralink: rt305x: add missing include pinctrl: stm32: check for IRQ MUX validity during alloc() pinctrl: zynqmp: some code cleanups drivers: qcom: pinctrl: Add pinctrl driver for sm6125 dt-bindings: pinctrl: qcom: sm6125: Document SM6125 pinctrl driver dt-bindings: pinctrl: mcp23s08: add documentation for reset-gpios pinctrl: mcp23s08: Add optional reset GPIO pinctrl: mediatek: fix mode encoding pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq() pinctrl: bcm: Constify static pinmux_ops pinctrl: bcm: Constify static pinctrl_ops pinctrl: ralink: move RT288X SoC pinmux config into a new 'pinctrl-rt288x.c' file pinctrl: ralink: move MT7620 SoC pinmux config into a new 'pinctrl-mt7620.c' file pinctrl: ralink: move RT305X SoC pinmux config into a new 'pinctrl-rt305x.c' file pinctrl: ralink: move RT3883 SoC pinmux config into a new 'pinctrl-rt3883.c' file pinctrl: ralink: move MT7621 SoC pinmux config into a new 'pinctrl-mt7621.c' file pinctrl: ralink: move ralink architecture pinmux header into the driver pinctrl: single: config: enable the pin's input pinctrl: mtk: Fix mt8365 Kconfig dependency pinctrl: mcp23s08: fix race condition in irq handler ...
2 parents e04360a + bfa5016 commit a32b344

File tree

86 files changed

+7498
-1020
lines changed

Some content is hidden

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

86 files changed

+7498
-1020
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/apple,pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Apple GPIO controller
8+
9+
maintainers:
10+
- Mark Kettenis <[email protected]>
11+
12+
description: |
13+
The Apple GPIO controller is a simple combined pin and GPIO
14+
controller present on Apple ARM SoC platforms, including various
15+
iPhone and iPad devices and the "Apple Silicon" Macs.
16+
17+
properties:
18+
compatible:
19+
items:
20+
- const: apple,t8103-pinctrl
21+
- const: apple,pinctrl
22+
23+
reg:
24+
maxItems: 1
25+
26+
clocks:
27+
maxItems: 1
28+
29+
gpio-controller: true
30+
31+
'#gpio-cells':
32+
const: 2
33+
34+
gpio-ranges:
35+
maxItems: 1
36+
37+
interrupts:
38+
description: One interrupt for each of the (up to 7) interrupt
39+
groups supported by the controller sorted by interrupt group
40+
number in ascending order.
41+
minItems: 1
42+
maxItems: 7
43+
44+
interrupt-controller: true
45+
46+
patternProperties:
47+
'-pins$':
48+
type: object
49+
$ref: pinmux-node.yaml#
50+
51+
properties:
52+
pinmux:
53+
description:
54+
Values are constructed from pin number and alternate function
55+
configuration number using the APPLE_PINMUX() helper macro
56+
defined in include/dt-bindings/pinctrl/apple.h.
57+
58+
required:
59+
- pinmux
60+
61+
additionalProperties: false
62+
63+
required:
64+
- compatible
65+
- reg
66+
- gpio-controller
67+
- '#gpio-cells'
68+
- gpio-ranges
69+
70+
additionalProperties: false
71+
72+
examples:
73+
- |
74+
#include <dt-bindings/interrupt-controller/apple-aic.h>
75+
#include <dt-bindings/pinctrl/apple.h>
76+
77+
soc {
78+
#address-cells = <2>;
79+
#size-cells = <2>;
80+
81+
pinctrl: pinctrl@23c100000 {
82+
compatible = "apple,t8103-pinctrl", "apple,pinctrl";
83+
reg = <0x2 0x3c100000 0x0 0x100000>;
84+
clocks = <&gpio_clk>;
85+
86+
gpio-controller;
87+
#gpio-cells = <2>;
88+
gpio-ranges = <&pinctrl 0 0 212>;
89+
90+
interrupt-controller;
91+
interrupt-parent = <&aic>;
92+
interrupts = <AIC_IRQ 16 IRQ_TYPE_LEVEL_HIGH>,
93+
<AIC_IRQ 17 IRQ_TYPE_LEVEL_HIGH>,
94+
<AIC_IRQ 18 IRQ_TYPE_LEVEL_HIGH>,
95+
<AIC_IRQ 19 IRQ_TYPE_LEVEL_HIGH>,
96+
<AIC_IRQ 20 IRQ_TYPE_LEVEL_HIGH>,
97+
<AIC_IRQ 21 IRQ_TYPE_LEVEL_HIGH>,
98+
<AIC_IRQ 22 IRQ_TYPE_LEVEL_HIGH>;
99+
100+
pcie_pins: pcie-pins {
101+
pinmux = <APPLE_PINMUX(150, 1)>,
102+
<APPLE_PINMUX(151, 1)>,
103+
<APPLE_PINMUX(32, 1)>;
104+
};
105+
};
106+
};

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ patternProperties:
4646
PWM9, RGMII1, RGMII2, RGMII3, RGMII4, RMII1, RMII2, RMII3, RMII4,
4747
RXD1, RXD2, RXD3, RXD4, SALT1, SALT10, SALT11, SALT12, SALT13, SALT14,
4848
SALT15, SALT16, SALT2, SALT3, SALT4, SALT5, SALT6, SALT7, SALT8,
49-
SALT9, SD1, SD2, SGPM1, SGPS1, SIOONCTRL, SIOPBI, SIOPBO, SIOPWREQ,
50-
SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1ABR, SPI1CS1, SPI1WP, SPI2,
49+
SALT9, SD1, SD2, SGPM1, SGPM2, SGPS1, SGPS2, SIOONCTRL, SIOPBI, SIOPBO,
50+
SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1ABR, SPI1CS1, SPI1WP, SPI2,
5151
SPI2CS1, SPI2CS2, TACH0, TACH1, TACH10, TACH11, TACH12, TACH13, TACH14,
5252
TACH15, TACH2, TACH3, TACH4, TACH5, TACH6, TACH7, TACH8, TACH9, THRU0,
5353
THRU1, THRU2, THRU3, TXD1, TXD2, TXD3, TXD4, UART10, UART11, UART12,
@@ -74,9 +74,9 @@ patternProperties:
7474
RXD1, RXD2, RXD3, RXD4, SALT1, SALT10G0, SALT10G1, SALT11G0, SALT11G1,
7575
SALT12G0, SALT12G1, SALT13G0, SALT13G1, SALT14G0, SALT14G1, SALT15G0,
7676
SALT15G1, SALT16G0, SALT16G1, SALT2, SALT3, SALT4, SALT5, SALT6,
77-
SALT7, SALT8, SALT9G0, SALT9G1, SD1, SD2, SD3, SGPM1, SGPS1, SIOONCTRL,
78-
SIOPBI, SIOPBO, SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1ABR,
79-
SPI1CS1, SPI1WP, SPI2, SPI2CS1, SPI2CS2, TACH0, TACH1, TACH10, TACH11,
77+
SALT7, SALT8, SALT9G0, SALT9G1, SD1, SD2, SD3, SGPM1, SGPM2, SGPS1, SGPS2,
78+
SIOONCTRL, SIOPBI, SIOPBO, SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1,
79+
SPI1ABR, SPI1CS1, SPI1WP, SPI2, SPI2CS1, SPI2CS2, TACH0, TACH1, TACH10, TACH11,
8080
TACH12, TACH13, TACH14, TACH15, TACH2, TACH3, TACH4, TACH5, TACH6,
8181
TACH7, TACH8, TACH9, THRU0, THRU1, THRU2, THRU3, TXD1, TXD2, TXD3,
8282
TXD4, UART10, UART11, UART12G0, UART12G1, UART13G0, UART13G1, UART6,

Documentation/devicetree/bindings/pinctrl/brcm,bcm4708-pinmux.txt

Lines changed: 0 additions & 55 deletions
This file was deleted.
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
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,ns-pinmux.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Broadcom Northstar pins mux controller
8+
9+
maintainers:
10+
- Rafał Miłecki <[email protected]>
11+
12+
description:
13+
Some of Northstar SoCs's pins can be used for various purposes thanks to the
14+
mux controller. This binding allows describing mux controller and listing
15+
available functions. They can be referenced later by other bindings to let
16+
system configure controller correctly.
17+
18+
A list of pins varies across chipsets so few bindings are available.
19+
20+
Node of the pinmux must be nested in the CRU (Central Resource Unit) "syscon"
21+
node.
22+
23+
properties:
24+
compatible:
25+
enum:
26+
- brcm,bcm4708-pinmux
27+
- brcm,bcm4709-pinmux
28+
- brcm,bcm53012-pinmux
29+
30+
offset:
31+
description: offset of pin registers in the CRU block
32+
maxItems: 1
33+
$ref: /schemas/types.yaml#/definitions/uint32-array
34+
35+
patternProperties:
36+
'-pins$':
37+
type: object
38+
description: pin node
39+
$ref: pinmux-node.yaml#
40+
41+
properties:
42+
function:
43+
enum: [ spi, i2c, pwm, uart1, mdio, uart2, sdio ]
44+
groups:
45+
minItems: 1
46+
maxItems: 4
47+
items:
48+
enum: [ spi_grp, i2c_grp, pwm0_grp, pwm1_grp, pwm2_grp, pwm3_grp,
49+
uart1_grp, mdio_grp, uart2_grp, sdio_pwr_grp, sdio_1p8v_grp ]
50+
51+
required:
52+
- function
53+
- groups
54+
55+
additionalProperties: false
56+
57+
allOf:
58+
- if:
59+
properties:
60+
compatible:
61+
contains:
62+
const: brcm,bcm4708-pinmux
63+
then:
64+
patternProperties:
65+
'-pins$':
66+
properties:
67+
function:
68+
enum: [ spi, i2c, pwm, uart1 ]
69+
groups:
70+
items:
71+
enum: [ spi_grp, i2c_grp, pwm0_grp, pwm1_grp, pwm2_grp, pwm3_grp,
72+
uart1_grp ]
73+
74+
required:
75+
- offset
76+
77+
additionalProperties: false
78+
79+
examples:
80+
- |
81+
cru@1800c100 {
82+
compatible = "syscon", "simple-mfd";
83+
reg = <0x1800c100 0x1a4>;
84+
85+
pinctrl {
86+
compatible = "brcm,bcm4708-pinmux";
87+
offset = <0xc0>;
88+
89+
spi-pins {
90+
function = "spi";
91+
groups = "spi_grp";
92+
};
93+
};
94+
};

Documentation/devicetree/bindings/pinctrl/pinctrl-mcp23s08.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ Optional properties:
4949
- interrupt-controller: Marks the device node as a interrupt controller.
5050
- drive-open-drain: Sets the ODR flag in the IOCON register. This configures
5151
the IRQ output as open drain active low.
52+
- reset-gpios: Corresponds to the active-low RESET# pin for the chip
5253

5354
Optional device specific properties:
5455
- microchip,irq-mirror: Sets the mirror flag in the IOCON register. Devices
@@ -135,6 +136,7 @@ gpio21: gpio@21 {
135136
microchip,irq-mirror;
136137
pinctrl-names = "default";
137138
pinctrl-0 = <&i2cgpio0irq>, <&gpio21pullups>;
139+
reset-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
138140

139141
gpio21pullups: pinmux {
140142
pins = "gpio0", "gpio1", "gpio2", "gpio3",

Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Required properties:
1212
"mediatek,mt8135-pinctrl", compatible with mt8135 pinctrl.
1313
"mediatek,mt8167-pinctrl", compatible with mt8167 pinctrl.
1414
"mediatek,mt8173-pinctrl", compatible with mt8173 pinctrl.
15+
"mediatek,mt8365-pinctrl", compatible with mt8365 pinctrl.
1516
"mediatek,mt8516-pinctrl", compatible with mt8516 pinctrl.
1617
- pins-are-numbered: Specify the subnodes are using numbered pinmux to
1718
specify pins.

Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ PMIC's from Qualcomm.
3131
"qcom,pm8350b-gpio"
3232
"qcom,pm8350c-gpio"
3333
"qcom,pmk8350-gpio"
34+
"qcom,pm7325-gpio"
3435
"qcom,pmr735a-gpio"
3536
"qcom,pmr735b-gpio"
3637
"qcom,pm6150-gpio"
@@ -120,6 +121,7 @@ to specify in a pin configuration subnode:
120121
gpio1-gpio8 for pm8350b
121122
gpio1-gpio9 for pm8350c
122123
gpio1-gpio4 for pmk8350
124+
gpio1-gpio10 for pm7325
123125
gpio1-gpio4 for pmr735a
124126
gpio1-gpio4 for pmr735b
125127
gpio1-gpio10 for pm6150

Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ of PMIC's from Qualcomm.
2121
"qcom,pmi8950-mpp",
2222
"qcom,pm8994-mpp",
2323
"qcom,pma8084-mpp",
24+
"qcom,pmi8994-mpp",
2425

2526
And must contain either "qcom,spmi-mpp" or "qcom,ssbi-mpp"
2627
if the device is on an spmi bus or an ssbi bus respectively.

0 commit comments

Comments
 (0)