Skip to content

Commit 6ba3d70

Browse files
committed
Merge tag 'pinctrl-v5.6-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, nothing too exciting about this. Some changes hit arch/sh and arch/arm but are well isolated and acknowledged by the respective arch maintainers. Core changes: - Dropped the chained IRQ setup callback into GPIOLIB as we got rid of the last users of that in this changeset. New drivers: - New driver for Ingenic X1830. - New driver for Freescale i.MX8MP. Driver enhancements: - Fix all remaining Intel drivers to pass their IRQ chips along with the GPIO chips. - Intel Baytrail allocates its irqchip dynamically. - Intel Lynxpoint is thoroughly rewritten and modernized. - Aspeed AST2600 pin muxing and configuration is much improved. - Qualcomm SC7180 functions are updated and wakeup interrupt map is provided. - A whole slew of Renesas SH-PFC cleanups and improvements. - Fix up the Intel DT bindings to use the generic YAML DT bindings schema (a first user of this)" * tag 'pinctrl-v5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (99 commits) pinctrl: madera: Remove extra blank line pinctrl: qcom: Don't lock around irq_set_irq_wake() pinctrl: mvebu: armada-37xx: use use platform api gpio: Drop the chained IRQ handler assign function pinctrl: freescale: Add i.MX8MP pinctrl driver support dt-bindings: imx: Add pinctrl binding doc for i.MX8MP pinctrl: tigerlake: Tiger Lake uses _HID enumeration pinctrl: sunrisepoint: Add Coffee Lake-S ACPI ID pinctrl: iproc: Use platform_get_irq_optional() to avoid error message pinctrl: dt-bindings: Fix some errors in the lgm and pinmux schema pinctrl: intel: Pass irqchip when adding gpiochip pinctrl: intel: Add GPIO <-> pin mapping ranges via callback pinctrl: baytrail: Replace WARN with dev_info_once when setting direct-irq pin to output pinctrl: baytrail: Do not clear IRQ flags on direct-irq enabled pins pinctrl: sunrisepoint: Add missing Interrupt Status register offset pinctrl: sh-pfc: Split R-Car H3 support in two independent drivers pinctrl: artpec6: fix __iomem on reg in set pinctrl: ingenic: Use devm_platform_ioremap_resource() pinctrl: ingenic: Factorize irq_set_type function pinctrl: ingenic: Remove duplicated ingenic_chip_info structures ...
2 parents fa889d8 + 122ce22 commit 6ba3d70

Some content is hidden

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

72 files changed

+3353
-1784
lines changed

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,9 @@ patternProperties:
5454
TACH10, TACH11, TACH12, TACH13, TACH14, TACH15, TACH2, TACH3,
5555
TACH4, TACH5, TACH6, TACH7, TACH8, TACH9, THRU0, THRU1, THRU2,
5656
THRU3, TXD1, TXD2, TXD3, TXD4, UART10, UART11, UART12, UART13,
57-
UART6, UART7, UART8, UART9, VB, VGAHS, VGAVS, WDTRST1, WDTRST2,
58-
WDTRST3, WDTRST4, ]
57+
UART6, UART7, UART8, UART9, USBAD, USBADP, USB2AH, USB2AHP,
58+
USB2BD, USB2BH, VB, VGAHS, VGAVS, WDTRST1, WDTRST2, WDTRST3,
59+
WDTRST4, ]
5960
groups:
6061
allOf:
6162
- $ref: "/schemas/types.yaml#/definitions/string"
@@ -85,8 +86,8 @@ patternProperties:
8586
TACH10, TACH11, TACH12, TACH13, TACH14, TACH15, TACH2, TACH3,
8687
TACH4, TACH5, TACH6, TACH7, TACH8, TACH9, THRU0, THRU1, THRU2,
8788
THRU3, TXD1, TXD2, TXD3, TXD4, UART10, UART11, UART12G0,
88-
UART12G1, UART13G0, UART13G1, UART6, UART7, UART8, UART9, VB,
89-
VGAHS, VGAVS, WDTRST1, WDTRST2, WDTRST3, WDTRST4, ]
89+
UART12G1, UART13G0, UART13G1, UART6, UART7, UART8, UART9, USBA,
90+
USBB, VB, VGAHS, VGAVS, WDTRST1, WDTRST2, WDTRST3, WDTRST4, ]
9091

