Skip to content

Commit 29d9983

Browse files
committed
Merge tag 'pinctrl-v6.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij: "Core changes: - None really. New drivers: - AMD ISP411 "AMD ISP" driver - Exynos 2200 and 7870 SoC subdrivers - Sophgo RISC-V SG2042 and SG2044 subdrivers - Amlogic A4 subdriver - Rockchip RK3528 subdriver - Broadcom BCM21664 subdriver - Allwinner A523/T527 subdriver - Ingenic X1600 subdriver - Microchip SAMA7D65 subdriver, essentially a re-branded Atmel AT91 PIO4 driver, but nowadays a Microschip SoC line Improvements: - Bring in the devm_kmemdup_array() helper and use it throughout, also bring in changes to other subsystems for this to establish this helper - Support EGPIO on the Qualcomm SA8775P SoC - Extend EINT support in the Mediatek driver" * tag 'pinctrl-v6.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (101 commits) pinctrl: mediatek: Add EINT support for multiple addresses pinctrl: amlogic-a4: Drop surplus semicolon pinctrl: nuvoton: Reduce use of OF-specific APIs pinctrl: nuvoton: Convert to use struct group_desc pinctrl: nuvoton: Make use of struct pinfunction and PINCTRL_PINFUNCTION() pinctrl: nuvoton: Convert to use struct pingroup and PINCTRL_PINGROUP() pinctrl: npcm8xx: Fix incorrect struct npcm8xx_pincfg assignment pinctrl: tegra: Fix off by one in tegra_pinctrl_get_group() pinctrl: PINCTRL_AMDISP should depend on DRM_AMD_ISP pinctrl: qcom: sa8775p: Enable egpio function dt-bindings: pinctrl: qcom: Add egpio function for sa8775p pinctrl: qcom: tlmm-test: Validate irq_enable delivers edge irqs pinctrl: qcom: Clear latched interrupt status when changing IRQ type dt-bindings: pinctrl: airoha: Add missing gpio-ranges property pinctrl: bcm281xx: Add missing assignment in bcm21664_pinctrl_lock_all() pinctrl: amd: isp411: Fix IS_ERR() vs NULL check in probe() dt-bindings: pinctrl: at91-pio4: add microchip,sama7d65-pinctrl pinctrl: tegra: Set SFIO mode to Mux Register pinctrl-tegra: Restore SFSEL bit when freeing pins pinctrl: tegra: Add descriptions for SoC data fields ...
2 parents 93d5228 + 3ef9f71 commit 29d9983

File tree

98 files changed

+8770
-1187
lines changed

Some content is hidden

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

98 files changed

+8770
-1187
lines changed

Documentation/devicetree/bindings/pinctrl/airoha,en7581-pinctrl.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ properties:
2424
'#gpio-cells':
2525
const: 2
2626

27+
gpio-ranges:
28+
maxItems: 1
29+
2730
interrupt-controller: true
2831

