Skip to content

Commit a3df5d5

Browse files
committed
Merge tag 'pinctrl-v6.9-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 around. New drivers: - New driver for Renesas R8A779H0 also known as R-Car V4M. - New driver for the Awinic AW9523/B I2C GPIO expander. I found this living out-of-tree in OpenWrt as an upstream attempt had stalled on the finishing line, so I picked it up and finished the job. Improvements: - The Nomadik pin control driver was for years re-used out of tree for the ST STA chips, and now the IP was re-used in a MIPS automotive SoC called MobilEyeq5, so it has been split in pin control and GPIO drivers so the latter can be reused by MobilEyeq5. (Along with a long list of cleanups) - A lot of overall cleanup and tidying up" * tag 'pinctrl-v6.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (87 commits) drivers/gpio/nomadik: move dummy nmk_gpio_dbg_show_one() to header gpio: nomadik: remove BUG_ON() in nmk_gpio_populate_chip() dt-bindings: pinctrl: qcom: update compatible name for match with driver pinctrl: aw9523: Make the driver tristate pinctrl: nomadik: fix dereference of error pointer gpio: nomadik: Back out some managed resources pinctrl: aw9523: Add proper terminator pinctrl: core: comment that pinctrl_add_gpio_range() is deprecated pinctrl: pinmux: Suppress error message for -EPROBE_DEFER pinctrl: Add driver for Awinic AW9523/B I2C GPIO Expander dt-bindings: pinctrl: Add bindings for Awinic AW9523/AW9523B gpio: nomadik: Finish conversion to use firmware node APIs gpio: nomadik: fix Kconfig dependencies inbetween pinctrl & GPIO pinctrl: da9062: Add OF table dt-bindings: pinctrl: at91: add sam9x7 pinctrl: ocelot: remove redundant assignment to variable ret gpio: nomadik: grab optional reset control and deassert it at probe gpio: nomadik: support mobileye,eyeq5-gpio gpio: nomadik: handle variadic GPIO count gpio: nomadik: support shared GPIO IRQs ...
2 parents 44f89c6 + fa63587 commit a3df5d5

Some content is hidden

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

55 files changed

+7496
-1046
lines changed

Documentation/devicetree/bindings/gpio/gpio-nmk.txt

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/gpio/st,nomadik-gpio.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Nomadik GPIO controller
8+
9+
description:
10+
The Nomadik GPIO driver handles Nomadik SoC GPIO blocks. This block has also
11+
been called ST STA2X11. On the Nomadik platform, this driver is intertwined
12+
with pinctrl-nomadik.
13+
14+
maintainers:
15+
- Linus Walleij <[email protected]>
16+
17+
properties:
18+
$nodename:
19+
pattern: "^gpio@[0-9a-f]+$"
20+
21+
compatible:
22+
enum:
23+
- st,nomadik-gpio
24+
- mobileye,eyeq5-gpio
25+
26+
reg:
27+
maxItems: 1
28+
29+
interrupts:
30+
maxItems: 1
31+
32+
"#gpio-cells":
33+
const: 2
34+
35+
gpio-controller: true
36+
37+
interrupt-controller: true
38+
39+
"#interrupt-cells":
40+
const: 2
41+
42+
gpio-bank:
43+
description: System-wide GPIO bank index.
44+
$ref: /schemas/types.yaml#/definitions/uint32
45+
46+
st,supports-sleepmode:
47+
description: Whether the controller can sleep or not.
48+
$ref: /schemas/types.yaml#/definitions/flag
49+
50+
clocks:
51+
maxItems: 1
52+
53+
gpio-ranges:
54+
maxItems: 1
55+
56+
ngpios:
57+
minimum: 0
58+
maximum: 32
59+
60+
resets:
61+
maxItems: 1
62+
63+
required:
64+
- compatible
65+
- reg
66+
- interrupts
67+
- "#gpio-cells"
68+
- gpio-controller
69+
- interrupt-controller
70+
- gpio-bank
71+
72+
unevaluatedProperties: false
73+
74+
allOf:
75+
- if:
76+
properties:
77+
compatible:
78+
contains:
79+
const: mobileye,eyeq5-gpio
80+
then:
81+
properties:
82+
st,supports-sleepmode: false
83+
84+
examples:
85+
- |
86+
gpio@8012e080 {
87+
compatible = "st,nomadik-gpio";
88+
reg = <0x8012e080 0x80>;
89+
interrupts = <0 120 0x4>;
90+
#gpio-cells = <2>;
91+
gpio-controller;
92+
interrupt-controller;
93+
st,supports-sleepmode;
94+
gpio-bank = <1>;
95+
};

Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-a1.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ required:
2424
- compatible
2525

