Skip to content

Commit e5476f5

Browse files
committed
Merge tag 'gpio-updates-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
Pull gpio updates from Bartosz Golaszewski: "We have two new drivers, some improvements to the core code, lots of different updates to existing GPIO drivers and some dt-bindings on top. There's nothing controversial in here and almost everything has been in next for more than a week (95% a lot longer than this). The only thing that has spent less time in next is a new driver so no risk of regressions. The single merge pulls in changes that remove all usage of global GPIO numbers from arch/arm/mach-omap. Core GPIO library: - remove unused symbols - don't spam the kernel log with messages about hogs - remove old sysfs API cruft - improve handling of GPIO masks New drivers: - add a driver for the BlueField-3 GPIO controller - add GPIO support for the TPS65219 PMIC Driver improvements: - extend the gpio-aggregator driver to support ramp-up/ramp-down delay - remove unnecessary CONFIG_OF guards from gpio-aggregator - readability improvements in gpio-tangier - switch i2c drivers back to using probe() now that it's been converted in the i2c subsystem to not taking the id parameter - remove unused inclusions of of_gpio.h in several drivers - make pm ops static in gpio-davinci and fix a comment - use more devres in drivers to shrink and simplify the code - add missing include in gpio-sa1100 - add HAS_IOPORT KConfig dependency where needed - add permissions checks before accessing pins in gpio-tegra186 - convert the gpio-zynq driver to using immutable irqchips - preserve output settings set by the bootloader in gpio-mpc8xxx Selftests: - tweak the variable naming in script tests Device tree updates: - convert gpio-mmio and gpio-stmpe to YAML - add parsing of GPIO hogs to gpio-vf610 - add bindings for the Cirrus EP93xx GPIO controller - add gpio-line-names property to the gpio-pca9570 bindings - extend the binding for x-powers,axp209 with another block" * tag 'gpio-updates-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (58 commits) of: unittest: drop assertions for GPIO hog messages gpiolib: Drop unused domain_ops memeber of GPIO IRQ chip gpio: synq: remove unused zynq_gpio_irq_reqres/zynq_gpio_irq_relres dt-bindings: gpio: gpio-vf610: Add parsing of hogs gpio: lpc18xx: Remove unused of_gpio.h inclusion gpio: xra1403: Remove unused of_gpio.h inclusion gpio: mpc8xxx: Remove unused of_gpio.h inclusion dt-bindings: gpio: Add Cirrus EP93xx gpio: mpc8xxx: latch GPIOs state on module load when configured as output selftests: gpio: gpio-sim: Use same variable name for sysfs pathname gpio: mlxbf3: Add gpio driver support gpio: delay: Remove duplicative functionality gpio: aggregator: Set up a parser of delay line parameters gpio: aggregator: Support delay for setting up individual GPIOs gpio: aggregator: Remove CONFIG_OF and of_match_ptr() protections dt-bindings: gpio: pca9570: add gpio-line-names property gpiolib: remove unused gpio_cansleep() gpio: tps65219: add GPIO support for TPS65219 PMIC gpio: zynq: fix zynqmp_gpio not an immutable chip warning gpio: davinci: make davinci_gpio_dev_pm_ops static ...
2 parents ff7ddcf + 0ff9f5e commit e5476f5

File tree

89 files changed

+1798
-988
lines changed

Some content is hidden

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

89 files changed

+1798
-988
lines changed

Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.yaml renamed to Documentation/devicetree/bindings/gpio/brcm,bcm63xx-gpio.yaml

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
22
%YAML 1.2
33
---
4-
$id: http://devicetree.org/schemas/gpio/brcm,bcm6345-gpio.yaml#
4+
$id: http://devicetree.org/schemas/gpio/brcm,bcm63xx-gpio.yaml#
55
$schema: http://devicetree.org/meta-schemas/core.yaml#
66

7-
title: Broadcom BCM6345 GPIO controller
7+
title: Broadcom BCM63xx GPIO controller
88

