adi,max32-pinctrl

Vendor: Analog Devices, Inc.

Description

MAX32 Pin controller Node
Based on pincfg-node.yaml binding.

Note: `bias-disable`  are default pin configurations.

Properties

Top level properties

These property descriptions apply to “adi,max32-pinctrl” nodes themselves. This page also describes child node properties in the following sections.

Properties not inherited from the base binding file.

(None)

Child node properties

Name

Type

Details

bias-disable

boolean

disable any pin bias

bias-pull-up

boolean

enable pull-up resistor

bias-pull-down

boolean

enable pull-down resistor

drive-strength

int

There are 4 drive strength mode.
Mode 0: 1mA
Mode 1: 2mA
Mode 2: 4mA
Mode 3: 8mA
Default GPIO output drive strength is mode 0 for MAX32 MCUs.
For more information please take a look device user guide, datasheet.

Legal values: 0, 1, 2, 3

input-enable

boolean

enable input on pin (e.g. enable an input buffer, no effect on output)

power-source

int

GPIO Supply Voltage Select, Selects the voltage rail used for the pin.
0 or MAX32_VSEL_VDDIO
1 or MAX32_VSEL_VDDIOH

Legal values: 0, 1

output-enable

boolean

enable output on a pin without actively driving it (e.g. enable an output
buffer)

output-low

boolean

set the pin to output mode with low level

output-high

boolean

set the pin to output mode with high level

pinmux

int

Integer array, represents gpio pin number and mux setting.
These defines are calculated as: (pin<<8 | port<<4 | function<<0)
With:
- port: The gpio port index (0, 1, ...)
- pin: The pin offset within the port (0, 1, 2, ...)
- function: The function number, can be:
* 0 : GPIO
* 1 : Alternate Function 1
* 2 : Alternate Function 2
* 3 : Alternate Function 3
* 4 : Alternate Function 4
In case selected pin function is GPIO, pin is statically configured as
a plain input/output GPIO. Default configuration is input. Output value
can be configured by adding 'ouptut-low' or 'output-high' properties
to the pin configuration.

To simplify the usage, macro is available to generate "pinmux" field.
This macro is available here:
  -include/zephyr/dt-bindings/pinctrl/max32-pinctrl.h
Some examples of macro usage:
P0.9 set as alernate function 1
{
  pinmux = <MAX32_PINMUX(0, 9, AF1)>;
};
P0.9 set as alernate function 2
{
  pinmux = <MAX32_PINMUX(0, 9, AF2)>;
};
P0.9 set as GPIO output high
{
  pinmux = <MAX32_PINMUX(0, 9, GPIO)>;
  output-high;
};

This property is required.