mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
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
...
This commit is contained in:
@@ -18,7 +18,9 @@ properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- const: apple,t6020-pinctrl
|
||||
- enum:
|
||||
- apple,t6020-pinctrl
|
||||
- apple,t8122-pinctrl
|
||||
- const: apple,t8103-pinctrl
|
||||
- items:
|
||||
# Do not add additional SoC to this list.
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/fsl,imx27-iomuxc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale i.MX1/i.MX25/i.MX27 IOMUX Controller
|
||||
|
||||
maintainers:
|
||||
- Frank Li <Frank.Li@nxp.com>
|
||||
|
||||
description:
|
||||
Please refer to fsl,imx-pinctrl.txt and pinctrl-bindings.txt in this directory
|
||||
for common binding part and usage.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- fsl,imx1-iomuxc
|
||||
- fsl,imx27-iomuxc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 1
|
||||
|
||||
ranges: true
|
||||
|
||||
patternProperties:
|
||||
'^gpio@[0-9a-f]+$':
|
||||
type: object
|
||||
$ref: /schemas/gpio/fsl-imx-gpio.yaml
|
||||
unevaluatedProperties: false
|
||||
|
||||
'grp$':
|
||||
type: object
|
||||
description:
|
||||
Pinctrl node's client devices use subnodes for desired pin configuration.
|
||||
Client device subnodes use below standard properties.
|
||||
|
||||
properties:
|
||||
fsl,pins:
|
||||
description:
|
||||
three integers array, represents a group of pins mux and config
|
||||
setting. The format is fsl,pins = <PIN MUX_ID CONFIG>.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-matrix
|
||||
items:
|
||||
items:
|
||||
- description:
|
||||
PIN is an integer between 0 and 0xbf. imx27 has 6 ports with 32
|
||||
configurable pins each. PIN is PORT * 32 + PORT_PIN, PORT_PIN
|
||||
is the pin number on the specific port (between 0 and 31)
|
||||
- description: |
|
||||
MUX_ID is function + (direction << 2) + (gpio_oconf << 4)
|
||||
+ (gpio_iconfa << 8) + (gpio_iconfb << 10)
|
||||
|
||||
function value is used to select the pin function.
|
||||
Possible values:
|
||||
0 - Primary function
|
||||
1 - Alternate function
|
||||
2 - GPIO
|
||||
Registers: GIUS (GPIO In Use), GPR (General Purpose Register)
|
||||
|
||||
direction defines the data direction of the pin.
|
||||
Possible values:
|
||||
0 - Input
|
||||
1 - Output
|
||||
Register: DDIR
|
||||
|
||||
gpio_oconf configures the gpio submodule output signal.
|
||||
This does not have any effect unless GPIO function is
|
||||
selected. A/B/C_IN are output signals of function blocks
|
||||
A,B and C. Specific function blocks are described in the
|
||||
reference manual.
|
||||
Possible values:
|
||||
0 - A_IN
|
||||
1 - B_IN
|
||||
2 - C_IN
|
||||
3 - Data Register
|
||||
Registers: OCR1, OCR2
|
||||
|
||||
gpio_iconfa/b configures the gpio submodule input to
|
||||
functionblocks A and B. GPIO function should be selected if
|
||||
this is configured.
|
||||
Possible values:
|
||||
0 - GPIO_IN
|
||||
1 - Interrupt Status Register
|
||||
2 - Pulldown
|
||||
3 - Pullup
|
||||
Registers ICONFA1, ICONFA2, ICONFB1 and ICONFB2
|
||||
|
||||
- description:
|
||||
CONFIG can be 0 or 1, meaning Pullup disable/enable.
|
||||
required:
|
||||
- fsl,pins
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
allOf:
|
||||
- $ref: pinctrl.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
pinmux@10015000 {
|
||||
compatible = "fsl,imx27-iomuxc";
|
||||
reg = <0x10015000 0x600>;
|
||||
|
||||
uartgrp {
|
||||
fsl,pins = <
|
||||
0x8c 0x004 0x0 /* UART1_TXD__UART1_TXD */
|
||||
0x8d 0x000 0x0 /* UART1_RXD__UART1_RXD */
|
||||
0x8e 0x004 0x0 /* UART1_CTS__UART1_CTS */
|
||||
0x8f 0x000 0x0 /* UART1_RTS__UART1_RTS */
|
||||
>;
|
||||
};
|
||||
};
|
||||
@@ -1,121 +0,0 @@
|
||||
* Freescale IMX27 IOMUX Controller
|
||||
|
||||
Required properties:
|
||||
- compatible: "fsl,imx27-iomuxc"
|
||||
|
||||
The iomuxc driver node should define subnodes containing of pinctrl configuration subnodes.
|
||||
|
||||
Required properties for pin configuration node:
|
||||
- fsl,pins: three integers array, represents a group of pins mux and config
|
||||
setting. The format is fsl,pins = <PIN MUX_ID CONFIG>.
|
||||
|
||||
PIN is an integer between 0 and 0xbf. imx27 has 6 ports with 32 configurable
|
||||
configurable pins each. PIN is PORT * 32 + PORT_PIN, PORT_PIN is the pin
|
||||
number on the specific port (between 0 and 31).
|
||||
|
||||
MUX_ID is
|
||||
function + (direction << 2) + (gpio_oconf << 4) + (gpio_iconfa << 8) + (gpio_iconfb << 10)
|
||||
|
||||
function value is used to select the pin function.
|
||||
Possible values:
|
||||
0 - Primary function
|
||||
1 - Alternate function
|
||||
2 - GPIO
|
||||
Registers: GIUS (GPIO In Use), GPR (General Purpose Register)
|
||||
|
||||
direction defines the data direction of the pin.
|
||||
Possible values:
|
||||
0 - Input
|
||||
1 - Output
|
||||
Register: DDIR
|
||||
|
||||
gpio_oconf configures the gpio submodule output signal. This does not
|
||||
have any effect unless GPIO function is selected. A/B/C_IN are output
|
||||
signals of function blocks A,B and C. Specific function blocks are
|
||||
described in the reference manual.
|
||||
Possible values:
|
||||
0 - A_IN
|
||||
1 - B_IN
|
||||
2 - C_IN
|
||||
3 - Data Register
|
||||
Registers: OCR1, OCR2
|
||||
|
||||
gpio_iconfa/b configures the gpio submodule input to functionblocks A and
|
||||
B. GPIO function should be selected if this is configured.
|
||||
Possible values:
|
||||
0 - GPIO_IN
|
||||
1 - Interrupt Status Register
|
||||
2 - Pulldown
|
||||
3 - Pullup
|
||||
Registers ICONFA1, ICONFA2, ICONFB1 and ICONFB2
|
||||
|
||||
CONFIG can be 0 or 1, meaning Pullup disable/enable.
|
||||
|
||||
|
||||
The iomux controller has gpio child nodes which are embedded in the iomux
|
||||
control registers. They have to be defined as child nodes of the iomux device
|
||||
node. If gpio subnodes are defined "#address-cells", "#size-cells" and "ranges"
|
||||
properties for the iomux device node are required.
|
||||
|
||||
Example:
|
||||
|
||||
iomuxc: iomuxc@10015000 {
|
||||
compatible = "fsl,imx27-iomuxc";
|
||||
reg = <0x10015000 0x600>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
gpio1: gpio@10015000 {
|
||||
...
|
||||
};
|
||||
|
||||
...
|
||||
|
||||
uart {
|
||||
pinctrl_uart1: uart-1 {
|
||||
fsl,pins = <
|
||||
0x8c 0x004 0x0 /* UART1_TXD__UART1_TXD */
|
||||
0x8d 0x000 0x0 /* UART1_RXD__UART1_RXD */
|
||||
0x8e 0x004 0x0 /* UART1_CTS__UART1_CTS */
|
||||
0x8f 0x000 0x0 /* UART1_RTS__UART1_RTS */
|
||||
>;
|
||||
};
|
||||
|
||||
...
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
For convenience there are macros defined in imx27-pinfunc.h which provide PIN
|
||||
and MUX_ID. They are structured as MX27_PAD_<Pad name>__<Signal name>. The names
|
||||
are defined in the i.MX27 reference manual.
|
||||
|
||||
The above example using macros:
|
||||
|
||||
iomuxc: iomuxc@10015000 {
|
||||
compatible = "fsl,imx27-iomuxc";
|
||||
reg = <0x10015000 0x600>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
gpio1: gpio@10015000 {
|
||||
...
|
||||
};
|
||||
|
||||
...
|
||||
|
||||
uart {
|
||||
pinctrl_uart1: uart-1 {
|
||||
fsl,pins = <
|
||||
MX27_PAD_UART1_TXD__UART1_TXD 0x0
|
||||
MX27_PAD_UART1_RXD__UART1_RXD 0x0
|
||||
MX27_PAD_UART1_CTS__UART1_CTS 0x0
|
||||
MX27_PAD_UART1_RTS__UART1_RTS 0x0
|
||||
>;
|
||||
};
|
||||
|
||||
...
|
||||
};
|
||||
};
|
||||
@@ -20,6 +20,7 @@ properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- fsl,imx25-iomuxc
|
||||
- fsl,imx35-iomuxc
|
||||
- fsl,imx51-iomuxc
|
||||
- fsl,imx53-iomuxc
|
||||
|
||||
@@ -84,11 +84,12 @@ patternProperties:
|
||||
|
||||
properties:
|
||||
groups:
|
||||
enum: [ emmc_nb, i2c1, i2c2, jtag, mii_col, onewire, pcie1,
|
||||
pcie1_clkreq, pcie1_wakeup, pmic0, pmic1, ptp, ptp_clk,
|
||||
ptp_trig, pwm0, pwm1, pwm2, pwm3, rgmii, sdio0, sdio_sb, smi,
|
||||
spi_cs1, spi_cs2, spi_cs3, spi_quad, uart1, uart2,
|
||||
usb2_drvvbus1, usb32_drvvbus0 ]
|
||||
items:
|
||||
enum: [ emmc_nb, i2c1, i2c2, jtag, mii_col, onewire, pcie1,
|
||||
pcie1_clkreq, pcie1_wakeup, pmic0, pmic1, ptp, ptp_clk,
|
||||
ptp_trig, pwm0, pwm1, pwm2, pwm3, rgmii, sdio0, sdio_sb,
|
||||
smi, spi_cs1, spi_cs2, spi_cs3, spi_quad, uart1, uart2,
|
||||
usb2_drvvbus1, usb32_drvvbus0 ]
|
||||
|
||||
function:
|
||||
enum: [ drvbus, emmc, gpio, i2c, jtag, led, mii, mii_err, onewire,
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/maxim,max77620-pinctrl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Pinmux controller function for Maxim MAX77620 Power management IC
|
||||
|
||||
maintainers:
|
||||
- Svyatoslav Ryhel <clamor95@gmail.com>
|
||||
|
||||
description:
|
||||
Device has 8 GPIO pins which can be configured as GPIO as well as the
|
||||
special IO functions.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/pinctrl/pincfg-node.yaml
|
||||
- $ref: /schemas/pinctrl/pinmux-node.yaml
|
||||
|
||||
patternProperties:
|
||||
"^(pin|gpio).":
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
pins:
|
||||
items:
|
||||
enum: [ gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7 ]
|
||||
|
||||
function:
|
||||
items:
|
||||
enum: [ gpio, lpm-control-in, fps-out, 32k-out1, sd0-dvs-in, sd1-dvs-in,
|
||||
reference-out ]
|
||||
|
||||
drive-push-pull: true
|
||||
drive-open-drain: true
|
||||
bias-pull-up: true
|
||||
bias-pull-down: true
|
||||
|
||||
maxim,active-fps-source:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
FPS source for the GPIOs to get enabled/disabled when system is in
|
||||
active state. Valid values are:
|
||||
- MAX77620_FPS_SRC_0: FPS source is FPS0.
|
||||
- MAX77620_FPS_SRC_1: FPS source is FPS1
|
||||
- MAX77620_FPS_SRC_2: FPS source is FPS2
|
||||
- MAX77620_FPS_SRC_NONE: GPIO is not controlled by FPS events and
|
||||
it gets enabled/disabled by register access.
|
||||
Absence of this property will leave the FPS configuration register
|
||||
for that GPIO to default configuration.
|
||||
|
||||
maxim,active-fps-power-up-slot:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Sequencing event slot number on which the GPIO get enabled when
|
||||
master FPS input event set to HIGH. This is applicable if FPS source
|
||||
is selected as FPS0, FPS1 or FPS2.
|
||||
enum: [0, 1, 2, 3, 4, 5, 6, 7]
|
||||
|
||||
maxim,active-fps-power-down-slot:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Sequencing event slot number on which the GPIO get disabled when
|
||||
master FPS input event set to LOW. This is applicable if FPS source
|
||||
is selected as FPS0, FPS1 or FPS2.
|
||||
enum: [0, 1, 2, 3, 4, 5, 6, 7]
|
||||
|
||||
maxim,suspend-fps-source:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
This is same as property "maxim,active-fps-source" but value get
|
||||
configured when system enters in to suspend state.
|
||||
|
||||
maxim,suspend-fps-power-up-slot:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
This is same as property "maxim,active-fps-power-up-slot" but this
|
||||
value get configured into FPS configuration register when system
|
||||
enters into suspend. This is applicable if suspend state FPS source
|
||||
is selected as FPS0, FPS1 or FPS2.
|
||||
enum: [0, 1, 2, 3, 4, 5, 6, 7]
|
||||
|
||||
maxim,suspend-fps-power-down-slot:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
This is same as property "maxim,active-fps-power-down-slot" but this
|
||||
value get configured into FPS configuration register when system
|
||||
enters into suspend. This is applicable if suspend state FPS source
|
||||
is selected as FPS0, FPS1 or FPS2.
|
||||
enum: [0, 1, 2, 3, 4, 5, 6, 7]
|
||||
|
||||
required:
|
||||
- pins
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
# see maxim,max77620.yaml for an example
|
||||
@@ -162,12 +162,105 @@ properties:
|
||||
this affects the expected delay in ps before latching a value to
|
||||
an output pin.
|
||||
|
||||
if:
|
||||
required:
|
||||
- skew-delay
|
||||
then:
|
||||
properties:
|
||||
skew-delay-input-ps: false
|
||||
skew-delay-output-ps: false
|
||||
input-threshold-voltage-microvolt:
|
||||
description: Specifies the input voltage level of the pin in microvolts.
|
||||
This defines the reference for VIH (Input High Voltage) and VIL
|
||||
(Input Low Voltage) thresholds for proper signal detection.
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
required:
|
||||
- skew-delay
|
||||
then:
|
||||
properties:
|
||||
skew-delay-input-ps: false
|
||||
skew-delay-output-ps: false
|
||||
|
||||
- if:
|
||||
required:
|
||||
- input-disable
|
||||
then:
|
||||
properties:
|
||||
input-enable: false
|
||||
input-threshold-voltage-microvolt: false
|
||||
|
||||
- if:
|
||||
required:
|
||||
- output-disable
|
||||
then:
|
||||
properties:
|
||||
output-enable: false
|
||||
output-impedance-ohms: false
|
||||
|
||||
- if:
|
||||
required:
|
||||
- output-low
|
||||
then:
|
||||
properties:
|
||||
output-high: false
|
||||
|
||||
- if:
|
||||
required:
|
||||
- low-power-enable
|
||||
then:
|
||||
properties:
|
||||
low-power-disable: false
|
||||
|
||||
- if:
|
||||
required:
|
||||
- input-schmitt-disable
|
||||
then:
|
||||
properties:
|
||||
input-schmitt-enable: false
|
||||
input-schmitt-microvolt: false
|
||||
|
||||
- if:
|
||||
required:
|
||||
- drive-strength
|
||||
then:
|
||||
properties:
|
||||
drive-strength-microamp: false
|
||||
|
||||
- if:
|
||||
anyOf:
|
||||
- required:
|
||||
- drive-open-source
|
||||
- required:
|
||||
- drive-open-drain
|
||||
- required:
|
||||
- drive-push-pull
|
||||
then:
|
||||
oneOf:
|
||||
- required:
|
||||
- drive-open-source
|
||||
- required:
|
||||
- drive-open-drain
|
||||
- required:
|
||||
- drive-push-pull
|
||||
|
||||
- if:
|
||||
anyOf:
|
||||
- required:
|
||||
- bias-disable
|
||||
- required:
|
||||
- bias-bus-hold
|
||||
- required:
|
||||
- bias-pull-up
|
||||
- required:
|
||||
- bias-pull-down
|
||||
- required:
|
||||
- bias-pull-pin-default
|
||||
then:
|
||||
oneOf:
|
||||
- required:
|
||||
- bias-disable
|
||||
- required:
|
||||
- bias-bus-hold
|
||||
- required:
|
||||
- bias-pull-up
|
||||
- required:
|
||||
- bias-pull-down
|
||||
- required:
|
||||
- bias-pull-pin-default
|
||||
|
||||
additionalProperties: true
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
Pincontrol driver for MAX77620 Power management IC from Maxim Semiconductor.
|
||||
|
||||
Device has 8 GPIO pins which can be configured as GPIO as well as the
|
||||
special IO functions.
|
||||
|
||||
Please refer file <devicetree/bindings/pinctrl/pinctrl-bindings.txt>
|
||||
for details of the common pinctrl bindings used by client devices,
|
||||
including the meaning of the phrase "pin configuration node".
|
||||
|
||||
Optional Pinmux properties:
|
||||
--------------------------
|
||||
Following properties are required if default setting of pins are required
|
||||
at boot.
|
||||
- pinctrl-names: A pinctrl state named per <pinctrl-bindings.txt>.
|
||||
- pinctrl[0...n]: Properties to contain the phandle for pinctrl states per
|
||||
<pinctrl-bindings.txt>.
|
||||
|
||||
The pin configurations are defined as child of the pinctrl states node. Each
|
||||
sub-node have following properties:
|
||||
|
||||
Required properties:
|
||||
------------------
|
||||
- pins: List of pins. Valid values of pins properties are:
|
||||
gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7.
|
||||
|
||||
Optional properties:
|
||||
-------------------
|
||||
Following are optional properties defined as pinmux DT binding document
|
||||
<pinctrl-bindings.txt>. Absence of properties will leave the configuration
|
||||
on default.
|
||||
function,
|
||||
drive-push-pull,
|
||||
drive-open-drain,
|
||||
bias-pull-up,
|
||||
bias-pull-down.
|
||||
|
||||
Valid values for function properties are:
|
||||
gpio, lpm-control-in, fps-out, 32k-out, sd0-dvs-in, sd1-dvs-in,
|
||||
reference-out
|
||||
|
||||
There are also customised properties for the GPIO1, GPIO2 and GPIO3. These
|
||||
customised properties are required to configure FPS configuration parameters
|
||||
of these GPIOs. Please refer <devicetree/bindings/mfd/max77620.txt> for more
|
||||
detail of Flexible Power Sequence (FPS).
|
||||
|
||||
- maxim,active-fps-source: FPS source for the GPIOs to get
|
||||
enabled/disabled when system is in
|
||||
active state. Valid values are:
|
||||
- MAX77620_FPS_SRC_0,
|
||||
FPS source is FPS0.
|
||||
- MAX77620_FPS_SRC_1,
|
||||
FPS source is FPS1
|
||||
- MAX77620_FPS_SRC_2 and
|
||||
FPS source is FPS2
|
||||
- MAX77620_FPS_SRC_NONE.
|
||||
GPIO is not controlled
|
||||
by FPS events and it gets
|
||||
enabled/disabled by register
|
||||
access.
|
||||
Absence of this property will leave
|
||||
the FPS configuration register for that
|
||||
GPIO to default configuration.
|
||||
|
||||
- maxim,active-fps-power-up-slot: Sequencing event slot number on which
|
||||
the GPIO get enabled when
|
||||
master FPS input event set to HIGH.
|
||||
Valid values are 0 to 7.
|
||||
This is applicable if FPS source is
|
||||
selected as FPS0, FPS1 or FPS2.
|
||||
|
||||
- maxim,active-fps-power-down-slot: Sequencing event slot number on which
|
||||
the GPIO get disabled when master
|
||||
FPS input event set to LOW.
|
||||
Valid values are 0 to 7.
|
||||
This is applicable if FPS source is
|
||||
selected as FPS0, FPS1 or FPS2.
|
||||
|
||||
- maxim,suspend-fps-source: This is same as property
|
||||
"maxim,active-fps-source" but value
|
||||
get configured when system enters in
|
||||
to suspend state.
|
||||
|
||||
- maxim,suspend-fps-power-up-slot: This is same as property
|
||||
"maxim,active-fps-power-up-slot" but
|
||||
this value get configured into FPS
|
||||
configuration register when system
|
||||
enters into suspend.
|
||||
This is applicable if suspend state
|
||||
FPS source is selected as FPS0, FPS1 or
|
||||
|
||||
- maxim,suspend-fps-power-down-slot: This is same as property
|
||||
"maxim,active-fps-power-down-slot" but
|
||||
this value get configured into FPS
|
||||
configuration register when system
|
||||
enters into suspend.
|
||||
This is applicable if suspend state
|
||||
FPS source is selected as FPS0, FPS1 or
|
||||
FPS2.
|
||||
|
||||
Example:
|
||||
--------
|
||||
#include <dt-bindings/mfd/max77620.h>
|
||||
...
|
||||
max77620@3c {
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spmic_default>;
|
||||
|
||||
spmic_default: pinmux@0 {
|
||||
pin_gpio0 {
|
||||
pins = "gpio0";
|
||||
function = "gpio";
|
||||
};
|
||||
|
||||
pin_gpio1 {
|
||||
pins = "gpio1";
|
||||
function = "fps-out";
|
||||
maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
|
||||
};
|
||||
|
||||
pin_gpio2 {
|
||||
pins = "gpio2";
|
||||
function = "fps-out";
|
||||
maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -38,6 +38,10 @@ properties:
|
||||
- enum:
|
||||
- marvell,pxa1908-padconf
|
||||
- const: pinconf-single
|
||||
- items:
|
||||
- enum:
|
||||
- brcm,bcm7038-padconf
|
||||
- const: pinctrl-single
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/qcom,eliza-tlmm.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Technologies, Inc. Eliza TLMM block
|
||||
|
||||
maintainers:
|
||||
- Abel Vesa <abel.vesa@oss.qualcomm.com>
|
||||
|
||||
description:
|
||||
Top Level Mode Multiplexer pin controller in Qualcomm Eliza SoC.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,eliza-tlmm
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
gpio-reserved-ranges:
|
||||
minItems: 1
|
||||
maxItems: 93
|
||||
|
||||
gpio-line-names:
|
||||
maxItems: 185
|
||||
|
||||
patternProperties:
|
||||
"-state$":
|
||||
oneOf:
|
||||
- $ref: "#/$defs/qcom-eliza-tlmm-state"
|
||||
- patternProperties:
|
||||
"-pins$":
|
||||
$ref: "#/$defs/qcom-eliza-tlmm-state"
|
||||
additionalProperties: false
|
||||
|
||||
$defs:
|
||||
qcom-eliza-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-7][0-9]|18[0-4])$"
|
||||
- enum: [ ufs_reset ]
|
||||
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_ref_clk, cam_mclk, cci_async_in, cci_i2c_scl,
|
||||
cci_i2c_sda, cci_timer, coex_uart1_rx, coex_uart1_tx,
|
||||
coex_uart2_rx, coex_uart2_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, gnss_adc0, gnss_adc1,
|
||||
hdmi_ddc_scl, hdmi_ddc_sda, hdmi_dtest0, hdmi_dtest1,
|
||||
hdmi_hot_plug, hdmi_pixel_clk, hdmi_rcv_det, hdmi_tx_cec,
|
||||
host2wlan_sol, i2s0_data0, i2s0_data1, i2s0_sck, i2s0_ws,
|
||||
ibi_i3c, jitter_bist, mdp_esync0_out, mdp_esync1_out,
|
||||
mdp_vsync, mdp_vsync0_out, mdp_vsync11_out,
|
||||
mdp_vsync1_out, mdp_vsync2_out, mdp_vsync3_out,
|
||||
mdp_vsync_e, nav_gpio0, nav_gpio1, nav_gpio2, nav_gpio3,
|
||||
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_traceclk,
|
||||
qdss_gpio_tracectl, qdss_gpio_tracedata, qlink_big_enable,
|
||||
qlink_big_request, qlink_little_enable,
|
||||
qlink_little_request, qlink_wmss, qspi0, qspi_clk,
|
||||
qspi_cs, qup1_se0, qup1_se1, qup1_se2, qup1_se3, qup1_se4,
|
||||
qup1_se5, qup1_se6, qup1_se7, qup2_se0, qup2_se1,
|
||||
qup2_se2, qup2_se3, qup2_se4, qup2_se5, qup2_se6,
|
||||
qup2_se7, resout_gpio, sd_write_protect, sdc1, sdc2,
|
||||
sdc2_fb_clk, tb_trig_sdc1, tb_trig_sdc2, tmess_prng0,
|
||||
tmess_prng1, tmess_prng2, tmess_prng3, tsense_pwm1,
|
||||
tsense_pwm2, tsense_pwm3, tsense_pwm4, uim0_clk,
|
||||
uim0_data, uim0_present, uim0_reset, uim1_clk, uim1_data,
|
||||
uim1_present, uim1_reset, usb0_hs, usb_phy, vfr_0, vfr_1,
|
||||
vsense_trigger_mirnat, wcn_sw_ctrl ]
|
||||
required:
|
||||
- pins
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
tlmm: pinctrl@f100000 {
|
||||
compatible = "qcom,eliza-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 186>;
|
||||
|
||||
gpio-wo-state {
|
||||
pins = "gpio1";
|
||||
function = "gpio";
|
||||
};
|
||||
|
||||
qup-uart14-default-state {
|
||||
pins = "gpio18", "gpio19";
|
||||
function = "qup2_se5";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
...
|
||||
@@ -0,0 +1,120 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/qcom,hawi-tlmm.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Technologies, Inc. Hawi TLMM block
|
||||
|
||||
maintainers:
|
||||
- Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
|
||||
|
||||
description:
|
||||
Top Level Mode Multiplexer pin controller in Qualcomm Hawi SoC.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,hawi-tlmm
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
gpio-reserved-ranges:
|
||||
minItems: 1
|
||||
maxItems: 113
|
||||
|
||||
gpio-line-names:
|
||||
maxItems: 226
|
||||
|
||||
patternProperties:
|
||||
"-state$":
|
||||
oneOf:
|
||||
- $ref: "#/$defs/qcom-hawi-tlmm-state"
|
||||
- patternProperties:
|
||||
"-pins$":
|
||||
$ref: "#/$defs/qcom-hawi-tlmm-state"
|
||||
additionalProperties: false
|
||||
|
||||
$defs:
|
||||
qcom-hawi-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-9][0-9]|20[0-9]|21[0-9]|22[0-5])$"
|
||||
- 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_mclk,
|
||||
audio_ref_clk, cam_mclk, cci_async_in, cci_i2c0, cci_i2c1,
|
||||
cci_i2c2, cci_i2c3, cci_i2c4, cci_i2c5, cci_timer, coex_espmi,
|
||||
coex_uart1_rx, coex_uart1_tx, dbg_out_clk, ddr_bist, ddr_pxi,
|
||||
dp_hot, egpio, gcc_gp, gnss_adc, host_rst, i2chub0_se0,
|
||||
i2chub0_se1, i2chub0_se2, i2chub0_se3, i2chub0_se4, i2s0, i2s1,
|
||||
ibi_i3c, jitter_bist, mdp_esync0, mdp_esync1, mdp_esync2,
|
||||
mdp_vsync, mdp_vsync_e, mdp_vsync_p, mdp_vsync0_out,
|
||||
mdp_vsync1_out, mdp_vsync2_out, mdp_vsync3_out, mdp_vsync5_out,
|
||||
modem_pps_in, modem_pps_out, nav_gpio, nav_gpio0, nav_gpio3,
|
||||
nav_rffe, pcie0_clk_req_n, pcie0_rst_n, pcie1_clk_req_n,
|
||||
phase_flag, pll_bist_sync, pll_clk_aux, qdss_cti, qlink,
|
||||
qspi, qspi_clk, qspi_cs, qup1_se0, qup1_se1, qup1_se2,
|
||||
qup1_se3, qup1_se4, qup1_se5, qup1_se6, qup1_se7, qup2_se0,
|
||||
qup2_se1, qup2_se2, qup2_se3, qup2_se4_01, qup2_se4_23,
|
||||
qup3_se0_01, qup3_se0_23, qup3_se1, qup3_se2, qup3_se3,
|
||||
qup3_se4, qup3_se5, qup4_se0, qup4_se1, qup4_se2, qup4_se3_01,
|
||||
qup4_se3_23, qup4_se3_l3, qup4_se4_01, qup4_se4_23, qup4_se4_l3,
|
||||
rng_rosc, sd_write_protect, sdc4_clk, sdc4_cmd, sdc4_data,
|
||||
sys_throttle, tb_trig_sdc, tmess_rng, tsense_clm, tsense_pwm,
|
||||
uim0, uim1, usb0_hs, usb_phy, vfr, vsense_trigger_mirnat,
|
||||
wcn_sw_ctrl ]
|
||||
|
||||
required:
|
||||
- pins
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
tlmm: pinctrl@f100000 {
|
||||
compatible = "qcom,hawi-tlmm";
|
||||
reg = <0x0f100000 0x300000>;
|
||||
interrupts = <GIC_ESPI 272 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&tlmm 0 0 227>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
qup-uart7-state {
|
||||
pins = "gpio62", "gpio63";
|
||||
function = "qup1_se7";
|
||||
};
|
||||
};
|
||||
...
|
||||
@@ -0,0 +1,123 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/qcom,ipq5210-tlmm.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm IPQ5210 TLMM pin controller
|
||||
|
||||
maintainers:
|
||||
- Bjorn Andersson <andersson@kernel.org>
|
||||
- Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
|
||||
|
||||
description:
|
||||
Top Level Mode Multiplexer pin controller in Qualcomm IPQ5210 SoC.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,ipq5210-tlmm
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
gpio-reserved-ranges:
|
||||
minItems: 1
|
||||
maxItems: 27
|
||||
|
||||
gpio-line-names:
|
||||
maxItems: 54
|
||||
|
||||
patternProperties:
|
||||
"-state$":
|
||||
oneOf:
|
||||
- $ref: "#/$defs/qcom-ipq5210-tlmm-state"
|
||||
- patternProperties:
|
||||
"-pins$":
|
||||
$ref: "#/$defs/qcom-ipq5210-tlmm-state"
|
||||
additionalProperties: false
|
||||
|
||||
$defs:
|
||||
qcom-ipq5210-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:
|
||||
pattern: "^gpio([0-9]|[1-4][0-9]|5[0-3])$"
|
||||
minItems: 1
|
||||
maxItems: 36
|
||||
|
||||
function:
|
||||
description:
|
||||
Specify the alternative function to be configured for the specified
|
||||
pins.
|
||||
|
||||
enum: [ atest_char_start, atest_char_status0, atest_char_status1,
|
||||
atest_char_status2, atest_char_status3, atest_tic_en, audio_pri,
|
||||
audio_pri_mclk_out0, audio_pri_mclk_in0, audio_pri_mclk_out1,
|
||||
audio_pri_mclk_in1, audio_pri_mclk_out2, audio_pri_mclk_in2,
|
||||
audio_pri_mclk_out3, audio_pri_mclk_in3, audio_sec,
|
||||
audio_sec_mclk_out0, audio_sec_mclk_in0, audio_sec_mclk_out1,
|
||||
audio_sec_mclk_in1, audio_sec_mclk_out2, audio_sec_mclk_in2,
|
||||
audio_sec_mclk_out3, audio_sec_mclk_in3, core_voltage_0,
|
||||
cri_trng0, cri_trng1, cri_trng2, cri_trng3, dbg_out_clk, dg_out,
|
||||
gcc_plltest_bypassnl, gcc_plltest_resetn, gcc_tlmm, gpio, led0,
|
||||
led1, led2, mdc_mst, mdc_slv0, mdc_slv1, mdc_slv2, mdio_mst,
|
||||
mdio_slv0, mdio_slv1, mdio_slv2, mux_tod_out, pcie0_clk_req_n,
|
||||
pcie0_wake, pcie1_clk_req_n, pcie1_wake, pll_test,
|
||||
pon_active_led, pon_mux_sel, pon_rx, pon_rx_los, pon_tx,
|
||||
pon_tx_burst, pon_tx_dis, pon_tx_fault, pon_tx_sd, gpn_rx_los,
|
||||
gpn_tx_burst, gpn_tx_dis, gpn_tx_fault, gpn_tx_sd, pps, pwm0,
|
||||
pwm1, pwm2, pwm3, qdss_cti_trig_in_a0, qdss_cti_trig_in_a1,
|
||||
qdss_cti_trig_in_b0, qdss_cti_trig_in_b1, qdss_cti_trig_out_a0,
|
||||
qdss_cti_trig_out_a1, qdss_cti_trig_out_b0,
|
||||
qdss_cti_trig_out_b1, qdss_traceclk_a, qdss_tracectl_a,
|
||||
qdss_tracedata_a, qrng_rosc0, qrng_rosc1, qrng_rosc2,
|
||||
qspi_data, qspi_clk, qspi_cs_n, qup_se0, qup_se1, qup_se2,
|
||||
qup_se3, qup_se4, qup_se5, qup_se5_l1, resout, rx_los0, rx_los1,
|
||||
rx_los2, sdc_clk, sdc_cmd, sdc_data, tsens_max ]
|
||||
|
||||
required:
|
||||
- pins
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
tlmm: pinctrl@1000000 {
|
||||
compatible = "qcom,ipq5210-tlmm";
|
||||
reg = <0x01000000 0x300000>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <0x2>;
|
||||
gpio-ranges = <&tlmm 0 0 54>;
|
||||
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <0x2>;
|
||||
|
||||
qup-uart1-default-state {
|
||||
pins = "gpio38", "gpio39";
|
||||
function = "qup_se1";
|
||||
drive-strength = <6>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
@@ -27,6 +27,14 @@ properties:
|
||||
gpio-ranges:
|
||||
maxItems: 1
|
||||
|
||||
gpio-reserved-ranges:
|
||||
minItems: 1
|
||||
maxItems: 30
|
||||
description:
|
||||
Pins can be reserved for trusted applications or for LPASS, thereby
|
||||
inaccessible from the OS. This property can be used to mark the pins
|
||||
which resources should not be accessed by the OS.
|
||||
|
||||
required:
|
||||
- gpio-controller
|
||||
- "#gpio-cells"
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/qcom,milos-lpass-lpi-pinctrl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Milos SoC LPASS LPI TLMM
|
||||
|
||||
maintainers:
|
||||
- Luca Weiss <luca.weiss@fairphone.com>
|
||||
|
||||
description:
|
||||
Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
|
||||
(LPASS) Low Power Island (LPI) of Qualcomm Milos SoC.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,milos-lpass-lpi-pinctrl
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: LPASS LPI TLMM Control and Status registers
|
||||
- description: LPASS LPI MCC registers
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: LPASS Core voting clock
|
||||
- description: LPASS Audio voting clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: core
|
||||
- const: audio
|
||||
|
||||
patternProperties:
|
||||
"-state$":
|
||||
oneOf:
|
||||
- $ref: "#/$defs/qcom-milos-lpass-state"
|
||||
- patternProperties:
|
||||
"-pins$":
|
||||
$ref: "#/$defs/qcom-milos-lpass-state"
|
||||
additionalProperties: false
|
||||
|
||||
$defs:
|
||||
qcom-milos-lpass-state:
|
||||
type: object
|
||||
description:
|
||||
Pinctrl node's client devices use subnodes for desired pin configuration.
|
||||
Client device subnodes use below standard properties.
|
||||
$ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
pins:
|
||||
description:
|
||||
List of gpio pins affected by the properties specified in this
|
||||
subnode.
|
||||
items:
|
||||
pattern: "^gpio([0-9]|1[0-9]|2[0-2])$"
|
||||
|
||||
function:
|
||||
enum: [ dmic1_clk, dmic1_data, dmic2_clk, dmic2_data, dmic3_clk,
|
||||
dmic3_data, dmic4_clk, dmic4_data, ext_mclk1_a, ext_mclk1_b,
|
||||
ext_mclk1_c, ext_mclk1_d, ext_mclk1_e, gpio, i2s0_clk,
|
||||
i2s0_data, i2s0_ws, i2s1_clk, i2s1_data, i2s1_ws, i2s2_clk,
|
||||
i2s2_data, i2s2_ws, i2s3_clk, i2s3_data, i2s3_ws, qca_swr_clk,
|
||||
qca_swr_data, slimbus_clk, slimbus_data, swr_rx_clk,
|
||||
swr_rx_data, swr_tx_clk, swr_tx_data, wsa_swr_clk,
|
||||
wsa_swr_data ]
|
||||
description:
|
||||
Specify the alternative function to be configured for the specified
|
||||
pins.
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,lpass-lpi-common.yaml#
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
|
||||
|
||||
pinctrl@3440000 {
|
||||
compatible = "qcom,milos-lpass-lpi-pinctrl";
|
||||
reg = <0x03440000 0x20000>,
|
||||
<0x034d0000 0x10000>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&lpass_tlmm 0 0 23>;
|
||||
|
||||
clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
|
||||
<&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
|
||||
clock-names = "core",
|
||||
"audio";
|
||||
|
||||
tx-swr-active-clk-state {
|
||||
pins = "gpio0";
|
||||
function = "swr_tx_clk";
|
||||
drive-strength = <4>;
|
||||
slew-rate = <1>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,81 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm SDM670 SoC LPASS LPI TLMM
|
||||
|
||||
maintainers:
|
||||
- Richard Acayan <mailingradian@gmail.com>
|
||||
|
||||
description:
|
||||
Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
|
||||
(LPASS) Low Power Island (LPI) of Qualcomm SDM670 SoC.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,sdm670-lpass-lpi-pinctrl
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: LPASS LPI TLMM Control and Status registers
|
||||
|
||||
patternProperties:
|
||||
"-state$":
|
||||
oneOf:
|
||||
- $ref: "#/$defs/qcom-sdm670-lpass-state"
|
||||
- patternProperties:
|
||||
"-pins$":
|
||||
$ref: "#/$defs/qcom-sdm670-lpass-state"
|
||||
additionalProperties: false
|
||||
|
||||
$defs:
|
||||
qcom-sdm670-lpass-state:
|
||||
type: object
|
||||
description:
|
||||
Pinctrl node's client devices use subnodes for desired pin configuration.
|
||||
Client device subnodes use below standard properties.
|
||||
$ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
pins:
|
||||
description:
|
||||
List of gpio pins affected by the properties specified in this
|
||||
subnode.
|
||||
items:
|
||||
pattern: "^gpio([0-9]|1[0-9]|2[0-9]|3[0-1])$"
|
||||
|
||||
function:
|
||||
enum: [ gpio, comp_rx, dmic1_clk, dmic1_data, dmic2_clk, dmic2_data,
|
||||
i2s1_clk, i2s_data, i2s_ws, lpi_cdc_rst, mclk0, pdm_rx,
|
||||
pdm_sync, pdm_tx, slimbus_clk ]
|
||||
description:
|
||||
Specify the alternative function to be configured for the specified
|
||||
pins.
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,lpass-lpi-common.yaml#
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
lpi_tlmm: pinctrl@62b40000 {
|
||||
compatible = "qcom,sdm670-lpass-lpi-pinctrl";
|
||||
reg = <0x62b40000 0x20000>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&lpi_tlmm 0 0 32>;
|
||||
|
||||
cdc_comp_default: cdc-comp-default-state {
|
||||
pins = "gpio22", "gpio24";
|
||||
function = "comp_rx";
|
||||
drive-strength = <4>;
|
||||
};
|
||||
};
|
||||
@@ -15,7 +15,13 @@ description:
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,sm8450-lpass-lpi-pinctrl
|
||||
oneOf:
|
||||
- const: qcom,sm8450-lpass-lpi-pinctrl
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,qcs8300-lpass-lpi-pinctrl
|
||||
- qcom,sa8775p-lpass-lpi-pinctrl
|
||||
- const: qcom,sm8450-lpass-lpi-pinctrl
|
||||
|
||||
reg:
|
||||
items:
|
||||
|
||||
@@ -19,7 +19,9 @@ properties:
|
||||
oneOf:
|
||||
- const: qcom,sm8650-lpass-lpi-pinctrl
|
||||
- items:
|
||||
- const: qcom,sm8750-lpass-lpi-pinctrl
|
||||
- enum:
|
||||
- qcom,glymur-lpass-lpi-pinctrl
|
||||
- qcom,sm8750-lpass-lpi-pinctrl
|
||||
- const: qcom,sm8650-lpass-lpi-pinctrl
|
||||
|
||||
reg:
|
||||
|
||||
@@ -135,8 +135,11 @@ patternProperties:
|
||||
|
||||
realtek,duty-cycle:
|
||||
description: |
|
||||
An integer describing the level to adjust output duty cycle, controlling
|
||||
the proportion of positive and negative waveforms in nanoseconds.
|
||||
An integer describing the level to adjust the output pulse width, it
|
||||
provides a fixed nanosecond-level adjustment to the rising/falling
|
||||
edges of an existing signal. It is used for Signal Integrity tuning
|
||||
(adding/subtracting delay to fine-tune the high/low duration), rather
|
||||
than generating a specific PWM frequency.
|
||||
Valid arguments are described as below:
|
||||
0: 0ns
|
||||
2: + 0.25ns
|
||||
|
||||
@@ -134,8 +134,11 @@ patternProperties:
|
||||
|
||||
realtek,duty-cycle:
|
||||
description: |
|
||||
An integer describing the level to adjust output duty cycle, controlling
|
||||
the proportion of positive and negative waveforms in nanoseconds.
|
||||
An integer describing the level to adjust the output pulse width, it
|
||||
provides a fixed nanosecond-level adjustment to the rising/falling
|
||||
edges of an existing signal. It is used for Signal Integrity tuning
|
||||
(adding/subtracting delay to fine-tune the high/low duration), rather
|
||||
than generating a specific PWM frequency.
|
||||
Valid arguments are described as below:
|
||||
0: 0ns
|
||||
2: + 0.25ns
|
||||
|
||||
@@ -133,8 +133,11 @@ patternProperties:
|
||||
|
||||
realtek,duty-cycle:
|
||||
description: |
|
||||
An integer describing the level to adjust output duty cycle, controlling
|
||||
the proportion of positive and negative waveforms in nanoseconds.
|
||||
An integer describing the level to adjust the output pulse width, it
|
||||
provides a fixed nanosecond-level adjustment to the rising/falling
|
||||
edges of an existing signal. It is used for Signal Integrity tuning
|
||||
(adding/subtracting delay to fine-tune the high/low duration), rather
|
||||
than generating a specific PWM frequency.
|
||||
Valid arguments are described as below:
|
||||
0: 0ns
|
||||
2: + 0.25ns
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user