Skip to content

Commit f68e404

Browse files
committed
Merge tag 'pinctrl-v5.11-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.11 kernel. Drivers, drivers and drivers. Not a single core change. Some new stuff, especially a bunch of new Intel, Qualcomm and Ocelot SoCs. As part of the modularization attempt, I applied one patch affecting the firmware subsystem as a functional (not syntactic/semantic) dependency and then it blew up in our face, so I had to revert it, bummer. It will come in later, through that subsystem, I guess. New drivers: - New driver for the Microchip Serial GPIO "SGPIO". - Qualcomm SM8250 LPASS (Low Power Audio Subsystem) GPIO driver. New subdrivers: - Intel Lakefield subdriver. - Intel Elkhart Lake subdriver. - Intel Alder Lake-S subdriver. - Qualcomm MSM8953 subdriver. - Qualcomm SDX55 subdriver. - Qualcomm SDX55 PMIC subdriver. - Ocelot Luton SoC subdriver. - Ocelot Serval SoC subdriver. Modularization: - The Meson driver can now be built as modules. - The Qualcomm driver(s) can now be built as modules. Incremental improvements: - The Intel driver now supports pin configuration for GPIO-related configurations. - A bunch of Renesas PFC drivers have been augmented with support for QSPI pins, groups and functions. - Non-critical fixes to the irq handling in the Allwinner Sunxi driver" * tag 'pinctrl-v5.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (80 commits) pinctrl/spear: simplify the return expression of spear300_pinctrl_probe() pinctrl: mediatek: simplify the return expression of mtk_pinconf_bias_disable_set_rev1() dt-bindings: pinctrl: pinctrl-microchip-sgpio: Add irq support pinctrl: pinctrl-microchip-sgpio: Add irq support (for sparx5) pinctrl: qcom: Add sm8250 lpass lpi pinctrl driver dt-bindings: pinctrl: qcom: Add sm8250 lpass lpi pinctrl bindings pinctrl: qcom-pmic-gpio: Add support for pmx55 dt-bindings: pinctrl: qcom-pmic-gpio: Add pmx55 support pinctrl: pinctrl-microchip-sgpio: Mark some symbols with static keyword pinctrl: at91-pio4: Make PINCTRL_AT91PIO4 depend on HAS_IOMEM to fix build error pinctrl: mtk: Fix low level output voltage issue pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe() pinctrl: actions: pinctrl-s500: Constify s500_padinfo[] pinctrl: pinctrl-microchip-sgpio: Add OF config dependency pinctrl: pinctrl-microchip-sgpio: Add pinctrl driver for Microsemi Serial GPIO dt-bindings: pinctrl: Add bindings for pinctrl-microchip-sgpio driver pinctrl: at91-pio4: add support for fewer lines on last PIO bank pinctrl: sunxi: Always call chained_irq_{enter, exit} in sunxi_pinctrl_irq_handler pinctrl: sunxi: Mark the irq bank not found in sunxi_pinctrl_irq_handler() with WARN_ON pinctrl: sunxi: fix irq bank map for the Allwinner A100 pin controller ...
2 parents a701262 + 3df09cb commit f68e404

Some content is hidden

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

70 files changed

