mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Merge tag 'pinctrl-v6.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij:
"Nothing stands out, apart from maybe the interesting Eswin EIC7700, a
RISC-V SoC I've never seen before.
Core changes:
- Open code PINCTRL_FUNCTION_DESC() instead of defining a complex
macro only used in one place
- Add pinmux_generic_add_pinfunction() helper and use this in a few
drivers
New drivers:
- Amlogic S7, S7D and S6 pin control support
- Eswin EIC7700 pin control support
- Qualcomm PMIV0104, PM7550 and Milos pin control support
Because of unhelpful numbering schemes, the Qualcomm driver now
needs to start to rely on SoC codenames
- STM32 HDP pin control support
- Mediatek MT8189 pin control support
Improvements:
- Switch remaining pin control drivers over to the new GPIO set
callback that provides a return value
- Support RSVD (reserved) pins in the STM32 driver
- Move many fixed assignments over to pinctrl_desc definitions
- Handle multiple TLMM regions in the Qualcomm driver"
* tag 'pinctrl-v6.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (105 commits)
pinctrl: mediatek: Add pinctrl driver for mt8189
dt-bindings: pinctrl: mediatek: Add support for mt8189
pinctrl: aspeed-g6: Add PCIe RC PERST pin group
pinctrl: ingenic: use pinmux_generic_add_pinfunction()
pinctrl: keembay: use pinmux_generic_add_pinfunction()
pinctrl: mediatek: moore: use pinmux_generic_add_pinfunction()
pinctrl: airoha: use pinmux_generic_add_pinfunction()
pinctrl: equilibrium: use pinmux_generic_add_pinfunction()
pinctrl: provide pinmux_generic_add_pinfunction()
pinctrl: pinmux: open-code PINCTRL_FUNCTION_DESC()
pinctrl: ma35: use new GPIO line value setter callbacks
MAINTAINERS: add Clément Le Goffic as STM32 HDP maintainer
pinctrl: stm32: Introduce HDP driver
dt-bindings: pinctrl: stm32: Introduce HDP
pinctrl: qcom: Add Milos pinctrl driver
dt-bindings: pinctrl: document the Milos Top Level Mode Multiplexer
pinctrl: qcom: spmi: Add PM7550
dt-bindings: pinctrl: qcom,pmic-gpio: Add PM7550 support
pinctrl: qcom: spmi: Add PMIV0104
dt-bindings: pinctrl: qcom,pmic-gpio: Add PMIV0104 support
...
This commit is contained in:
@@ -15,11 +15,18 @@ allOf:
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: amlogic,pinctrl-a4
|
||||
- enum:
|
||||
- amlogic,pinctrl-a4
|
||||
- amlogic,pinctrl-s6
|
||||
- amlogic,pinctrl-s7
|
||||
- items:
|
||||
- enum:
|
||||
- amlogic,pinctrl-a5
|
||||
- const: amlogic,pinctrl-a4
|
||||
- items:
|
||||
- enum:
|
||||
- amlogic,pinctrl-s7d
|
||||
- const: amlogic,pinctrl-s7
|
||||
|
||||
"#address-cells":
|
||||
const: 2
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/eswin,eic7700-pinctrl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Eswin Eic7700 Pinctrl
|
||||
|
||||
maintainers:
|
||||
- Yulin Lu <luyulin@eswincomputing.com>
|
||||
|
||||
allOf:
|
||||
- $ref: pinctrl.yaml#
|
||||
|
||||
description: |
|
||||
eic7700 pin configuration nodes act as a container for an arbitrary number of
|
||||
subnodes. Each of these subnodes represents some desired configuration for one or
|
||||
more pins. This configuration can include the mux function to select on those pin(s),
|
||||
and various pin configuration parameters, such as input-enable, pull-up, etc.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: eswin,eic7700-pinctrl
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vrgmii-supply:
|
||||
description:
|
||||
Regulator supply for the RGMII interface IO power domain.
|
||||
This property should reference a regulator that provides either 1.8V or 3.3V,
|
||||
depending on the board-level voltage configuration required by the RGMII interface.
|
||||
|
||||
patternProperties:
|
||||
'-grp$':
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
patternProperties:
|
||||
'-pins$':
|
||||
type: object
|
||||
|
||||
properties:
|
||||
pins:
|
||||
description:
|
||||
For eic7700, specifies the name(s) of one or more pins to be configured by
|
||||
this node.
|
||||
items:
|
||||
enum: [ chip_mode, mode_set0, mode_set1, mode_set2, mode_set3, xin,
|
||||
rst_out_n, key_reset_n, gpio0, por_sel, jtag0_tck, jtag0_tms,
|
||||
jtag0_tdi, jtag0_tdo, gpio5, spi2_cs0_n, jtag1_tck, jtag1_tms,
|
||||
jtag1_tdi, jtag1_tdo, gpio11, spi2_cs1_n, pcie_clkreq_n,
|
||||
pcie_wake_n, pcie_perst_n, hdmi_scl, hdmi_sda, hdmi_cec,
|
||||
jtag2_trst, rgmii0_clk_125, rgmii0_txen, rgmii0_txclk,
|
||||
rgmii0_txd0, rgmii0_txd1, rgmii0_txd2, rgmii0_txd3, i2s0_bclk,
|
||||
i2s0_wclk, i2s0_sdi, i2s0_sdo, i2s_mclk, rgmii0_rxclk,
|
||||
rgmii0_rxdv, rgmii0_rxd0, rgmii0_rxd1, rgmii0_rxd2, rgmii0_rxd3,
|
||||
i2s2_bclk, i2s2_wclk, i2s2_sdi, i2s2_sdo, gpio27, gpio28, gpio29,
|
||||
rgmii0_mdc, rgmii0_mdio, rgmii0_intb, rgmii1_clk_125, rgmii1_txen,
|
||||
rgmii1_txclk, rgmii1_txd0, rgmii1_txd1, rgmii1_txd2, rgmii1_txd3,
|
||||
i2s1_bclk, i2s1_wclk, i2s1_sdi, i2s1_sdo, gpio34, rgmii1_rxclk,
|
||||
rgmii1_rxdv, rgmii1_rxd0, rgmii1_rxd1, rgmii1_rxd2, rgmii1_rxd3,
|
||||
spi1_cs0_n, spi1_clk, spi1_d0, spi1_d1, spi1_d2, spi1_d3, spi1_cs1_n,
|
||||
rgmii1_mdc, rgmii1_mdio, rgmii1_intb, usb0_pwren, usb1_pwren,
|
||||
i2c0_scl, i2c0_sda, i2c1_scl, i2c1_sda, i2c2_scl, i2c2_sda,
|
||||
i2c3_scl, i2c3_sda, i2c4_scl, i2c4_sda, i2c5_scl, i2c5_sda,
|
||||
uart0_tx, uart0_rx, uart1_tx, uart1_rx, uart1_cts, uart1_rts,
|
||||
uart2_tx, uart2_rx, jtag2_tck, jtag2_tms, jtag2_tdi, jtag2_tdo,
|
||||
fan_pwm, fan_tach, mipi_csi0_xvs, mipi_csi0_xhs, mipi_csi0_mclk,
|
||||
mipi_csi1_xvs, mipi_csi1_xhs, mipi_csi1_mclk, mipi_csi2_xvs,
|
||||
mipi_csi2_xhs, mipi_csi2_mclk, mipi_csi3_xvs, mipi_csi3_xhs,
|
||||
mipi_csi3_mclk, mipi_csi4_xvs, mipi_csi4_xhs, mipi_csi4_mclk,
|
||||
mipi_csi5_xvs, mipi_csi5_xhs, mipi_csi5_mclk, spi3_cs_n, spi3_clk,
|
||||
spi3_di, spi3_do, gpio92, gpio93, s_mode, gpio95, spi0_cs_n,
|
||||
spi0_clk, spi0_d0, spi0_d1, spi0_d2, spi0_d3, i2c10_scl,
|
||||
i2c10_sda, i2c11_scl, i2c11_sda, gpio106, boot_sel0, boot_sel1,
|
||||
boot_sel2, boot_sel3, gpio111, lpddr_ref_clk ]
|
||||
|
||||
function:
|
||||
description:
|
||||
Specify the alternative function to be configured for the
|
||||
given pins.
|
||||
enum: [ disabled, boot_sel, chip_mode, emmc, fan_tach,
|
||||
gpio, hdmi, i2c, i2s, jtag, ddr_ref_clk_sel,
|
||||
lpddr_ref_clk, mipi_csi, osc, pcie, pwm,
|
||||
rgmii, reset, sata, sdio, spi, s_mode, uart, usb ]
|
||||
|
||||
input-schmitt-enable: true
|
||||
|
||||
input-schmitt-disable: true
|
||||
|
||||
bias-disable: true
|
||||
|
||||
bias-pull-down: true
|
||||
|
||||
bias-pull-up: true
|
||||
|
||||
input-enable: true
|
||||
|
||||
input-disable: true
|
||||
|
||||
drive-strength-microamp: true
|
||||
|
||||
required:
|
||||
- pins
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
allOf:
|
||||
- $ref: pincfg-node.yaml#
|
||||
- $ref: pinmux-node.yaml#
|
||||
|
||||
- if:
|
||||
properties:
|
||||
pins:
|
||||
anyOf:
|
||||
- pattern: '^rgmii'
|
||||
- const: lpddr_ref_clk
|
||||
then:
|
||||
properties:
|
||||
drive-strength-microamp:
|
||||
enum: [3000, 6000, 9000, 12000, 15000, 18000, 21000, 24000]
|
||||
else:
|
||||
properties:
|
||||
drive-strength-microamp:
|
||||
enum: [6000, 9000, 12000, 15000, 18000, 21000, 24000, 27000]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
pinctrl@51600080 {
|
||||
compatible = "eswin,eic7700-pinctrl";
|
||||
reg = <0x51600080 0x1fff80>;
|
||||
vrgmii-supply = <&vcc_1v8>;
|
||||
|
||||
dev-active-grp {
|
||||
/* group node defining 1 standard pin */
|
||||
gpio10-pins {
|
||||
pins = "jtag1_tdo";
|
||||
function = "gpio";
|
||||
input-enable;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
/* group node defining 2 I2C pins */
|
||||
i2c6-pins {
|
||||
pins = "uart1_cts", "uart1_rts";
|
||||
function = "i2c";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,213 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/mediatek,mt8189-pinctrl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek MT8189 Pin Controller
|
||||
|
||||
maintainers:
|
||||
- Lei Xue <lei.xue@mediatek.com>
|
||||
- Cathy Xu <ot_cathy.xu@mediatek.com>
|
||||
|
||||
description:
|
||||
The MediaTek's MT8189 Pin controller is used to control SoC pins.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mt8189-pinctrl
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: gpio base
|
||||
- description: lm group IO
|
||||
- description: rb0 group IO
|
||||
- description: rb1 group IO
|
||||
- description: bm0 group IO
|
||||
- description: bm1 group IO
|
||||
- description: bm2 group IO
|
||||
- description: lt0 group IO
|
||||
- description: lt1 group IO
|
||||
- description: rt group IO
|
||||
- description: eint0 group IO
|
||||
- description: eint1 group IO
|
||||
- description: eint2 group IO
|
||||
- description: eint3 group IO
|
||||
- description: eint4 group IO
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: base
|
||||
- const: lm
|
||||
- const: rb0
|
||||
- const: rb1
|
||||
- const: bm0
|
||||
- const: bm1
|
||||
- const: bm2
|
||||
- const: lt0
|
||||
- const: lt1
|
||||
- const: rt
|
||||
- const: eint0
|
||||
- const: eint1
|
||||
- const: eint2
|
||||
- const: eint3
|
||||
- const: eint4
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
'#interrupt-cells':
|
||||
const: 2
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
'#gpio-cells':
|
||||
const: 2
|
||||
|
||||
gpio-ranges:
|
||||
maxItems: 1
|
||||
|
||||
gpio-line-names: true
|
||||
|
||||
# PIN CONFIGURATION NODES
|
||||
patternProperties:
|
||||
'-pins$':
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
patternProperties:
|
||||
'^pins':
|
||||
type: object
|
||||
$ref: /schemas/pinctrl/pincfg-node.yaml
|
||||
additionalProperties: false
|
||||
description:
|
||||
A pinctrl node should contain at least one subnode representing the
|
||||
pinctrl groups available on the machine. Each subnode will list the
|
||||
pins it needs, and how they should be configured, with regard to muxer
|
||||
configuration, pullups, drive strength, input enable/disable and input
|
||||
schmitt.
|
||||
|
||||
properties:
|
||||
pinmux:
|
||||
description:
|
||||
Integer array, represents gpio pin number and mux setting.
|
||||
Supported pin number and mux varies for different SoCs, and are
|
||||
defined as macros in arch/arm64/boot/dts/mediatek/mt8189-pinfunc.h
|
||||
directly, for this SoC.
|
||||
|
||||
drive-strength:
|
||||
enum: [2, 4, 6, 8, 10, 12, 14, 16]
|
||||
|
||||
bias-pull-down:
|
||||
oneOf:
|
||||
- type: boolean
|
||||
- enum: [100, 101, 102, 103]
|
||||
description: mt8189 pull down PUPD/R0/R1 type define value.
|
||||
- enum: [75000, 5000]
|
||||
description: mt8189 pull down RSEL type si unit value(ohm).
|
||||
description: |
|
||||
For pull down type is normal, it doesn't need add R1R0 define
|
||||
and resistance value.
|
||||
|
||||
For pull down type is PUPD/R0/R1 type, it can add R1R0 define to
|
||||
set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
|
||||
"MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
|
||||
"MTK_PUPD_SET_R1R0_11" define in mt8189.
|
||||
|
||||
For pull down type is PD/RSEL, it can add resistance value(ohm)
|
||||
to set different resistance by identifying property
|
||||
"mediatek,rsel-resistance-in-si-unit".
|
||||
|
||||
bias-pull-up:
|
||||
oneOf:
|
||||
- type: boolean
|
||||
- enum: [100, 101, 102, 103]
|
||||
description: mt8189 pull up PUPD/R0/R1 type define value.
|
||||
- enum: [1000, 1500, 2000, 3000, 4000, 5000, 75000]
|
||||
description: mt8189 pull up RSEL type si unit value(ohm).
|
||||
description: |
|
||||
For pull up type is normal, it don't need add R1R0 define
|
||||
and resistance value.
|
||||
|
||||
For pull up type is PUPD/R0/R1 type, it can add R1R0 define to
|
||||
set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
|
||||
"MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
|
||||
"MTK_PUPD_SET_R1R0_11" define in mt8189.
|
||||
|
||||
For pull up type is PU/RSEL, it can add resistance value(ohm)
|
||||
to set different resistance by identifying property
|
||||
"mediatek,rsel-resistance-in-si-unit".
|
||||
|
||||
bias-disable: true
|
||||
|
||||
output-high: true
|
||||
|
||||
output-low: true
|
||||
|
||||
input-enable: true
|
||||
|
||||
input-disable: true
|
||||
|
||||
input-schmitt-enable: true
|
||||
|
||||
input-schmitt-disable: true
|
||||
|
||||
required:
|
||||
- pinmux
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- '#interrupt-cells'
|
||||
- gpio-controller
|
||||
- '#gpio-cells'
|
||||
- gpio-ranges
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/pinctrl/mt65xx.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#define PINMUX_GPIO51__FUNC_SCL0 (MTK_PIN_NO(51) | 2)
|
||||
#define PINMUX_GPIO52__FUNC_SDA0 (MTK_PIN_NO(52) | 2)
|
||||
|
||||
pio: pinctrl@10005000 {
|
||||
compatible = "mediatek,mt8189-pinctrl";
|
||||
reg = <0x10005000 0x1000>,
|
||||
<0x11b50000 0x1000>,
|
||||
<0x11c50000 0x1000>,
|
||||
<0x11c60000 0x1000>,
|
||||
<0x11d20000 0x1000>,
|
||||
<0x11d30000 0x1000>,
|
||||
<0x11d40000 0x1000>,
|
||||
<0x11e20000 0x1000>,
|
||||
<0x11e30000 0x1000>,
|
||||
<0x11f20000 0x1000>,
|
||||
<0x11ce0000 0x1000>,
|
||||
<0x11de0000 0x1000>,
|
||||
<0x11e60000 0x1000>,
|
||||
<0x1c01e000 0x1000>,
|
||||
<0x11f00000 0x1000>;
|
||||
reg-names = "base", "lm", "rb0", "rb1", "bm0" , "bm1",
|
||||
"bm2", "lt0", "lt1", "rt", "eint0", "eint1",
|
||||
"eint2", "eint3", "eint4";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&pio 0 0 182>;
|
||||
interrupt-controller;
|
||||
interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
i2c0-pins {
|
||||
pins {
|
||||
pinmux = <PINMUX_GPIO51__FUNC_SCL0>,
|
||||
<PINMUX_GPIO52__FUNC_SDA0>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -1,71 +0,0 @@
|
||||
NXP LPC18xx/43xx SCU pin controller Device Tree Bindings
|
||||
--------------------------------------------------------
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "nxp,lpc1850-scu"
|
||||
- reg : Address and length of the register set for the device
|
||||
- clocks : Clock specifier (see clock bindings for details)
|
||||
|
||||
The lpc1850-scu driver uses the generic pin multiplexing and generic pin
|
||||
configuration documented in pinctrl-bindings.txt.
|
||||
|
||||
The following generic nodes are supported:
|
||||
- function
|
||||
- pins
|
||||
- bias-disable
|
||||
- bias-pull-up
|
||||
- bias-pull-down
|
||||
- drive-strength
|
||||
- input-enable
|
||||
- input-disable
|
||||
- input-schmitt-enable
|
||||
- input-schmitt-disable
|
||||
- slew-rate
|
||||
|
||||
NXP specific properties:
|
||||
- nxp,gpio-pin-interrupt : Assign pin to gpio pin interrupt controller
|
||||
irq number 0 to 7. See example below.
|
||||
|
||||
Not all pins support all properties so either refer to the NXP 1850/4350
|
||||
user manual or the pin table in the pinctrl-lpc18xx driver for supported
|
||||
pin properties.
|
||||
|
||||
Example:
|
||||
pinctrl: pinctrl@40086000 {
|
||||
compatible = "nxp,lpc1850-scu";
|
||||
reg = <0x40086000 0x1000>;
|
||||
clocks = <&ccu1 CLK_CPU_SCU>;
|
||||
|
||||
i2c0_pins: i2c0-pins {
|
||||
i2c0_pins_cfg {
|
||||
pins = "i2c0_scl", "i2c0_sda";
|
||||
function = "i2c0";
|
||||
input-enable;
|
||||
};
|
||||
};
|
||||
|
||||
uart0_pins: uart0-pins {
|
||||
uart0_rx_cfg {
|
||||
pins = "pf_11";
|
||||
function = "uart0";
|
||||
bias-disable;
|
||||
input-enable;
|
||||
};
|
||||
|
||||
uart0_tx_cfg {
|
||||
pins = "pf_10";
|
||||
function = "uart0";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
gpio_joystick_pins: gpio-joystick-pins {
|
||||
gpio_joystick_1_cfg {
|
||||
pins = "p9_0";
|
||||
function = "gpio";
|
||||
nxp,gpio-pin-interrupt = <0>;
|
||||
input-enable;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,79 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/nxp,lpc1850-scu.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NXP LPC18xx/43xx SCU pin controller
|
||||
|
||||
description:
|
||||
Not all pins support all pin generic node properties so either refer to
|
||||
the NXP 1850/4350 user manual or the pin table in the pinctrl-lpc18xx
|
||||
driver for supported pin properties.
|
||||
|
||||
maintainers:
|
||||
- Frank Li <Frank.Li@nxp.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: nxp,lpc1850-scu
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
'-pins$':
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
patternProperties:
|
||||
'_cfg$':
|
||||
type: object
|
||||
|
||||
allOf:
|
||||
- $ref: pincfg-node.yaml#
|
||||
- $ref: pinmux-node.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
nxp,gpio-pin-interrupt:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
description:
|
||||
Assign pin to gpio pin interrupt controller
|
||||
irq number 0 to 7. See example below.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
|
||||
allOf:
|
||||
- $ref: pinctrl.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/lpc18xx-ccu.h>
|
||||
|
||||
pinctrl@40086000 {
|
||||
compatible = "nxp,lpc1850-scu";
|
||||
reg = <0x40086000 0x1000>;
|
||||
clocks = <&ccu1 CLK_CPU_SCU>;
|
||||
|
||||
gpio-joystick-pins {
|
||||
gpio-joystick-1_cfg {
|
||||
pins = "p9_0";
|
||||
function = "gpio";
|
||||
nxp,gpio-pin-interrupt = <0>;
|
||||
input-enable;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,133 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/qcom,milos-tlmm.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Technologies, Inc. Milos TLMM block
|
||||
|
||||
maintainers:
|
||||
- Luca Weiss <luca.weiss@fairphone.com>
|
||||
|
||||
description:
|
||||
Top Level Mode Multiplexer pin controller in Qualcomm Milos SoC.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,milos-tlmm
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
gpio-reserved-ranges:
|
||||
minItems: 1
|
||||
maxItems: 84
|
||||
|
||||
gpio-line-names:
|
||||
maxItems: 167
|
||||
|
||||
patternProperties:
|
||||
"-state$":
|
||||
oneOf:
|
||||
- $ref: "#/$defs/qcom-milos-tlmm-state"
|
||||
- patternProperties:
|
||||
"-pins$":
|
||||
$ref: "#/$defs/qcom-milos-tlmm-state"
|
||||
additionalProperties: false
|
||||
|
||||
$defs:
|
||||
qcom-milos-tlmm-state:
|
||||
type: object
|
||||
description:
|
||||
Pinctrl node's client devices use subnodes for desired pin configuration.
|
||||
Client device subnodes use below standard properties.
|
||||
$ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
pins:
|
||||
description:
|
||||
List of gpio pins affected by the properties specified in this
|
||||
subnode.
|
||||
items:
|
||||
oneOf:
|
||||
- pattern: "^gpio([0-9]|[1-9][0-9]|1[0-5][0-9]|16[0-7])$"
|
||||
- enum: [ ufs_reset, sdc2_clk, sdc2_cmd, sdc2_data ]
|
||||
minItems: 1
|
||||
maxItems: 36
|
||||
|
||||
function:
|
||||
description:
|
||||
Specify the alternative function to be configured for the specified
|
||||
pins.
|
||||
enum: [ gpio, aoss_cti, atest_char, atest_usb, audio_ext_mclk0,
|
||||
audio_ext_mclk1, audio_ref_clk, cam_mclk, cci_async_in0,
|
||||
cci_i2c_scl, cci_i2c_sda, cci_timer, coex_uart1_rx,
|
||||
coex_uart1_tx, dbg_out_clk, ddr_bist_complete, ddr_bist_fail,
|
||||
ddr_bist_start, ddr_bist_stop, ddr_pxi0, ddr_pxi1, dp0_hot,
|
||||
egpio, gcc_gp1, gcc_gp2, gcc_gp3, host2wlan_sol, i2s0_data0,
|
||||
i2s0_data1, i2s0_sck, i2s0_ws, ibi_i3c, jitter_bist, mdp_vsync,
|
||||
mdp_vsync0_out, mdp_vsync1_out, mdp_vsync2_out, mdp_vsync3_out,
|
||||
mdp_vsync_e, nav_gpio0, nav_gpio1, nav_gpio2, pcie0_clk_req_n,
|
||||
pcie1_clk_req_n, phase_flag, pll_bist_sync, pll_clk_aux,
|
||||
prng_rosc0, prng_rosc1, prng_rosc2, prng_rosc3, qdss_cti,
|
||||
qdss_gpio, qlink0_enable, qlink0_request, qlink0_wmss,
|
||||
qlink1_enable, qlink1_request, qlink1_wmss, qspi0, qup0_se0,
|
||||
qup0_se1, qup0_se2, qup0_se3, qup0_se4, qup0_se5, qup0_se6,
|
||||
qup1_se0, qup1_se1, qup1_se2, qup1_se3, qup1_se4, qup1_se5,
|
||||
qup1_se6, resout_gpio_n, sd_write_protect, sdc1_clk, sdc1_cmd,
|
||||
sdc1_data, sdc1_rclk, sdc2_clk, sdc2_cmd, sdc2_data,
|
||||
sdc2_fb_clk, tb_trig_sdc1, tb_trig_sdc2, tgu_ch0_trigout,
|
||||
tgu_ch1_trigout, tmess_prng0, tmess_prng1, tmess_prng2,
|
||||
tmess_prng3, tsense_pwm1, tsense_pwm2, uim0_clk, uim0_data,
|
||||
uim0_present, uim0_reset, uim1_clk_mira, uim1_clk_mirb,
|
||||
uim1_data_mira, uim1_data_mirb, uim1_present_mira,
|
||||
uim1_present_mirb, uim1_reset_mira, uim1_reset_mirb, usb0_hs,
|
||||
usb0_phy_ps, vfr_0, vfr_1, vsense_trigger_mirnat, wcn_sw,
|
||||
wcn_sw_ctrl ]
|
||||
|
||||
required:
|
||||
- pins
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
tlmm: pinctrl@f100000 {
|
||||
compatible = "qcom,milos-tlmm";
|
||||
reg = <0x0f100000 0x300000>;
|
||||
|
||||
interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
gpio-ranges = <&tlmm 0 0 168>;
|
||||
|
||||
gpio-wo-state {
|
||||
pins = "gpio1";
|
||||
function = "gpio";
|
||||
};
|
||||
|
||||
qup-uart5-default-state {
|
||||
pins = "gpio25", "gpio26";
|
||||
function = "qup0_se5";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
...
|
||||
@@ -27,6 +27,7 @@ properties:
|
||||
- qcom,pm6450-gpio
|
||||
- qcom,pm7250b-gpio
|
||||
- qcom,pm7325-gpio
|
||||
- qcom,pm7550-gpio
|
||||
- qcom,pm7550ba-gpio
|
||||
- qcom,pm8005-gpio
|
||||
- qcom,pm8018-gpio
|
||||
@@ -64,6 +65,7 @@ properties:
|
||||
- qcom,pmi8994-gpio
|
||||
- qcom,pmi8998-gpio
|
||||
- qcom,pmih0108-gpio
|
||||
- qcom,pmiv0104-gpio
|
||||
- qcom,pmk8350-gpio
|
||||
- qcom,pmk8550-gpio
|
||||
- qcom,pmm8155au-gpio
|
||||
@@ -228,6 +230,7 @@ allOf:
|
||||
- qcom,pmc8180-gpio
|
||||
- qcom,pmc8380-gpio
|
||||
- qcom,pmi8994-gpio
|
||||
- qcom,pmiv0104-gpio
|
||||
- qcom,pmm8155au-gpio
|
||||
then:
|
||||
properties:
|
||||
@@ -261,6 +264,7 @@ allOf:
|
||||
- qcom,pm660l-gpio
|
||||
- qcom,pm6150l-gpio
|
||||
- qcom,pm7250b-gpio
|
||||
- qcom,pm7550-gpio
|
||||
- qcom,pm8038-gpio
|
||||
- qcom,pm8150b-gpio
|
||||
- qcom,pm8150l-gpio
|
||||
|
||||
@@ -135,7 +135,7 @@ additionalProperties:
|
||||
description:
|
||||
Pin bank index.
|
||||
- minimum: 0
|
||||
maximum: 13
|
||||
maximum: 14
|
||||
description:
|
||||
Mux 0 means GPIO and mux 1 to N means
|
||||
the specific device function.
|
||||
|
||||
@@ -0,0 +1,187 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright (C) STMicroelectronics 2025.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/st,stm32-hdp.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: STM32 Hardware Debug Port Mux/Config
|
||||
|
||||
maintainers:
|
||||
- Clément LE GOFFIC <legoffic.clement@gmail.com>
|
||||
|
||||
description:
|
||||
STMicroelectronics's STM32 MPUs integrate a Hardware Debug Port (HDP).
|
||||
It allows to output internal signals on SoC's GPIO.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- st,stm32mp131-hdp
|
||||
- st,stm32mp151-hdp
|
||||
- st,stm32mp251-hdp
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^hdp[0-7]-pins$":
|
||||
type: object
|
||||
$ref: pinmux-node.yaml#
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
pins:
|
||||
pattern: '^HDP[0-7]$'
|
||||
|
||||
function: true
|
||||
|
||||
required:
|
||||
- function
|
||||
- pins
|
||||
|
||||
allOf:
|
||||
- $ref: pinctrl.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: st,stm32mp131-hdp
|
||||
then:
|
||||
patternProperties:
|
||||
"^hdp[0-7]-pins$":
|
||||
properties:
|
||||
function:
|
||||
enum: [ pwr_pwrwake_sys, pwr_stop_forbidden, pwr_stdby_wakeup, pwr_encomp_vddcore,
|
||||
bsec_out_sec_niden, aiec_sys_wakeup, none, ddrctrl_lp_req,
|
||||
pwr_ddr_ret_enable_n, dts_clk_ptat, sram3ctrl_tamp_erase_act, gpoval0,
|
||||
pwr_sel_vth_vddcpu, pwr_mpu_ram_lowspeed, ca7_naxierrirq, pwr_okin_mr,
|
||||
bsec_out_sec_dbgen, aiec_c1_wakeup, rcc_pwrds_mpu, ddrctrl_dfi_ctrlupd_req,
|
||||
ddrctrl_cactive_ddrc_asr, sram3ctrl_hw_erase_act, nic400_s0_bready, gpoval1,
|
||||
pwr_pwrwake_mpu, pwr_mpu_clock_disable_ack, ca7_ndbgreset_i,
|
||||
bsec_in_rstcore_n, bsec_out_sec_bsc_dis, ddrctrl_dfi_init_complete,
|
||||
ddrctrl_perf_op_is_refresh, ddrctrl_gskp_dfi_lp_req, sram3ctrl_sw_erase_act,
|
||||
nic400_s0_bvalid, gpoval2, pwr_sel_vth_vddcore, pwr_mpu_clock_disable_req,
|
||||
ca7_npmuirq0, ca7_nfiqout0, bsec_out_sec_dftlock, bsec_out_sec_jtag_dis,
|
||||
rcc_pwrds_sys, sram3ctrl_tamp_erase_req, ddrctrl_stat_ddrc_reg_selfref_type0,
|
||||
dts_valobus1_0, dts_valobus2_0, tamp_potential_tamp_erfcfg, nic400_s0_wready,
|
||||
nic400_s0_rready, gpoval3, pwr_stop2_active, ca7_nl2reset_i,
|
||||
ca7_npreset_varm_i, bsec_out_sec_dften, bsec_out_sec_dbgswenable,
|
||||
eth1_out_pmt_intr_o, eth2_out_pmt_intr_o, ddrctrl_stat_ddrc_reg_selfref_type1,
|
||||
ddrctrl_cactive_0, dts_valobus1_1, dts_valobus2_1, tamp_nreset_sram_ercfg,
|
||||
nic400_s0_wlast, nic400_s0_rlast, gpoval4, ca7_standbywfil2,
|
||||
pwr_vth_vddcore_ack, ca7_ncorereset_i, ca7_nirqout0, bsec_in_pwrok,
|
||||
bsec_out_sec_deviceen, eth1_out_lpi_intr_o, eth2_out_lpi_intr_o,
|
||||
ddrctrl_cactive_ddrc, ddrctrl_wr_credit_cnt, dts_valobus1_2, dts_valobus2_2,
|
||||
pka_pka_itamp_out, nic400_s0_wvalid, nic400_s0_rvalid, gpoval5,
|
||||
ca7_standbywfe0, pwr_vth_vddcpu_ack, ca7_evento, bsec_in_tamper_det,
|
||||
bsec_out_sec_spniden, eth1_out_mac_speed_o1, eth2_out_mac_speed_o1,
|
||||
ddrctrl_csysack_ddrc, ddrctrl_lpr_credit_cnt, dts_valobus1_3, dts_valobus2_3,
|
||||
saes_tamper_out, nic400_s0_awready, nic400_s0_arready, gpoval6,
|
||||
ca7_standbywfi0, pwr_rcc_vcpu_rdy, ca7_eventi, ca7_dbgack0, bsec_out_fuse_ok,
|
||||
bsec_out_sec_spiden, eth1_out_mac_speed_o0, eth2_out_mac_speed_o0,
|
||||
ddrctrl_csysreq_ddrc, ddrctrl_hpr_credit_cnt, dts_valobus1_4, dts_valobus2_4,
|
||||
rng_tamper_out, nic400_s0_awavalid, nic400_s0_aravalid, gpoval7 ]
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: st,stm32mp151-hdp
|
||||
then:
|
||||
patternProperties:
|
||||
"^hdp[0-7]-pins$":
|
||||
properties:
|
||||
function:
|
||||
enum: [ pwr_pwrwake_sys, cm4_sleepdeep, pwr_stdby_wkup, pwr_encomp_vddcore,
|
||||
bsec_out_sec_niden, none, rcc_cm4_sleepdeep, gpu_dbg7, ddrctrl_lp_req,
|
||||
pwr_ddr_ret_enable_n, dts_clk_ptat, gpoval0, pwr_pwrwake_mcu, cm4_halted,
|
||||
ca7_naxierrirq, pwr_okin_mr, bsec_out_sec_dbgen, exti_sys_wakeup,
|
||||
rcc_pwrds_mpu, gpu_dbg6, ddrctrl_dfi_ctrlupd_req, ddrctrl_cactive_ddrc_asr,
|
||||
gpoval1, pwr_pwrwake_mpu, cm4_rxev, ca7_npmuirq1, ca7_nfiqout1,
|
||||
bsec_in_rstcore_n, exti_c2_wakeup, rcc_pwrds_mcu, gpu_dbg5,
|
||||
ddrctrl_dfi_init_complete, ddrctrl_perf_op_is_refresh,
|
||||
ddrctrl_gskp_dfi_lp_req, gpoval2, pwr_sel_vth_vddcore, cm4_txev, ca7_npmuirq0,
|
||||
ca7_nfiqout0, bsec_out_sec_dftlock, exti_c1_wakeup, rcc_pwrds_sys, gpu_dbg4,
|
||||
ddrctrl_stat_ddrc_reg_selfref_type0, ddrctrl_cactive_1, dts_valobus1_0,
|
||||
dts_valobus2_0, gpoval3, pwr_mpu_pdds_not_cstbydis, cm4_sleeping, ca7_nreset1,
|
||||
ca7_nirqout1, bsec_out_sec_dften, bsec_out_sec_dbgswenable,
|
||||
eth_out_pmt_intr_o, gpu_dbg3, ddrctrl_stat_ddrc_reg_selfref_type1,
|
||||
ddrctrl_cactive_0, dts_valobus1_1, dts_valobus2_1, gpoval4, ca7_standbywfil2,
|
||||
pwr_vth_vddcore_ack, ca7_nreset0, ca7_nirqout0, bsec_in_pwrok,
|
||||
bsec_out_sec_deviceen, eth_out_lpi_intr_o, gpu_dbg2, ddrctrl_cactive_ddrc,
|
||||
ddrctrl_wr_credit_cnt, dts_valobus1_2, dts_valobus2_2, gpoval5,
|
||||
ca7_standbywfi1, ca7_standbywfe1, ca7_evento, ca7_dbgack1,
|
||||
bsec_out_sec_spniden, eth_out_mac_speed_o1, gpu_dbg1, ddrctrl_csysack_ddrc,
|
||||
ddrctrl_lpr_credit_cnt, dts_valobus1_3, dts_valobus2_3, gpoval6,
|
||||
ca7_standbywfi0, ca7_standbywfe0, ca7_dbgack0, bsec_out_fuse_ok,
|
||||
bsec_out_sec_spiden, eth_out_mac_speed_o0, gpu_dbg0, ddrctrl_csysreq_ddrc,
|
||||
ddrctrl_hpr_credit_cnt, dts_valobus1_4, dts_valobus2_4, gpoval7 ]
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: st,stm32mp251-hdp
|
||||
then:
|
||||
patternProperties:
|
||||
"^hdp[0-7]-pins$":
|
||||
properties:
|
||||
function:
|
||||
enum: [ pwr_pwrwake_sys, cpu2_sleep_deep, bsec_out_tst_sdr_unlock_or_disable_scan,
|
||||
bsec_out_nidenm, bsec_out_nidena, cpu2_state_0, rcc_pwrds_sys, gpu_dbg7,
|
||||
ddrss_csysreq_ddrc, ddrss_dfi_phyupd_req, cpu3_sleep_deep,
|
||||
d2_gbl_per_clk_bus_req, pcie_usb_cxpl_debug_info_ei_0,
|
||||
pcie_usb_cxpl_debug_info_ei_8, d3_state_0, gpoval0, pwr_pwrwake_cpu2,
|
||||
cpu2_halted, cpu2_state_1, bsec_out_dbgenm, bsec_out_dbgena, exti1_sys_wakeup,
|
||||
rcc_pwrds_cpu2, gpu_dbg6, ddrss_csysack_ddrc, ddrss_dfi_phymstr_req,
|
||||
cpu3_halted, d2_gbl_per_dma_req, pcie_usb_cxpl_debug_info_ei_1,
|
||||
pcie_usb_cxpl_debug_info_ei_9, d3_state_1, gpoval1, pwr_pwrwake_cpu1,
|
||||
cpu2_rxev, cpu1_npumirq1, cpu1_nfiqout1, bsec_out_shdbgen, exti1_cpu2_wakeup,
|
||||
rcc_pwrds_cpu1, gpu_dbg5, ddrss_cactive_ddrc, ddrss_dfi_lp_req, cpu3_rxev,
|
||||
hpdma1_clk_bus_req, pcie_usb_cxpl_debug_info_ei_2,
|
||||
pcie_usb_cxpl_debug_info_ei_10, d3_state_2, gpoval2, pwr_sel_vth_vddcpu,
|
||||
cpu2_txev, cpu1_npumirq0, cpu1_nfiqout0, bsec_out_ddbgen, exti1_cpu1_wakeup,
|
||||
cpu3_state_0, gpu_dbg4, ddrss_mcdcg_en, ddrss_dfi_freq_0, cpu3_txev,
|
||||
hpdma2_clk_bus_req, pcie_usb_cxpl_debug_info_ei_3,
|
||||
pcie_usb_cxpl_debug_info_ei_11, d1_state_0, gpoval3, pwr_sel_vth_vddcore,
|
||||
cpu2_sleeping, cpu1_evento, cpu1_nirqout1, bsec_out_spnidena, exti2_d3_wakeup,
|
||||
eth1_out_pmt_intr_o, gpu_dbg3, ddrss_dphycg_en, ddrss_obsp0, cpu3_sleeping,
|
||||
hpdma3_clk_bus_req, pcie_usb_cxpl_debug_info_ei_4,
|
||||
pcie_usb_cxpl_debug_info_ei_12, d1_state_1, gpoval4, cpu1_standby_wfil2,
|
||||
none, cpu1_nirqout0, bsec_out_spidena, exti2_cpu3_wakeup, eth1_out_lpi_intr_o,
|
||||
gpu_dbg2, ddrctrl_dfi_init_start, ddrss_obsp1, cpu3_state_1,
|
||||
d3_gbl_per_clk_bus_req, pcie_usb_cxpl_debug_info_ei_5,
|
||||
pcie_usb_cxpl_debug_info_ei_13, d1_state_2, gpoval5, cpu1_standby_wfi1,
|
||||
cpu1_standby_wfe1, cpu1_halted1, cpu1_naxierrirq, bsec_out_spnidenm,
|
||||
exti2_cpu2_wakeup, eth2_out_pmt_intr_o, gpu_dbg1, ddrss_dfi_init_complete,
|
||||
ddrss_obsp2, d2_state_0, d3_gbl_per_dma_req, pcie_usb_cxpl_debug_info_ei_6,
|
||||
pcie_usb_cxpl_debug_info_ei_14, cpu1_state_0, gpoval6, cpu1_standby_wfi0,
|
||||
cpu1_standby_wfe0, cpu1_halted0, bsec_out_spidenm, exti2_cpu1__wakeup,
|
||||
eth2_out_lpi_intr_o, gpu_dbg0, ddrss_dfi_ctrlupd_req, ddrss_obsp3, d2_state_1,
|
||||
lpdma1_clk_bus_req, pcie_usb_cxpl_debug_info_ei_7,
|
||||
pcie_usb_cxpl_debug_info_ei_15, cpu1_state_1, gpoval7 ]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/stm32mp1-clks.h>
|
||||
|
||||
pinctrl@54090000 {
|
||||
compatible = "st,stm32mp151-hdp";
|
||||
reg = <0x54090000 0x400>;
|
||||
clocks = <&rcc HDP>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&hdp2_gpo>;
|
||||
hdp2_gpo: hdp2-pins {
|
||||
function = "gpoval2";
|
||||
pins = "HDP2";
|
||||
};
|
||||
};
|
||||
@@ -32,13 +32,16 @@ properties:
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 1
|
||||
|
||||
ranges: true
|
||||
|
||||
pins-are-numbered:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
deprecated: true
|
||||
|
||||
hwlocks: true
|
||||
|
||||
interrupts:
|
||||
@@ -67,22 +70,29 @@ patternProperties:
|
||||
additionalProperties: false
|
||||
properties:
|
||||
gpio-controller: true
|
||||
|
||||
'#gpio-cells':
|
||||
const: 2
|
||||
|
||||
interrupt-controller: true
|
||||
'#interrupt-cells':
|
||||
const: 2
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
gpio-line-names: true
|
||||
|
||||
gpio-ranges:
|
||||
minItems: 1
|
||||
maxItems: 16
|
||||
|
||||
ngpios:
|
||||
description:
|
||||
Number of available gpios in a bank.
|
||||
@@ -160,9 +170,13 @@ patternProperties:
|
||||
* ...
|
||||
* 16 : Alternate Function 15
|
||||
* 17 : Analog
|
||||
* 18 : Reserved
|
||||
To simplify the usage, macro is available to generate "pinmux" field.
|
||||
This macro is available here:
|
||||
- include/dt-bindings/pinctrl/stm32-pinfunc.h
|
||||
Setting the pinmux's function to the Reserved (RSVD) value is used to inform
|
||||
the driver that it shall not apply the mux setting. This can be used to
|
||||
reserve some pins, for example to a co-processor not running Linux.
|
||||
Some examples of using macro:
|
||||
/* GPIO A9 set as alternate function 2 */
|
||||
... {
|
||||
@@ -176,21 +190,32 @@ patternProperties:
|
||||
... {
|
||||
pinmux = <STM32_PINMUX('A', 9, ANALOG)>;
|
||||
};
|
||||
/* GPIO A9 reserved for co-processor */
|
||||
... {
|
||||
pinmux = <STM32_PINMUX('A', 9, RSVD)>;
|
||||
};
|
||||
|
||||
bias-disable:
|
||||
type: boolean
|
||||
|
||||
bias-pull-down:
|
||||
type: boolean
|
||||
|
||||
bias-pull-up:
|
||||
type: boolean
|
||||
|
||||
drive-push-pull:
|
||||
type: boolean
|
||||
|
||||
drive-open-drain:
|
||||
type: boolean
|
||||
|
||||
output-low:
|
||||
type: boolean
|
||||
|
||||
output-high:
|
||||
type: boolean
|
||||
|
||||
slew-rate:
|
||||
description: |
|
||||
0: Low speed
|
||||
|
||||
+14
@@ -23814,6 +23814,12 @@ F: drivers/bus/stm32_etzpc.c
|
||||
F: drivers/bus/stm32_firewall.c
|
||||
F: drivers/bus/stm32_rifsc.c
|
||||
|
||||
ST STM32 HDP PINCTRL DRIVER
|
||||
M: Clément Le Goffic <legoffic.clement@gmail.com>
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/pinctrl/st,stm32-hdp.yaml
|
||||
F: drivers/pinctrl/stm32/pinctrl-stm32-hdp.c
|
||||
|
||||
ST STM32 I2C/SMBUS DRIVER
|
||||
M: Pierre-Yves MORDRET <pierre-yves.mordret@foss.st.com>
|
||||
M: Alain Volmat <alain.volmat@foss.st.com>
|
||||
@@ -23827,6 +23833,14 @@ S: Maintained
|
||||
F: Documentation/devicetree/bindings/memory-controllers/st,stm32mp25-omm.yaml
|
||||
F: drivers/memory/stm32_omm.c
|
||||
|
||||
ST STM32 PINCTRL DRIVER
|
||||
M: Antonio Borneo <antonio.borneo@foss.st.com>
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
|
||||
F: drivers/pinctrl/stm32/
|
||||
F: include/dt-bindings/pinctrl/stm32-pinfunc.h
|
||||
X: drivers/pinctrl/stm32/pinctrl-stm32-hdp.c
|
||||
|
||||
ST STM32 SPI DRIVER
|
||||
M: Alain Volmat <alain.volmat@foss.st.com>
|
||||
L: linux-spi@vger.kernel.org
|
||||
|
||||
@@ -333,7 +333,6 @@ config ARCH_STM32
|
||||
bool "STMicroelectronics STM32 SoC Family"
|
||||
select GPIOLIB
|
||||
select PINCTRL
|
||||
select PINCTRL_STM32MP257
|
||||
select ARM_SMC_MBOX
|
||||
select ARM_SCMI_PROTOCOL
|
||||
select REGULATOR
|
||||
|
||||
+17
-4
@@ -206,6 +206,17 @@ config PINCTRL_DIGICOLOR
|
||||
select PINMUX
|
||||
select GENERIC_PINCONF
|
||||
|
||||
config PINCTRL_EIC7700
|
||||
tristate "EIC7700 PINCTRL driver"
|
||||
depends on ARCH_ESWIN || COMPILE_TEST
|
||||
select PINMUX
|
||||
select GENERIC_PINCONF
|
||||
help
|
||||
This driver support for the pin controller in ESWIN's EIC7700 SoC,
|
||||
which supports pin multiplexing, pin configuration,and rgmii voltage
|
||||
control.
|
||||
Say Y here to enable the eic7700 pinctrl driver
|
||||
|
||||
config PINCTRL_EP93XX
|
||||
bool
|
||||
depends on ARCH_EP93XX || COMPILE_TEST
|
||||
@@ -269,7 +280,8 @@ config PINCTRL_INGENIC
|
||||
|
||||
config PINCTRL_K210
|
||||
bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
|
||||
depends on RISCV && SOC_CANAAN_K210 && OF
|
||||
depends on RISCV && SOC_CANAAN_K210 || COMPILE_TEST
|
||||
depends on OF
|
||||
select GENERIC_PINMUX_FUNCTIONS
|
||||
select GENERIC_PINCONF
|
||||
select GPIOLIB
|
||||
@@ -554,8 +566,8 @@ config PINCTRL_SX150X
|
||||
- 16 bits: sx1509q, sx1506q
|
||||
|
||||
config PINCTRL_TB10X
|
||||
bool
|
||||
depends on OF && ARC_PLAT_TB10X
|
||||
bool "Pinctrl for TB10X" if COMPILE_TEST
|
||||
depends on OF && ARC_PLAT_TB10X || COMPILE_TEST
|
||||
select GPIOLIB
|
||||
|
||||
config PINCTRL_TPS6594
|
||||
@@ -590,7 +602,8 @@ config PINCTRL_TH1520
|
||||
|
||||
config PINCTRL_ZYNQ
|
||||
bool "Pinctrl driver for Xilinx Zynq"
|
||||
depends on ARCH_ZYNQ
|
||||
depends on ARCH_ZYNQ || COMPILE_TEST
|
||||
depends on OF
|
||||
select PINMUX
|
||||
select GENERIC_PINCONF
|
||||
help
|
||||
|
||||
@@ -23,6 +23,7 @@ obj-$(CONFIG_PINCTRL_CY8C95X0) += pinctrl-cy8c95x0.o
|
||||
obj-$(CONFIG_PINCTRL_DA850_PUPD) += pinctrl-da850-pupd.o
|
||||
obj-$(CONFIG_PINCTRL_DA9062) += pinctrl-da9062.o
|
||||
obj-$(CONFIG_PINCTRL_DIGICOLOR) += pinctrl-digicolor.o
|
||||
obj-$(CONFIG_PINCTRL_EIC7700) += pinctrl-eic7700.o
|
||||
obj-$(CONFIG_PINCTRL_EQUILIBRIUM) += pinctrl-equilibrium.o
|
||||
obj-$(CONFIG_PINCTRL_EP93XX) += pinctrl-ep93xx.o
|
||||
obj-$(CONFIG_PINCTRL_EYEQ5) += pinctrl-eyeq5.o
|
||||
@@ -83,7 +84,7 @@ obj-y += sophgo/
|
||||
obj-y += spacemit/
|
||||
obj-$(CONFIG_PINCTRL_SPEAR) += spear/
|
||||
obj-y += sprd/
|
||||
obj-$(CONFIG_SOC_STARFIVE) += starfive/
|
||||
obj-y += starfive/
|
||||
obj-$(CONFIG_PINCTRL_STM32) += stm32/
|
||||
obj-y += sunplus/
|
||||
obj-$(CONFIG_PINCTRL_SUNXI) += sunxi/
|
||||
|
||||
@@ -2653,7 +2653,7 @@ static const struct pinconf_ops aspeed_g4_conf_ops = {
|
||||
.pin_config_group_set = aspeed_pin_config_group_set,
|
||||
};
|
||||
|
||||
static struct pinctrl_desc aspeed_g4_pinctrl_desc = {
|
||||
static const struct pinctrl_desc aspeed_g4_pinctrl_desc = {
|
||||
.name = "aspeed-g4-pinctrl",
|
||||
.pins = aspeed_g4_pins,
|
||||
.npins = ARRAY_SIZE(aspeed_g4_pins),
|
||||
|
||||
@@ -2845,7 +2845,7 @@ static const struct pinconf_ops aspeed_g5_conf_ops = {
|
||||
.pin_config_group_set = aspeed_pin_config_group_set,
|
||||
};
|
||||
|
||||
static struct pinctrl_desc aspeed_g5_pinctrl_desc = {
|
||||
static const struct pinctrl_desc aspeed_g5_pinctrl_desc = {
|
||||
.name = "aspeed-g5-pinctrl",
|
||||
.pins = aspeed_g5_pins,
|
||||
.npins = ARRAY_SIZE(aspeed_g5_pins),
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "../pinctrl-utils.h"
|
||||
#include "pinctrl-aspeed.h"
|
||||
|
||||
#define SCU040 0x040 /* Reset Control Set 1 */
|
||||
#define SCU400 0x400 /* Multi-function Pin Control #1 */
|
||||
#define SCU404 0x404 /* Multi-function Pin Control #2 */
|
||||
#define SCU40C 0x40C /* Multi-function Pin Control #3 */
|
||||
@@ -52,7 +53,7 @@
|
||||
#define SCU6D0 0x6D0 /* Multi-function Pin Control #29 */
|
||||
#define SCUC20 0xC20 /* PCIE configuration Setting Control */
|
||||
|
||||
#define ASPEED_G6_NR_PINS 256
|
||||
#define ASPEED_G6_NR_PINS 258
|
||||
|
||||
#define M24 0
|
||||
SIG_EXPR_LIST_DECL_SESG(M24, MDC3, MDIO3, SIG_DESC_SET(SCU410, 0));
|
||||
@@ -1636,6 +1637,12 @@ FUNC_DECL_1(USB11BHID, USBB);
|
||||
FUNC_DECL_1(USB2BD, USBB);
|
||||
FUNC_DECL_1(USB2BH, USBB);
|
||||
|
||||
#define D7 257
|
||||
SIG_EXPR_LIST_DECL_SESG(D7, RCRST, PCIERC1, SIG_DESC_SET(SCU040, 19),
|
||||
SIG_DESC_SET(SCU500, 24));
|
||||
PIN_DECL_(D7, SIG_EXPR_LIST_PTR(D7, RCRST));
|
||||
FUNC_GROUP_DECL(PCIERC1, D7);
|
||||
|
||||
/* Pins, groups and functions are sort(1):ed alphabetically for sanity */
|
||||
|
||||
static struct pinctrl_pin_desc aspeed_g6_pins[ASPEED_G6_NR_PINS] = {
|
||||
@@ -1806,6 +1813,7 @@ static struct pinctrl_pin_desc aspeed_g6_pins[ASPEED_G6_NR_PINS] = {
|
||||
ASPEED_PINCTRL_PIN(D4),
|
||||
ASPEED_PINCTRL_PIN(D5),
|
||||
ASPEED_PINCTRL_PIN(D6),
|
||||
ASPEED_PINCTRL_PIN(D7),
|
||||
ASPEED_PINCTRL_PIN(E1),
|
||||
ASPEED_PINCTRL_PIN(E11),
|
||||
ASPEED_PINCTRL_PIN(E12),
|
||||
@@ -2073,6 +2081,7 @@ static const struct aspeed_pin_group aspeed_g6_groups[] = {
|
||||
ASPEED_PINCTRL_GROUP(SALT9G1),
|
||||
ASPEED_PINCTRL_GROUP(SD1),
|
||||
ASPEED_PINCTRL_GROUP(SD2),
|
||||
ASPEED_PINCTRL_GROUP(PCIERC1),
|
||||
ASPEED_PINCTRL_GROUP(EMMCG1),
|
||||
ASPEED_PINCTRL_GROUP(EMMCG4),
|
||||
ASPEED_PINCTRL_GROUP(EMMCG8),
|
||||
@@ -2314,6 +2323,7 @@ static const struct aspeed_pin_function aspeed_g6_functions[] = {
|
||||
ASPEED_PINCTRL_FUNC(SPI2),
|
||||
ASPEED_PINCTRL_FUNC(SPI2CS1),
|
||||
ASPEED_PINCTRL_FUNC(SPI2CS2),
|
||||
ASPEED_PINCTRL_FUNC(PCIERC1),
|
||||
ASPEED_PINCTRL_FUNC(TACH0),
|
||||
ASPEED_PINCTRL_FUNC(TACH1),
|
||||
ASPEED_PINCTRL_FUNC(TACH10),
|
||||
@@ -2763,7 +2773,7 @@ static const struct pinconf_ops aspeed_g6_conf_ops = {
|
||||
.pin_config_group_set = aspeed_pin_config_group_set,
|
||||
};
|
||||
|
||||
static struct pinctrl_desc aspeed_g6_pinctrl_desc = {
|
||||
static const struct pinctrl_desc aspeed_g6_pinctrl_desc = {
|
||||
.name = "aspeed-g6-pinctrl",
|
||||
.pins = aspeed_g6_pins,
|
||||
.npins = ARRAY_SIZE(aspeed_g6_pins),
|
||||
|
||||
@@ -441,7 +441,7 @@ int aspeed_gpio_request_enable(struct pinctrl_dev *pctldev,
|
||||
}
|
||||
|
||||
int aspeed_pinctrl_probe(struct platform_device *pdev,
|
||||
struct pinctrl_desc *pdesc,
|
||||
const struct pinctrl_desc *pdesc,
|
||||
struct aspeed_pinctrl_data *pdata)
|
||||
{
|
||||
struct device *parent;
|
||||
|
||||
@@ -102,7 +102,7 @@ int aspeed_gpio_request_enable(struct pinctrl_dev *pctldev,
|
||||
struct pinctrl_gpio_range *range,
|
||||
unsigned int offset);
|
||||
int aspeed_pinctrl_probe(struct platform_device *pdev,
|
||||
struct pinctrl_desc *pdesc,
|
||||
const struct pinctrl_desc *pdesc,
|
||||
struct aspeed_pinctrl_data *pdata);
|
||||
int aspeed_pin_config_get(struct pinctrl_dev *pctldev, unsigned int offset,
|
||||
unsigned long *config);
|
||||
|
||||
@@ -456,7 +456,7 @@ static const struct pinmux_ops bcm4908_pinctrl_pmxops = {
|
||||
* Controller code
|
||||
*/
|
||||
|
||||
static struct pinctrl_desc bcm4908_pinctrl_desc = {
|
||||
static const struct pinctrl_desc bcm4908_pinctrl_desc = {
|
||||
.name = "bcm4908-pinctrl",
|
||||
.pctlops = &bcm4908_pinctrl_ops,
|
||||
.pmxops = &bcm4908_pinctrl_pmxops,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user