9192
required:
9293
- compatible
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/fsl,imx8mp-pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Freescale IMX8MP IOMUX Controller
8+
9+
maintainers:
10+
- Anson Huang <[email protected]>
11+
12+
description:
13+
Please refer to fsl,imx-pinctrl.txt and pinctrl-bindings.txt in this directory
14+
for common binding part and usage.
15+
16+
properties:
17+
compatible:
18+
const: fsl,imx8mp-iomuxc
19+
20+
reg:
21+
maxItems: 1
22+
23+
# Client device subnode's properties
24+
patternProperties:
25+
'grp$':
26+
type: object
27+
description:
28+
Pinctrl node's client devices use subnodes for desired pin configuration.
29+
Client device subnodes use below standard properties.
30+
31+
properties:
32+
fsl,pins:
33+
allOf:
34+
- $ref: /schemas/types.yaml#/definitions/uint32-array
35+
description:
36+
each entry consists of 6 integers and represents the mux and config
37+
setting for one pin. The first 5 integers <mux_reg conf_reg input_reg
38+
mux_val input_val> are specified using a PIN_FUNC_ID macro, which can
39+
be found in <arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h>. The last
40+
integer CONFIG is the pad setting value like pull-up on this pin. Please
41+
refer to i.MX8M Plus Reference Manual for detailed CONFIG settings.
42+
43+
required:
44+
- fsl,pins
45+
46+
additionalProperties: false
47+
48+
required:
49+
- compatible
50+
- reg
51+
52+
additionalProperties: false
53+
54+
examples:
55+
# Pinmux controller node
56+
- |
57+
iomuxc: pinctrl@30330000 {
58+
compatible = "fsl,imx8mp-iomuxc";
59+
reg = <0x30330000 0x10000>;
60+
61+
pinctrl_uart2: uart2grp {
62+
fsl,pins = <
63+
0x228 0x488 0x5F0 0x0 0x6 0x49
64+
0x228 0x488 0x000 0x0 0x0 0x49
65+
>;
66+
};
67+
};
68+
69+
...

Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ GPIO port configuration registers and it is typical to refer to pins using the
1010
naming scheme "PxN" where x is a character identifying the GPIO port with
1111
which the pin is associated and N is an integer from 0 to 31 identifying the
1212
pin within that GPIO port. For example PA0 is the first pin in GPIO port A, and
13-
PB31 is the last pin in GPIO port B. The jz4740 and the x1000 contains 4 GPIO
14-
ports, PA to PD, for a total of 128 pins. The jz4760, the jz4770 and the jz4780
15-
contains 6 GPIO ports, PA to PF, for a total of 192 pins.
13+
PB31 is the last pin in GPIO port B. The jz4740, the x1000 and the x1830
14+
contains 4 GPIO ports, PA to PD, for a total of 128 pins. The jz4760, the
15+
jz4770 and the jz4780 contains 6 GPIO ports, PA to PF, for a total of 192 pins.
1616

1717

1818
Required properties:
@@ -28,6 +28,7 @@ Required properties:
2828
- "ingenic,x1000-pinctrl"
2929
- "ingenic,x1000e-pinctrl"
3030
- "ingenic,x1500-pinctrl"
31+
- "ingenic,x1830-pinctrl"
3132
- reg: Address range of the pinctrl registers.
3233

3334

@@ -40,6 +41,7 @@ Required properties for sub-nodes (GPIO chips):
4041
- "ingenic,jz4770-gpio"
4142
- "ingenic,jz4780-gpio"
4243
- "ingenic,x1000-gpio"
44+
- "ingenic,x1830-gpio"
4345
- reg: The GPIO bank number.
4446
- interrupt-controller: Marks the device node as an interrupt controller.
4547
- interrupts: Interrupt specifier for the controllers interrupt.
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/intel,lgm-io.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Intel Lightning Mountain SoC pinmux & GPIO controller binding
8+
9+
maintainers:
10+
- Rahul Tanwar <[email protected]>
11+
12+
description: |
13+
Pinmux & GPIO controller controls pin multiplexing & configuration including
14+
GPIO function selection & GPIO attributes configuration.
15+
16+
properties:
17+
compatible:
18+
const: intel,lgm-io
19+
20+
reg:
21+
maxItems: 1
22+
23+
# Client device subnode's properties
24+
patternProperties:
25+
'-pins$':
26+
type: object
27+
allOf:
28+
- $ref: pincfg-node.yaml#
29+
- $ref: pinmux-node.yaml#
30+
description:
31+
Pinctrl node's client devices use subnodes for desired pin configuration.
32+
Client device subnodes use below standard properties.
33+
34+
properties:
35+
function: true
36+
groups: true
37+
pins: true
38+
pinmux: true
39+
bias-pull-up: true
40+
bias-pull-down: true
41+
drive-strength: true
42+
slew-rate: true
43+
drive-open-drain: true
44+
output-enable: true
45+
46+
required:
47+
- function
48+
- groups
49+
50+
additionalProperties: false
51+
52+
required:
53+
- compatible
54+
- reg
55+
56+
additionalProperties: false
57+
58+
examples:
59+
# Pinmux controller node
60+
- |
61+
pinctrl: pinctrl@e2880000 {
62+
compatible = "intel,lgm-io";
63+
reg = <0xe2880000 0x100000>;
64+
65+
uart0-pins {
66+
pins = <64>, /* UART_RX0 */
67+
<65>; /* UART_TX0 */
68+
function = "CONSOLE_UART0";
69+
pinmux = <1>,
70+
<1>;
71+
groups = "CONSOLE_UART0";
72+
};
73+
};
74+
75+
...