+9538
-1543
lines changed
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/microchip,sparx5-sgpio.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Microsemi/Microchip Serial GPIO controller
8+
9+
maintainers:
10+
- Lars Povlsen <lars.povlsen@microchip.com>
11+
12+
description: |
13+
By using a serial interface, the SIO controller significantly extend
14+
the number of available GPIOs with a minimum number of additional
15+
pins on the device. The primary purpose of the SIO controllers is to
16+
connect control signals from SFP modules and to act as an LED
17+
controller.
18+
19+
properties:
20+
$nodename:
21+
pattern: "^gpio@[0-9a-f]+$"
22+
23+
compatible:
24+
enum:
25+
- microchip,sparx5-sgpio
26+
- mscc,ocelot-sgpio
27+
- mscc,luton-sgpio
28+
29+
"#address-cells":
30+
const: 1
31+
32+
"#size-cells":
33+
const: 0
34+
35+
reg:
36+
maxItems: 1
37+
38+
clocks:
39+
maxItems: 1
40+
41+
microchip,sgpio-port-ranges:
42+
description: This is a sequence of tuples, defining intervals of
43+
enabled ports in the serial input stream. The enabled ports must
44+
match the hardware configuration in order for signals to be
45+
properly written/read to/from the controller holding
46+
registers. Being tuples, then number of arguments must be
47+
even. The tuples mast be ordered (low, high) and are
48+
inclusive.
49+
$ref: /schemas/types.yaml#/definitions/uint32-matrix
50+
items:
51+
items:
52+
- description: |
53+
"low" indicates start bit number of range
54+
minimum: 0
55+
maximum: 31
56+
- description: |
57+
"high" indicates end bit number of range
58+
minimum: 0
59+
maximum: 31
60+
minItems: 1
61+
maxItems: 32
62+
63+
bus-frequency:
64+
description: The sgpio controller frequency (Hz). This dictates
65+
the serial bitstream speed, which again affects the latency in
66+
getting control signals back and forth between external shift
67+
registers. The speed must be no larger than half the system
68+
clock, and larger than zero.
69+
default: 12500000
70+
71+
patternProperties:
72+
"^gpio@[0-1]$":
73+
type: object
74+
properties:
75+
compatible:
76+
const: microchip,sparx5-sgpio-bank
77+
78+
reg:
79+
description: |
80+
The GPIO bank number. "0" is designates the input pin bank,
81+
"1" the output bank.
82+
maxItems: 1
83+
84+
gpio-controller: true
85+
86+
'#gpio-cells':
87+
description: |
88+
Specifies the pin (port and bit) and flags. Note that the
89+
SGIO pin is defined by *2* numbers, a port number between 0
90+
and 31, and a bit index, 0 to 3. The maximum bit number is
91+
controlled indirectly by the "ngpios" property: (ngpios/32).
92+
const: 3
93+
94+
interrupts:
95+
description: Specifies the sgpio IRQ (in parent controller)
96+
maxItems: 1
97+
98+
interrupt-controller: true
99+
100+
'#interrupt-cells':
101+
description:
102+
Specifies the pin (port and bit) and flags, as defined in
103+
defined in include/dt-bindings/interrupt-controller/irq.h
104+
const: 3
105+
106+
ngpios:
107+
description: The numbers of GPIO's exposed. This must be a
108+
multiple of 32.
109+
minimum: 32
110+
maximum: 128
111+
112+
required:
113+
- compatible
114+
- reg
115+
- gpio-controller
116+
- '#gpio-cells'
117+
- ngpios
118+
119+
additionalProperties: false
120+
121+
additionalProperties: false
122+
123+
required:
124+
- compatible
125+
- reg
126+
- clocks
127+
- microchip,sgpio-port-ranges
128+
- "#address-cells"
129+
- "#size-cells"
130+
131+
examples:
132+
- |
133+
#include <dt-bindings/interrupt-controller/arm-gic.h>
134+
sgpio2: gpio@1101059c {
135+
#address-cells = <1>;
136+
#size-cells = <0>;
137+
compatible = "microchip,sparx5-sgpio";
138+
clocks = <&sys_clk>;
139+
pinctrl-0 = <&sgpio2_pins>;
140+
pinctrl-names = "default";
141+
reg = <0x1101059c 0x100>;
142+
microchip,sgpio-port-ranges = <0 0>, <16 18>, <28 31>;
143+
bus-frequency = <25000000>;
144+
sgpio_in2: gpio@0 {
145+
reg = <0>;
146+
compatible = "microchip,sparx5-sgpio-bank";
147+
gpio-controller;
148+
#gpio-cells = <3>;
149+
ngpios = <96>;
150+
interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
151+
interrupt-controller;
152+
#interrupt-cells = <3>;
153+
};
154+
sgpio_out2: gpio@1 {
155+
compatible = "microchip,sparx5-sgpio-bank";
156+
reg = <1>;
157+
gpio-controller;
158+
#gpio-cells = <3>;
159+
ngpios = <96>;
160+
};
161+
};

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ Microsemi Ocelot pin controller Device Tree Bindings
33

