140 lines
4.3 KiB
YAML
140 lines
4.3 KiB
YAML
# Copyright 2022 NXP
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
description: |
|
|
LPC pinctrl node. This node defines pin configurations in pin groups, and has
|
|
the 'pinctrl' node identifier in the SOC's devicetree. Each group within the
|
|
pin configuration defines a peripheral's pin configuration. Each numbered
|
|
subgroup represents pins with shared configuration for that peripheral. The
|
|
'pinmux' property of each group selects the pins to be configured with these
|
|
properties. For example, here is a configuration for FLEXCOMM0 pins:
|
|
|
|
pinmux_flexcomm0_usart: pinmux_flexcomm0_usart {
|
|
group0 {
|
|
pinmux = <FC0_TXD_SCL_MISO_WS_PIO0_30>,
|
|
<FC0_RXD_SDA_MOSI_DATA_PIO0_29>;
|
|
slew-rate = "standard";
|
|
};
|
|
};
|
|
|
|
If only the required properties are supplied, the ICON_PIO register will
|
|
be assigned the following values:
|
|
IOCON_FUNC=<pin mux selection>,
|
|
IOCON_MODE=0,
|
|
IOCON_SLEW=<slew-rate selection>,
|
|
IOCON_INVERT=0,
|
|
IOCON_DIGIMODE=1,
|
|
IOCON_OD=0,
|
|
|
|
Values for I2C type and analog type pins have the following defaults:
|
|
IOCON_ASW=0
|
|
IOCON_SSEL=0
|
|
IOCON_FILTEROFF=1
|
|
IOCON_ECS=0
|
|
IOCON_EGP=1
|
|
IOCON_I2CFILTER=1
|
|
|
|
Note the inherited pinctrl properties defined below have the following effects:
|
|
drive-open-drain: IOCON_OD=1
|
|
bias-pull-up: IOCON_MODE=2
|
|
bias-pull-down: IOCON_MODE=1
|
|
drive-push-pull: IOCON_MODE=3
|
|
|
|
Note: for the LPC11u6x, the following fields are also supported:
|
|
IOCON_HYS- set by input-schmitt-enable
|
|
IOCON_S_MODE- set by nxp,digital-filter
|
|
IOCON_CLKDIV- set by nxp,filter-clock-div
|
|
IOCON_FILTR- set by nxp,analog-filter
|
|
|
|
|
|
compatible: "nxp,lpc-iocon-pinctrl"
|
|
|
|
include: base.yaml
|
|
|
|
child-binding:
|
|
description: LPC IOCON pin controller pin group
|
|
child-binding:
|
|
description: |
|
|
LPC IOCON pin controller pin configuration node
|
|
|
|
include:
|
|
- name: pincfg-node.yaml
|
|
property-allowlist:
|
|
- drive-open-drain
|
|
- bias-pull-up
|
|
- bias-pull-down
|
|
- drive-push-pull
|
|
- input-schmitt-enable
|
|
|
|
properties:
|
|
pinmux:
|
|
required: true
|
|
type: array
|
|
description: |
|
|
Pin mux selection for this group. See the SOC level pinctrl header
|
|
file in NXP's HAL for a defined list of these options.
|
|
slew-rate:
|
|
default: "standard"
|
|
type: string
|
|
enum:
|
|
- "standard"
|
|
- "fast"
|
|
description: |
|
|
Pin output slew rate. Sets the SLEW field in the IOCON register.
|
|
defaults to standard slew rate, due to this being the reset value of
|
|
the field.
|
|
0 SLEW_0- standard mode, output slew rate is slower
|
|
1 SLEW_1- fast mode, output slew rate is faster
|
|
nxp,invert:
|
|
type: boolean
|
|
description: |
|
|
Invert the pin input logic level
|
|
nxp,analog-mode:
|
|
type: boolean
|
|
description: |
|
|
Set the pin to analog mode. Sets DIGIMODE=0, and ASW=1. Only valid for
|
|
analog type pins. Selects ASW0 on LPC55s3x family
|
|
nxp,analog-alt-mode:
|
|
type: boolean
|
|
description: |
|
|
Select the pin's alternate analog mode. Valid on LPC55s3x family SOCs
|
|
when DIGIMODE=0. Only valid for analog type pins. Sets ASW1.
|
|
power-source:
|
|
type: string
|
|
enum:
|
|
- "3v3"
|
|
- "1v8"
|
|
description: |
|
|
Pin output power source. Only valid for I2C mode pins running in I2C
|
|
mode.
|
|
nxp,digital-filter:
|
|
type: boolean
|
|
description: |
|
|
Digital input filter. Noise pulses below 10ms are filtered out.
|
|
nxp,i2c-filter:
|
|
type: string
|
|
enum:
|
|
- "slow"
|
|
- "fast"
|
|
description: |
|
|
I2C glitch filter speed. Only valid for I2C mode pins. Fast mode
|
|
typically only required for High speed I2C.
|
|
nxp,i2c-speed:
|
|
type: string
|
|
enum:
|
|
- "slow"
|
|
- "fast"
|
|
description: |
|
|
I2C speed. Only valid for I2C mode pins. Fast mode should be used for
|
|
fast mode plus I2C.
|
|
nxp,i2c-pullup:
|
|
type: boolean
|
|
description: |
|
|
Enable I2C pullup resistor. If not present, pin is open drain in I2C
|
|
mode. Only valid for I2C mode pins in I2C mode
|
|
nxp,i2c-mode:
|
|
type: boolean
|
|
description: |
|
|
Enable I2C mode for a pin. If not present, pin is in GPIO mode. Only
|
|
valid for I2C mode pins
|