2626
patternProperties:
27-
"^bank@[0-9a-z]+$":
27+
"^bank@[0-9a-f]+$":
2828
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio
2929

3030
unevaluatedProperties: false

Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-g12a-aobus.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ required:
2121
- compatible
2222

2323
patternProperties:
24-
"^bank@[0-9a-z]+$":
24+
"^bank@[0-9a-f]+$":
2525
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio
2626

2727
unevaluatedProperties: false

Documentation/devicetree/bindings/pinctrl/amlogic,meson-pinctrl-g12a-periphs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ required:
2121
- compatible
2222

2323
patternProperties:
24-
"^bank@[0-9a-z]+$":
24+
"^bank@[0-9a-f]+$":
2525
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio
2626

2727
unevaluatedProperties: false

Documentation/devicetree/bindings/pinctrl/amlogic,meson8-pinctrl-aobus.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ required:
2929
- compatible
3030

3131
patternProperties:
32-
"^bank@[0-9a-z]+$":
32+
"^bank@[0-9a-f]+$":
3333
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio
3434

3535
unevaluatedProperties: false

Documentation/devicetree/bindings/pinctrl/amlogic,meson8-pinctrl-cbus.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ required:
2929
- compatible
3030

3131
patternProperties:
32-
"^bank@[0-9a-z]+$":
32+
"^bank@[0-9a-f]+$":
3333
$ref: amlogic,meson-pinctrl-common.yaml#/$defs/meson-gpio
3434

3535
unevaluatedProperties: false

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ such as pull-up, multi drive, etc.
2020
Required properties for iomux controller:
2121
- compatible: "atmel,at91rm9200-pinctrl" or "atmel,at91sam9x5-pinctrl"
2222
or "atmel,sama5d3-pinctrl" or "microchip,sam9x60-pinctrl"
23+
or "microchip,sam9x7-pinctrl", "microchip,sam9x60-pinctrl"
2324
- atmel,mux-mask: array of mask (periph per bank) to describe if a pin can be
2425
configured in this periph mode. All the periph and bank need to be describe.
2526

