1# Copyright 2022 NXP 2# SPDX-License-Identifier: Apache-2.0 3 4description: | 5 LPC pinctrl node. This node defines pin configurations in pin groups, and has 6 the 'pinctrl' node identifier in the SOC's devicetree. Each group within the 7 pin configuration defines a peripheral's pin configuration. Each numbered 8 subgroup represents pins with shared configuration for that peripheral. The 9 'pinmux' property of each group selects the pins to be configured with these 10 properties. For example, here is a configuration for FLEXCOMM0 pins: 11 12 pinmux_flexcomm0_usart: pinmux_flexcomm0_usart { 13 group0 { 14 pinmux = <FC0_TXD_SCL_MISO_WS_PIO0_30>, 15 <FC0_RXD_SDA_MOSI_DATA_PIO0_29>; 16 slew-rate = "standard"; 17 }; 18 }; 19 20 If only the required properties are supplied, the ICON_PIO register will 21 be assigned the following values: 22 IOCON_FUNC=<pin mux selection>, 23 IOCON_MODE=0, 24 IOCON_SLEW=<slew-rate selection>, 25 IOCON_INVERT=0, 26 IOCON_DIGIMODE=1, 27 IOCON_OD=0, 28 29 Values for I2C type and analog type pins have the following defaults: 30 IOCON_ASW=0 31 IOCON_SSEL=0 32 IOCON_FILTEROFF=1 33 IOCON_ECS=0 34 IOCON_EGP=1 35 IOCON_I2CFILTER=1 36 37 Note the inherited pinctrl properties defined below have the following effects: 38 drive-open-drain: IOCON_OD=1 39 bias-pull-up: IOCON_MODE=2 40 bias-pull-down: IOCON_MODE=1 41 drive-push-pull: IOCON_MODE=3 42 43 Note: for the LPC11u6x, the following fields are also supported: 44 IOCON_HYS- set by input-schmitt-enable 45 IOCON_S_MODE- set by nxp,digital-filter 46 IOCON_CLKDIV- set by nxp,filter-clock-div 47 IOCON_FILTR- set by nxp,analog-filter 48 49 50compatible: "nxp,lpc-iocon-pinctrl" 51 52include: base.yaml 53 54child-binding: 55 description: LPC IOCON pin controller pin group 56 child-binding: 57 description: | 58 LPC IOCON pin controller pin configuration node 59 60 include: 61 - name: pincfg-node.yaml 62 property-allowlist: 63 - drive-open-drain 64 - bias-pull-up 65 - bias-pull-down 66 - drive-push-pull 67 - input-schmitt-enable 68 69 properties: 70 pinmux: 71 required: true 72 type: array 73 description: | 74 Pin mux selection for this group. See the SOC level pinctrl header 75 file in NXP's HAL for a defined list of these options. 76 slew-rate: 77 default: "standard" 78 type: string 79 enum: 80 - "standard" 81 - "fast" 82 description: | 83 Pin output slew rate. Sets the SLEW field in the IOCON register. 84 defaults to standard slew rate, due to this being the reset value of 85 the field. 86 0 SLEW_0- standard mode, output slew rate is slower 87 1 SLEW_1- fast mode, output slew rate is faster 88 nxp,invert: 89 type: boolean 90 description: | 91 Invert the pin input logic level 92 nxp,analog-mode: 93 type: boolean 94 description: | 95 Set the pin to analog mode. Sets DIGIMODE=0, and ASW=1. Only valid for 96 analog type pins. Selects ASW0 on LPC55s3x family 97 nxp,analog-alt-mode: 98 type: boolean 99 description: | 100 Select the pin's alternate analog mode. Valid on LPC55s3x family SOCs 101 when DIGIMODE=0. Only valid for analog type pins. Sets ASW1. 102 power-source: 103 type: string 104 enum: 105 - "3v3" 106 - "1v8" 107 description: | 108 Pin output power source. Only valid for I2C mode pins running in I2C 109 mode. 110 nxp,digital-filter: 111 type: boolean 112 description: | 113 Digital input filter. Noise pulses below 10ms are filtered out. 114 nxp,i2c-filter: 115 type: string 116 enum: 117 - "slow" 118 - "fast" 119 description: | 120 I2C glitch filter speed. Only valid for I2C mode pins. Fast mode 121 typically only required for High speed I2C. 122 nxp,i2c-speed: 123 type: string 124 enum: 125 - "slow" 126 - "fast" 127 description: | 128 I2C speed. Only valid for I2C mode pins. Fast mode should be used for 129 fast mode plus I2C. 130 nxp,i2c-pullup: 131 type: boolean 132 description: | 133 Enable I2C pullup resistor. If not present, pin is open drain in I2C 134 mode. Only valid for I2C mode pins in I2C mode 135 nxp,i2c-mode: 136 type: boolean 137 description: | 138 Enable I2C mode for a pin. If not present, pin is in GPIO mode. Only 139 valid for I2C mode pins 140