Skip to content

Commit faeab16

Browse files
committed
Merge tag 'pinctrl-v7.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij: "Core changes: - Perform basic checks on pin config properties so as not to allow directly contradictory settings such as setting a pin to more than one bias or drive mode - Handle input-threshold-voltage-microvolt property - Introduce pinctrl_gpio_get_config() handling in the core for SCMI GPIO using pin control New drivers: - GPIO-by-pin control driver (also appearing in the GPIO pull request) fulfilling a promise on a comment from Grant Likely many years ago: "can't GPIO just be a front-end for pin control?" it turns out it can, if and only if you design something new from scratch, such as SCMI - Broadcom BCM7038 as a pinctrl-single delegate - Mobileye EyeQ6Lplus OLB pin controller - Qualcomm Eliza and Hawi families TLMM pin controllers - Qualcomm SDM670 and Milos family LPASS LPI pin controllers - Qualcomm IPQ5210 pin controller - Realtek RTD1625 pin controller support - Rockchip RV1103B pin controller support - Texas Instruments AM62L as a pinctrl-single delegate Improvements: - Set config implementation for the Spacemit K1 pin controller" * tag 'pinctrl-v7.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (84 commits) pinctrl: qcom: Add Hawi pinctrl driver dt-bindings: pinctrl: qcom: Describe Hawi TLMM block dt-bindings: pinctrl: pinctrl-max77620: convert to DT schema pinctrl: single: Add bcm7038-padconf compatible matching dt-bindings: pinctrl: pinctrl-single: Add brcm,bcm7038-padconf dt-bindings: pinctrl: apple,pinctrl: Add t8122 compatible pinctrl: qcom: sdm670-lpass-lpi: label variables as static pinctrl: sophgo: pinctrl-sg2044: Fix wrong module description pinctrl: sophgo: pinctrl-sg2042: Fix wrong module description pinctrl: qcom: add sdm670 lpi tlmm dt-bindings: pinctrl: qcom: Add SDM670 LPASS LPI pinctrl dt-bindings: qcom: lpass-lpi-common: add reserved GPIOs property pinctrl: qcom: Introduce IPQ5210 TLMM driver dt-bindings: pinctrl: qcom: add IPQ5210 pinctrl pinctrl: qcom: Drop redundant intr_target_reg on modern SoCs pinctrl: qcom: eliza: Fix interrupt target bit pinctrl: core: Don't use "proxy" headers pinctrl: amd: Support new ACPI ID AMDI0033 pinctrl: renesas: rzg2l: Drop superfluous blank line pinctrl: renesas: rzg2l: Fix save/restore of {IOLH,IEN,PUPD,SMT} registers ...
2 parents 401b0e0 + 90700e1 commit faeab16

120 files changed

Lines changed: 9879 additions & 606 deletions

File tree