@@ -120,6 +121,7 @@ Some requirements for using atmel,at91rm9200-pinctrl binding:
120121
For each bank the required properties are:
121122
- compatible: "atmel,at91sam9x5-gpio" or "atmel,at91rm9200-gpio" or
122123
"microchip,sam9x60-gpio"
124+
or "microchip,sam9x7-gpio", "microchip,sam9x60-gpio", "atmel,at91rm9200-gpio"
123125
- reg: physical base address and length of the controller's registers
124126
- interrupts: interrupt outputs from the controller
125127
- interrupt-controller: marks the device node as an interrupt controller
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/awinic,aw9523-pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Awinic AW9523/AW9523B I2C GPIO Expander
8+
9+
maintainers:
10+
- AngeloGioacchino Del Regno <[email protected]>
11+
12+
description: |
13+
The Awinic AW9523/AW9523B I2C GPIO Expander featuring 16 multi-function
14+
I/O, 256 steps PWM mode and interrupt support.
15+
16+
properties:
17+
compatible:
18+
const: awinic,aw9523-pinctrl
19+
20+
reg:
21+
maxItems: 1
22+
23+
'#gpio-cells':
24+
description: |
25+
Specifying the pin number and flags, as defined in
26+
include/dt-bindings/gpio/gpio.h
27+
const: 2
28+
29+
gpio-controller: true
30+
31+
gpio-ranges:
32+
maxItems: 1
33+
34+
interrupt-controller: true
35+
36+
interrupts:
37+
maxItems: 1
38+
description: Specifies the INTN pin IRQ.
39+
40+
'#interrupt-cells':
41+
description:
42+
Specifies the PIN numbers and Flags, as defined in defined in
43+
include/dt-bindings/interrupt-controller/irq.h
44+
const: 2
45+
46+
reset-gpios:
47+
maxItems: 1
48+
49+
# PIN CONFIGURATION NODES
50+
patternProperties:
51+
'-pins$':
52+
type: object
53+
description:
54+
Pinctrl node's client devices use subnodes for desired pin configuration.
55+
Client device subnodes use below standard properties.
56+
$ref: /schemas/pinctrl/pincfg-node.yaml
57+
58+
properties:
59+
pins:
60+
description:
61+
List of gpio pins affected by the properties specified in
62+
this subnode.
63+
items:
64+
pattern: "^gpio([0-9]|1[0-5])$"
65+
minItems: 1
66+
maxItems: 16
67+
68+
function:
69+
description:
70+
Specify the alternative function to be configured for the
71+
specified pins.
72+
73+
enum: [ gpio, pwm ]
74+
75+
bias-disable: true
76+
bias-pull-down: true
77+
bias-pull-up: true
78+
drive-open-drain: true
79+
drive-push-pull: true
80+
input-enable: true
81+
input-disable: true
82+
output-high: true
83+
output-low: true
84+
85+
required:
86+
- pins
87+
- function
88+
89+
additionalProperties: false
90+
91+
required:
92+
- compatible
93+
- reg
94+
- gpio-controller
95+
- '#gpio-cells'
96+
- gpio-ranges
97+
98+
additionalProperties: false
99+
100+
examples:
101+
# Example configuration to drive pins for a keyboard matrix
102+
- |
103+
#include <dt-bindings/gpio/gpio.h>
104+
#include <dt-bindings/interrupt-controller/irq.h>
105+
106+
i2c {
107+
#address-cells = <1>;
108+
#size-cells = <0>;
109+
110+
aw9523: gpio-expander@58 {
111+
compatible = "awinic,aw9523-pinctrl";
112+
reg = <0x58>;
113+
interrupt-parent = <&tlmm>;
114+
interrupts = <50 IRQ_TYPE_EDGE_FALLING>;
115+
gpio-controller;
116+
#gpio-cells = <2>;
117+
gpio-ranges = <&tlmm 0 0 16>;
118+
interrupt-controller;
119+
#interrupt-cells = <2>;
120+
reset-gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
121+
122+
keyboard-matrix-col-pins {
123+
pins = "gpio8", "gpio9", "gpio10", "gpio11",
124+
"gpio12", "gpio13", "gpio14", "gpio15";
125+
function = "gpio";
126+
input-disable;
127+
output-low;
128+
};
129+
130+
keyboard-matrix-row-pins {
131+
pins = "gpio0", "gpio1", "gpio2", "gpio3",
132+
"gpio4", "gpio5", "gpio6", "gpio7";
133+
function = "gpio";
134+
bias-pull-up;
135+
drive-open-drain;
136+
input-enable;
137+
};
138+
};
139+
};

Documentation/devicetree/bindings/pinctrl/cirrus,madera.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ properties:
9393

9494
input-schmitt-disable: true
9595

96-
input-debounce: true
96+
input-debounce:
97+
maxItems: 1
9798

9899
output-low: true
99100

0 commit comments

Comments
 (0)