2932
'#interrupt-cells':
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/allwinner,sun55i-a523-pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Allwinner A523 Pin Controller
8+
9+
maintainers:
10+
- Andre Przywara <andre.przywara@arm.com>
11+
12+
properties:
13+
"#gpio-cells":
14+
const: 3
15+
description:
16+
GPIO consumers must use three arguments, first the number of the
17+
bank, then the pin number inside that bank, and finally the GPIO
18+
flags.
19+
20+
"#interrupt-cells":
21+
const: 3
22+
description:
23+
Interrupts consumers must use three arguments, first the number
24+
of the bank, then the pin number inside that bank, and finally
25+
the interrupts flags.
26+
27+
compatible:
28+
enum:
29+
- allwinner,sun55i-a523-pinctrl
30+
- allwinner,sun55i-a523-r-pinctrl
31+
32+
reg:
33+
maxItems: 1
34+
35+
interrupts:
36+
minItems: 2
37+
maxItems: 10
38+
description:
39+
One interrupt per external interrupt bank supported on the
40+
controller, sorted by bank number ascending order.
41+
42+
clocks:
43+
items:
44+
- description: Bus Clock
45+
- description: High Frequency Oscillator
46+
- description: Low Frequency Oscillator
47+
48+
clock-names:
49+
items:
50+
- const: apb
51+
- const: hosc
52+
- const: losc
53+
54+
gpio-controller: true
55+
interrupt-controller: true
56+
gpio-line-names: true
57+
58+
input-debounce:
59+
description:
60+
Debouncing periods in microseconds, one period per interrupt
61+
bank found in the controller
62+
$ref: /schemas/types.yaml#/definitions/uint32-array
63+
minItems: 2
64+
maxItems: 10
65+
66+
patternProperties:
67+
# It's pretty scary, but the basic idea is that:
68+
# - One node name can start with either s- or r- for PRCM nodes,
69+
# - Then, the name itself can be any repetition of <string>- (to
70+
# accommodate with nodes like uart4-rts-cts-pins), where each
71+
# string can be either starting with 'p' but in a string longer
72+
# than 3, or something that doesn't start with 'p',
73+
# - Then, the bank name is optional and will be between pa and pm.
74+
# Some pins groups that have several options will have the pin
75+
# numbers then,
76+
# - Finally, the name will end with either -pin or pins.
77+
78+
"^([rs]-)?(([a-z0-9]{3,}|[a-oq-z][a-z0-9]*?)?-)+?(p[a-m][0-9]*?-)??pins?$":
79+
type: object
80+
81+
properties:
82+
pins: true
83+
function: true
84+
bias-disable: true
85+
bias-pull-up: true
86+
bias-pull-down: true
87+
88+
drive-strength:
89+
$ref: /schemas/types.yaml#/definitions/uint32
90+
enum: [10, 20, 30, 40]
91+
92+
allwinner,pinmux:
93+
$ref: /schemas/types.yaml#/definitions/uint32-array
94+
description:
95+
Pinmux selector value, for each pin. Almost every time this value
96+
is the same for all pins, so any array shorter than the number of
97+
pins will repeat the last value, to allow just specifying a single
98+
cell, for all cells.
99+
100+
required:
101+
- pins
102+
- allwinner,pinmux
103+
- function
104+
105+
additionalProperties: false
106+
107+
"^vcc-p[a-m]-supply$":
108+
description:
109+
Power supplies for pin banks.
110+
111+
required:
112+
- "#gpio-cells"
113+
- compatible
114+
- reg
115+
- clocks
116+
- clock-names
117+
- gpio-controller
118+
- "#interrupt-cells"
119+
- interrupts
120+
- interrupt-controller
121+
122+
allOf:
123+
- $ref: pinctrl.yaml#
124+
- if:
125+
properties:
126+
compatible:
127+
enum:
128+
- allwinner,sun55i-a523-pinctrl
129+
130+
then:
131+
properties:
132+
interrupts:
133+
minItems: 10
134+
maxItems: 10
135+
136+
- if:
137+
properties:
138+
compatible:
139+
enum:
140+
- allwinner,sun55i-a523-r-pinctrl
141+
142+
then:
143+
properties:
144+
interrupts:
145+
minItems: 2
146+
maxItems: 2
147+
148+
additionalProperties: false
149+
150+
examples:
151+
- |
152+
r_pio: pinctrl@7022000 {
153+
compatible = "allwinner,sun55i-a523-r-pinctrl";
154+
reg = <0x7022000 0x800>;
155+
interrupts = <0 159 4>, <0 161 4>;
156+
clocks = <&r_ccu 1>, <&osc24M>, <&osc32k>;
157+
clock-names = "apb", "hosc", "losc";
158+
gpio-controller;
159+
#gpio-cells = <3>;
160+
interrupt-controller;
161+
#interrupt-cells = <3>;
162+
163+
r_i2c_pins: r-i2c-pins {
164+
pins = "PL0", "PL1";
165+
allwinner,pinmux = <2>;
166+
function = "r_i2c0";
167+
bias-pull-up;
168+
};
169+
170+
r_spi_pins: r-spi-pins {
171+
pins = "PL11" ,"PL12", "PL13";
172+
allwinner,pinmux = <6>;
173+
function = "r_spi";
174+
};
175+
};
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/amlogic,pinctrl-a4.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Amlogic pinmux controller
8+
9+
maintainers:
10+
- Xianwei Zhao <xianwei.zhao@amlogic.com>
11+
12+
allOf:
13+
- $ref: pinctrl.yaml#
14+
15+
properties:
16+
compatible:
17+
const: amlogic,pinctrl-a4
18+
19+
"#address-cells":
20+
const: 2
21+
22+
"#size-cells":
23+
const: 2
24+
25+
ranges: true
26+
27+
patternProperties:
28+
"^gpio@[0-9a-f]+$":
29+
type: object
30+
31+
additionalProperties: false
32+
properties:
33+
reg:
34+
minItems: 1
35+
items:
36+
- description: pin config register
37+
- description: pin mux setting register (some special pin fixed function)
38+
- description: pin drive strength register (optional)
39+
40+
reg-names:
41+
minItems: 1
42+
items:
43+
- const: gpio
44+
- const: mux
45+
- const: ds
46+
47+
gpio-controller: true
48+
49+
"#gpio-cells":
50+
const: 2
51+
52+
gpio-ranges:
53+
maxItems: 1
54+
55+
required:
56+
- reg
57+
- reg-names
58+
- gpio-controller
59+
- "#gpio-cells"
60+
- gpio-ranges
61+
62+
"^func-[0-9a-z-]+$":
63+
type: object
64+
additionalProperties: false
65+
patternProperties:
66+
"^group-[0-9a-z-]+$":
67+
type: object
68+
allOf:
69+
- $ref: /schemas/pinctrl/pincfg-node.yaml
70+
- $ref: /schemas/pinctrl/pinmux-node.yaml
71+
72+
required:
73+
- pinmux
74+
75+
required:
76+
- compatible
77+
- "#address-cells"
78+
- "#size-cells"
79+
- ranges
80+
81+
additionalProperties: false
82+
83+
examples:
84+
- |
85+
#include <dt-bindings/pinctrl/amlogic,pinctrl.h>
86+
apb {
87+
#address-cells = <2>;
88+
#size-cells = <2>;
89+
periphs_pinctrl: pinctrl {
90+
compatible = "amlogic,pinctrl-a4";
91+
#address-cells = <2>;
92+
#size-cells = <2>;
93+
ranges;
94+
95+
gpio@4240 {
96+
reg = <0 0x4240 0 0x40>, <0 0x4000 0 0x8>;
97+
reg-names = "gpio", "mux";
98+
gpio-controller;
99+
#gpio-cells = <2>;
100+
gpio-ranges = <&periphs_pinctrl 0 8 10>;
101+
};
102+
103+
func-uart-b {
104+
group-default {
105+
pinmux = <AML_PINMUX(AMLOGIC_GPIO_B, 1, 4)>;
106+
bias-pull-up;
107+
drive-strength-microamp = <4000>;
108+
};
109+
110+
group-pins1 {
111+
pinmux = <AML_PINMUX(AMLOGIC_GPIO_B, 5, 2)>;
112+
bias-pull-up;
113+
drive-strength-microamp = <4000>;
114+
};
115+
};
116+
117+
func-uart-c {
118+
group-default {
119+
pinmux = <AML_PINMUX(AMLOGIC_GPIO_B, 3, 1)>,
120+
<AML_PINMUX(AMLOGIC_GPIO_B, 2, 1)>;
121+
bias-pull-up;
122+
drive-strength-microamp = <4000>;
123+
};
124+
};
125+
};
126+
};

Documentation/devicetree/bindings/pinctrl/atmel,at91-pio4-pinctrl.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ configure it.
66
Required properties:
77
- compatible:
88
"atmel,sama5d2-pinctrl"
9+
"microchip,sama7d65-pinctrl", "microchip,sama7g5-pinctrl"
910
"microchip,sama7g5-pinctrl"
1011
- reg: base address and length of the PIO controller.
1112
- interrupts: interrupt outputs from the controller, one for each bank.

0 commit comments

Comments
 (0)