Documentation/devicetree/bindings/pinctrl/intel,lgm-pinctrl.yaml

Lines changed: 0 additions & 116 deletions
This file was deleted.

Documentation/devicetree/bindings/pinctrl/pinmux-node.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ properties:
114114
specific binding for the hardware defines whether the entries are integers
115115
or strings, and their meaning.
116116

117-
group:
117+
groups:
118118
$ref: /schemas/types.yaml#/definitions/string-array
119119
description:
120120
the group to apply the properties to, if the driver supports

Documentation/devicetree/bindings/pinctrl/qcom,sc7180-pinctrl.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,9 @@ to specify in a pin configuration subnode:
125125
mi2s_1, mi2s_2, mss_lte, m_voc, pa_indicator, phase_flag,
126126
PLL_BIST, pll_bypassnl, pll_reset, prng_rosc, qdss,
127127
qdss_cti, qlink_enable, qlink_request, qspi_clk, qspi_cs,
128-
qspi_data, qup00, qup01, qup02, qup03, qup04, qup05,
129-
qup10, qup11, qup12, qup13, qup14, qup15, sdc1_tb,
128+
qspi_data, qup00, qup01, qup02_i2c, qup02_uart, qup03,
129+
qup04_i2c, qup04_uart, qup05, qup10, qup11_i2c, qup11_uart,
130+
qup12, qup13_i2c, qup13_uart, qup14, qup15, sdc1_tb,
130131
sdc2_tb, sd_write, sp_cmu, tgu_ch0, tgu_ch1, tgu_ch2,
131132
tgu_ch3, tsense_pwm1, tsense_pwm2, uim1, uim2, uim_batt,
132133
usb_phy, vfr_1, _V_GPIO, _V_PPS_IN, _V_PPS_OUT,

Documentation/driver-api/gpio/driver.rst

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -507,11 +507,6 @@ available but we try to move away from this:
507507
cascaded irq has to be handled by a threaded interrupt handler.
508508
Apart from that it works exactly like the chained irqchip.
509509

510-
- DEPRECATED: gpiochip_set_chained_irqchip(): sets up a chained cascaded irq
511-
handler for a gpio_chip from a parent IRQ and passes the struct gpio_chip*
512-
as handler data. Notice that we pass is as the handler data, since the
513-
irqchip data is likely used by the parent irqchip.
514-
515510
- gpiochip_set_nested_irqchip(): sets up a nested cascaded irq handler for a
516511
gpio_chip from a parent IRQ. As the parent IRQ has usually been
517512
explicitly requested by the driver, this does very little more than

MAINTAINERS

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8383,7 +8383,6 @@ S: Maintained
83838383
T: git git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel.git
83848384
F: drivers/gpio/gpio-ich.c
83858385
F: drivers/gpio/gpio-intel-mid.c
8386-
F: drivers/gpio/gpio-lynxpoint.c
83878386
F: drivers/gpio/gpio-merrifield.c
83888387
F: drivers/gpio/gpio-ml-ioh.c
83898388
F: drivers/gpio/gpio-pch.c

arch/arm/mach-u300/core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ static unsigned long pin_highz_conf[] = {
201201
};
202202

203203
/* Pin control settings */
204-
static struct pinctrl_map __initdata u300_pinmux_map[] = {
204+
static const struct pinctrl_map u300_pinmux_map[] = {
205205
/* anonymous maps for chip power and EMIFs */
206206
PIN_MAP_MUX_GROUP_HOG_DEFAULT("pinctrl-u300", NULL, "power"),
207207
PIN_MAP_MUX_GROUP_HOG_DEFAULT("pinctrl-u300", NULL, "emif0"),

0 commit comments

Comments
 (0)