99
maintainers:
1010
- Álvaro Fernández Rojas <[email protected]>
@@ -18,8 +18,6 @@ description: |+
1818
1919
BCM6338 have 8-bit data and dirout registers, where GPIO state can be read
2020
and/or written, and the direction changed from input to output.
21-
BCM6345 have 16-bit data and dirout registers, where GPIO state can be read
22-
and/or written, and the direction changed from input to output.
2321
BCM6318, BCM6328, BCM6358, BCM6362, BCM6368 and BCM63268 have 32-bit data
2422
and dirout registers, where GPIO state can be read and/or written, and the
2523
direction changed from input to output.
@@ -29,7 +27,6 @@ properties:
2927
enum:
3028
- brcm,bcm6318-gpio
3129
- brcm,bcm6328-gpio
32-
- brcm,bcm6345-gpio
3330
- brcm,bcm6358-gpio
3431
- brcm,bcm6362-gpio
3532
- brcm,bcm6368-gpio
@@ -63,17 +60,6 @@ required:
6360
additionalProperties: false
6461

6562
examples:
66-
- |
67-
gpio@fffe0406 {
68-
compatible = "brcm,bcm6345-gpio";
69-
reg-names = "dirout", "dat";
70-
reg = <0xfffe0406 2>, <0xfffe040a 2>;
71-
native-endian;
72-
73-
gpio-controller;
74-
#gpio-cells = <2>;
75-
};
76-
7763
- |
7864
gpio@0 {
7965
compatible = "brcm,bcm63268-gpio";
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/gpio/gpio-delay.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: GPIO delay controller
8+
9+
maintainers:
10+
- Alexander Stein <[email protected]>
11+
12+
description: |
13+
This binding describes an electrical setup where setting an GPIO output
14+
is delayed by some external setup, e.g. RC circuit.
15+
16+
+----------+ +-----------+
17+
| | VCC_B | |
18+
| | | | |
19+
| | VCC_A _ | |
20+
| GPIO | | | R | Consumer |
21+
|controller| ___ |_| | |
22+
| | | | | | |
23+
| [IOx|-------| |--+-----|-----+ |
24+
| | |___| | | input |
25+
| | | | |
26+
+----------+ --- C +-----------+
27+
---
28+
|
29+
-
30+
GND
31+
32+
If the input on the consumer is controlled by an open-drain signal
33+
attached to an RC circuit the ramp-up delay is not under control
34+
of the GPIO controller.
35+
36+
properties:
37+
compatible:
38+
const: gpio-delay
39+
40+
"#gpio-cells":
41+
description: |
42+
Specifies the pin, ramp-up and ramp-down delays. The
43+
delays are specified in microseconds.
44+
const: 3
45+
46+
gpios:
47+
description: Array of GPIOs which output signal change is delayed
48+
minItems: 1
49+
maxItems: 32
50+
51+
gpio-controller: true
52+
53+
gpio-line-names:
54+
minItems: 1
55+
maxItems: 32
56+
57+
required:
58+
- compatible
59+
- "#gpio-cells"
60+
- gpio-controller
61+
- gpios
62+
63+
additionalProperties: false
64+
65+
examples:
66+
- |
67+
#include <dt-bindings/gpio/gpio.h>
68+
69+
enable_delay: enable-delay {
70+
compatible = "gpio-delay";
71+
#gpio-cells = <3>;
72+
gpio-controller;
73+
gpios = <&gpio0 3 GPIO_ACTIVE_LOW>,
74+
<&gpio3 1 GPIO_ACTIVE_HIGH>;
75+
};
76+
77+
consumer {
78+
enable-gpios = <&enable_delay 0 130000 30000>;
79+
};
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/gpio/gpio-ep9301.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: EP93xx GPIO controller
8+
9+
maintainers:
10+
- Linus Walleij <[email protected]>
11+
- Bartosz Golaszewski <[email protected]>
12+
- Nikita Shubin <[email protected]>
13+
14+
properties:
15+
compatible:
16+
oneOf:
17+
- const: cirrus,ep9301-gpio
18+
- items:
19+
- enum:
20+
- cirrus,ep9302-gpio
21+
- cirrus,ep9307-gpio
22+
- cirrus,ep9312-gpio
23+
- cirrus,ep9315-gpio
24+
- const: cirrus,ep9301-gpio
25+
26+
reg:
27+
minItems: 2
28+
items:
29+
- description: data register
30+
- description: direction register
31+
- description: interrupt registers base
32+
33+
reg-names:
34+
minItems: 2
35+
items:
36+
- const: data
37+
- const: dir
38+
- const: intr
39+
40+
gpio-controller: true
41+
42+
gpio-ranges: true
43+
44+
"#gpio-cells":
45+
const: 2
46+
47+
interrupt-controller: true
48+
49+
"#interrupt-cells":
50+
const: 2
51+
52+
interrupts:
53+
oneOf:
54+
- maxItems: 1
55+
- description: port F has dedicated irq line for each gpio line
56+
maxItems: 8
57+
58+
required:
59+
- compatible
60+
- reg
61+
- gpio-controller
62+
- "#gpio-cells"
63+
64+
additionalProperties: false
65+
66+
examples:
67+
- |
68+
gpio@80840000 {
69+
compatible = "cirrus,ep9301-gpio";
70+
reg = <0x80840000 0x04>,
71+
<0x80840010 0x04>,
72+
<0x80840090 0x1c>;
73+
reg-names = "data", "dir", "intr";
74+
gpio-controller;
75+
#gpio-cells = <2>;
76+
interrupt-controller;
77+
interrupt-parent = <&vic1>;
78+
interrupts = <27>;
79+
};
80+
81+
gpio@80840004 {
82+
compatible = "cirrus,ep9301-gpio";
83+
reg = <0x80840004 0x04>,
84+
<0x80840014 0x04>,
85+
<0x808400ac 0x1c>;
86+
reg-names = "data", "dir", "intr";
87+
gpio-controller;
88+
#gpio-cells = <2>;
89+
interrupt-controller;
90+
interrupt-parent = <&vic1>;
91+
interrupts = <27>;
92+
};
93+
94+
gpio@80840008 {
95+
compatible = "cirrus,ep9301-gpio";
96+
reg = <0x80840008 0x04>,
97+
<0x80840018 0x04>;
98+
reg-names = "data", "dir";
99+
gpio-controller;
100+
#gpio-cells = <2>;
101+
};
102+
103+
gpio@8084000c {
104+
compatible = "cirrus,ep9301-gpio";
105+
reg = <0x8084000c 0x04>,
106+
<0x8084001c 0x04>;
107+
reg-names = "data", "dir";
108+
gpio-controller;
109+
#gpio-cells = <2>;
110+
};
111+
112+
gpio@80840020 {
113+
compatible = "cirrus,ep9301-gpio";
114+
reg = <0x80840020 0x04>,
115+
<0x80840024 0x04>;
116+
reg-names = "data", "dir";
117+
gpio-controller;
118+
#gpio-cells = <2>;
119+
};
120+
121+
gpio@80840030 {
122+
compatible = "cirrus,ep9301-gpio";
123+
reg = <0x80840030 0x04>,
124+
<0x80840034 0x04>,
125+
<0x8084004c 0x1c>;
126+
reg-names = "data", "dir", "intr";
127+
gpio-controller;
128+
#gpio-cells = <2>;
129+
interrupt-controller;
130+
interrupts-extended = <&vic0 19>, <&vic0 20>,
131+
<&vic0 21>, <&vic0 22>,
132+
<&vic1 15>, <&vic1 16>,
133+
<&vic1 17>, <&vic1 18>;
134+
};
135+
136+
gpio@80840038 {
137+
compatible = "cirrus,ep9301-gpio";
138+
reg = <0x80840038 0x04>,
139+
<0x8084003c 0x04>;
140+
reg-names = "data", "dir";
141+
gpio-controller;
142+
#gpio-cells = <2>;
143+
};
144+
145+
gpio@80840040 {
146+
compatible = "cirrus,ep9301-gpio";
147+
reg = <0x80840040 0x04>,
148+
<0x80840044 0x04>;
149+
reg-names = "data", "dir";
150+
gpio-controller;
151+
#gpio-cells = <2>;
152+
};
153+
154+
...

0 commit comments

Comments
 (0)