Some content is hidden

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

Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ properties:
1818
compatible:
1919
oneOf:
2020
- items:
21-
- const: apple,t6020-pinctrl
21+
- enum:
22+
- apple,t6020-pinctrl
23+
- apple,t8122-pinctrl
2224
- const: apple,t8103-pinctrl
2325
- items:
2426
# Do not add additional SoC to this list.
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/fsl,imx27-iomuxc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Freescale i.MX1/i.MX25/i.MX27 IOMUX Controller
8+
9+
maintainers:
10+
- Frank Li <Frank.Li@nxp.com>
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+
enum:
19+
- fsl,imx1-iomuxc
20+
- fsl,imx27-iomuxc
21+
22+
reg:
23+
maxItems: 1
24+
25+
'#address-cells':
26+
const: 1
27+
28+
'#size-cells':
29+
const: 1
30+
31+
ranges: true
32+
33+
patternProperties:
34+
'^gpio@[0-9a-f]+$':
35+
type: object
36+
$ref: /schemas/gpio/fsl-imx-gpio.yaml
37+
unevaluatedProperties: false
38+
39+
'grp$':
40+
type: object
41+
description:
42+
Pinctrl node's client devices use subnodes for desired pin configuration.
43+
Client device subnodes use below standard properties.
44+
45+
properties:
46+
fsl,pins:
47+
description:
48+
three integers array, represents a group of pins mux and config
49+
setting. The format is fsl,pins = <PIN MUX_ID CONFIG>.
50+
$ref: /schemas/types.yaml#/definitions/uint32-matrix
51+
items:
52+
items:
53+
- description:
54+
PIN is an integer between 0 and 0xbf. imx27 has 6 ports with 32
55+
configurable pins each. PIN is PORT * 32 + PORT_PIN, PORT_PIN
56+
is the pin number on the specific port (between 0 and 31)
57+
- description: |
58+
MUX_ID is function + (direction << 2) + (gpio_oconf << 4)
59+
+ (gpio_iconfa << 8) + (gpio_iconfb << 10)
60+
61+
function value is used to select the pin function.
62+
Possible values:
63+
0 - Primary function
64+
1 - Alternate function
65+
2 - GPIO
66+
Registers: GIUS (GPIO In Use), GPR (General Purpose Register)
67+
68+
direction defines the data direction of the pin.
69+
Possible values:
70+
0 - Input
71+
1 - Output
72+
Register: DDIR
73+
74+
gpio_oconf configures the gpio submodule output signal.
75+
This does not have any effect unless GPIO function is
76+
selected. A/B/C_IN are output signals of function blocks
77+
A,B and C. Specific function blocks are described in the
78+
reference manual.
79+
Possible values:
80+
0 - A_IN
81+
1 - B_IN
82+
2 - C_IN
83+
3 - Data Register
84+
Registers: OCR1, OCR2
85+
86+
gpio_iconfa/b configures the gpio submodule input to
87+
functionblocks A and B. GPIO function should be selected if
88+
this is configured.
89+
Possible values:
90+
0 - GPIO_IN
91+
1 - Interrupt Status Register
92+
2 - Pulldown
93+
3 - Pullup
94+
Registers ICONFA1, ICONFA2, ICONFB1 and ICONFB2
95+
96+
- description:
97+
CONFIG can be 0 or 1, meaning Pullup disable/enable.
98+
required:
99+
- fsl,pins
100+
101+
additionalProperties: false
102+
103+
required:
104+
- compatible
105+
- reg
106+
107+
allOf:
108+
- $ref: pinctrl.yaml#
109+
110+
unevaluatedProperties: false
111+
112+
examples:
113+
- |
114+
pinmux@10015000 {
115+
compatible = "fsl,imx27-iomuxc";
116+
reg = <0x10015000 0x600>;
117+
118+
uartgrp {
119+
fsl,pins = <
120+
0x8c 0x004 0x0 /* UART1_TXD__UART1_TXD */
121+
0x8d 0x000 0x0 /* UART1_RXD__UART1_RXD */
122+
0x8e 0x004 0x0 /* UART1_CTS__UART1_CTS */
123+
0x8f 0x000 0x0 /* UART1_RTS__UART1_RTS */
124+
>;
125+
};
126+
};

Documentation/devicetree/bindings/pinctrl/fsl,imx27-pinctrl.txt

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

Documentation/devicetree/bindings/pinctrl/fsl,imx35-pinctrl.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ properties:
2020
compatible:
2121
oneOf:
2222
- enum:
23+
- fsl,imx25-iomuxc
2324
- fsl,imx35-iomuxc
2425
- fsl,imx51-iomuxc
2526
- fsl,imx53-iomuxc

Documentation/devicetree/bindings/pinctrl/marvell,armada3710-xb-pinctrl.yaml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,12 @@ patternProperties:
8484

8585
properties:
8686
groups:
87-
enum: [ emmc_nb, i2c1, i2c2, jtag, mii_col, onewire, pcie1,
88-
pcie1_clkreq, pcie1_wakeup, pmic0, pmic1, ptp, ptp_clk,
89-
ptp_trig, pwm0, pwm1, pwm2, pwm3, rgmii, sdio0, sdio_sb, smi,
90-
spi_cs1, spi_cs2, spi_cs3, spi_quad, uart1, uart2,
91-
usb2_drvvbus1, usb32_drvvbus0 ]
87+
items:
88+
enum: [ emmc_nb, i2c1, i2c2, jtag, mii_col, onewire, pcie1,
89+
pcie1_clkreq, pcie1_wakeup, pmic0, pmic1, ptp, ptp_clk,
90+
ptp_trig, pwm0, pwm1, pwm2, pwm3, rgmii, sdio0, sdio_sb,
91+
smi, spi_cs1, spi_cs2, spi_cs3, spi_quad, uart1, uart2,
92+
usb2_drvvbus1, usb32_drvvbus0 ]
9293