44
Required properties:
55
- compatible : Should be "mscc,ocelot-pinctrl",
6-
"mscc,jaguar2-pinctrl" or "microchip,sparx5-pinctrl"
6+
"mscc,jaguar2-pinctrl", "microchip,sparx5-pinctrl",
7+
"mscc,luton-pinctrl" or "mscc,serval-pinctrl"
78
- reg : Address and length of the register set for the device
89
- gpio-controller : Indicates this device is a GPIO controller
910
- #gpio-cells : Must be 2.
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/qcom,lpass-lpi-pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Technologies, Inc. Low Power Audio SubSystem (LPASS)
8+
Low Power Island (LPI) TLMM block
9+
10+
maintainers:
11+
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
12+
13+
description: |
14+
This binding describes the Top Level Mode Multiplexer block found in the
15+
LPASS LPI IP on most Qualcomm SoCs
16+
17+
properties:
18+
compatible:
19+
const: qcom,sm8250-lpass-lpi-pinctrl
20+
21+
reg:
22+
minItems: 2
23+
maxItems: 2
24+
25+
clocks:
26+
items:
27+
- description: LPASS Core voting clock
28+
- description: LPASS Audio voting clock
29+
30+
clock-names:
31+
items:
32+
- const: core
33+
- const: audio
34+
35+
gpio-controller: true
36+
37+
'#gpio-cells':
38+
description: Specifying the pin number and flags, as defined in
39+
include/dt-bindings/gpio/gpio.h
40+
const: 2
41+
42+
gpio-ranges:
43+
maxItems: 1
44+
45+
#PIN CONFIGURATION NODES
46+
patternProperties:
47+
'-pins$':
48+
type: object
49+
description:
50+
Pinctrl node's client devices use subnodes for desired pin configuration.
51+
Client device subnodes use below standard properties.
52+
$ref: "/schemas/pinctrl/pincfg-node.yaml"
53+
54+
properties:
55+
pins:
56+
description:
57+
List of gpio pins affected by the properties specified in this
58+
subnode.
59+
items:
60+
oneOf:
61+
- pattern: "^gpio([0-9]|[1-9][0-9])$"
62+
minItems: 1
63+
maxItems: 14
64+
65+
function:
66+
enum: [ gpio, swr_tx_clk, qua_mi2s_sclk, swr_tx_data, qua_mi2s_ws,
67+
qua_mi2s_data, swr_rx_clk, swr_rx_data, dmic1_clk, i2s1_clk,
68+
dmic1_data, i2s1_ws, dmic2_clk, dmic2_data, i2s1_data,
69+
i2s2_clk, wsa_swr_clk, i2s2_ws, wsa_swr_data, dmic3_clk,
70+
dmic3_data, i2s2_data ]
71+
description:
72+
Specify the alternative function to be configured for the specified
73+
pins.
74+
75+
drive-strength:
76+
enum: [2, 4, 6, 8, 10, 12, 14, 16]
77+
default: 2
78+
description:
79+
Selects the drive strength for the specified pins, in mA.
80+
81+
slew-rate:
82+
enum: [0, 1, 2, 3]
83+
default: 0
84+
description: |
85+
0: No adjustments
86+
1: Higher Slew rate (faster edges)
87+
2: Lower Slew rate (slower edges)
88+
3: Reserved (No adjustments)
89+
90+
bias-pull-down: true
91+
92+
bias-pull-up: true
93+
94+
bias-disable: true
95+
96+
output-high: true
97+
98+
output-low: true
99+
100+
required:
101+
- pins
102+
- function
103+
104+
additionalProperties: false
105+
106+
required:
107+
- compatible
108+
- reg
109+
- clocks
110+
- clock-names
111+
- gpio-controller
112+
- '#gpio-cells'
113+
- gpio-ranges
114+
115+
additionalProperties: false
116+
117+
examples:
118+
- |
119+
#include <dt-bindings/sound/qcom,q6afe.h>
120+
lpi_tlmm: pinctrl@33c0000 {
121+
compatible = "qcom,sm8250-lpass-lpi-pinctrl";
122+
reg = <0x33c0000 0x20000>,
123+
<0x3550000 0x10000>;
124+
clocks = <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
125+
<&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
126+
clock-names = "core", "audio";
127+
gpio-controller;
128+
#gpio-cells = <2>;
129+
gpio-ranges = <&lpi_tlmm 0 0 14>;
130+
};

0 commit comments

Comments
 (0)