9394
function:
9495
enum: [ drvbus, emmc, gpio, i2c, jtag, led, mii, mii_err, onewire,
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pinctrl/maxim,max77620-pinctrl.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Pinmux controller function for Maxim MAX77620 Power management IC
8+
9+
maintainers:
10+
- Svyatoslav Ryhel <clamor95@gmail.com>
11+
12+
description:
13+
Device has 8 GPIO pins which can be configured as GPIO as well as the
14+
special IO functions.
15+
16+
allOf:
17+
- $ref: /schemas/pinctrl/pincfg-node.yaml
18+
- $ref: /schemas/pinctrl/pinmux-node.yaml
19+
20+
patternProperties:
21+
"^(pin|gpio).":
22+
type: object
23+
additionalProperties: false
24+
25+
properties:
26+
pins:
27+
items:
28+
enum: [ gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7 ]
29+
30+
function:
31+
items:
32+
enum: [ gpio, lpm-control-in, fps-out, 32k-out1, sd0-dvs-in, sd1-dvs-in,
33+
reference-out ]
34+
35+
drive-push-pull: true
36+
drive-open-drain: true
37+
bias-pull-up: true
38+
bias-pull-down: true
39+
40+
maxim,active-fps-source:
41+
$ref: /schemas/types.yaml#/definitions/uint32
42+
description: |
43+
FPS source for the GPIOs to get enabled/disabled when system is in
44+
active state. Valid values are:
45+
- MAX77620_FPS_SRC_0: FPS source is FPS0.
46+
- MAX77620_FPS_SRC_1: FPS source is FPS1
47+
- MAX77620_FPS_SRC_2: FPS source is FPS2
48+
- MAX77620_FPS_SRC_NONE: GPIO is not controlled by FPS events and
49+
it gets enabled/disabled by register access.
50+
Absence of this property will leave the FPS configuration register
51+
for that GPIO to default configuration.
52+
53+
maxim,active-fps-power-up-slot:
54+
$ref: /schemas/types.yaml#/definitions/uint32
55+
description:
56+
Sequencing event slot number on which the GPIO get enabled when
57+
master FPS input event set to HIGH. This is applicable if FPS source
58+
is selected as FPS0, FPS1 or FPS2.
59+
enum: [0, 1, 2, 3, 4, 5, 6, 7]
60+
61+
maxim,active-fps-power-down-slot:
62+
$ref: /schemas/types.yaml#/definitions/uint32
63+
description:
64+
Sequencing event slot number on which the GPIO get disabled when
65+
master FPS input event set to LOW. This is applicable if FPS source
66+
is selected as FPS0, FPS1 or FPS2.
67+
enum: [0, 1, 2, 3, 4, 5, 6, 7]
68+
69+
maxim,suspend-fps-source:
70+
$ref: /schemas/types.yaml#/definitions/uint32
71+
description:
72+
This is same as property "maxim,active-fps-source" but value get
73+
configured when system enters in to suspend state.
74+
75+
maxim,suspend-fps-power-up-slot:
76+
$ref: /schemas/types.yaml#/definitions/uint32
77+
description:
78+
This is same as property "maxim,active-fps-power-up-slot" but this
79+
value get configured into FPS configuration register when system
80+
enters into suspend. This is applicable if suspend state FPS source
81+
is selected as FPS0, FPS1 or FPS2.
82+
enum: [0, 1, 2, 3, 4, 5, 6, 7]
83+
84+
maxim,suspend-fps-power-down-slot:
85+
$ref: /schemas/types.yaml#/definitions/uint32
86+
description:
87+
This is same as property "maxim,active-fps-power-down-slot" but this
88+
value get configured into FPS configuration register when system
89+
enters into suspend. This is applicable if suspend state FPS source
90+
is selected as FPS0, FPS1 or FPS2.
91+
enum: [0, 1, 2, 3, 4, 5, 6, 7]
92+
93+
required:
94+
- pins
95+
96+
additionalProperties: false
97+
98+
# see maxim,max77620.yaml for an example

0 commit comments

Comments
 (0)