Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
stm32-pinctrl.h File Reference

Go to the source code of this file.

Macros

#define STM32_AF0   0x0
 Pin modes. More...
 
#define STM32_AF1   0x1
 
#define STM32_AF2   0x2
 
#define STM32_AF3   0x3
 
#define STM32_AF4   0x4
 
#define STM32_AF5   0x5
 
#define STM32_AF6   0x6
 
#define STM32_AF7   0x7
 
#define STM32_AF8   0x8
 
#define STM32_AF9   0x9
 
#define STM32_AF10   0xa
 
#define STM32_AF11   0xb
 
#define STM32_AF12   0xc
 
#define STM32_AF13   0xd
 
#define STM32_AF14   0xe
 
#define STM32_AF15   0xf
 
#define STM32_ANALOG   0x10
 
#define PIN_NO(port, line)   (((port) - 'A') * 0x10 + (line))
 Macro to generate pinmux int using port, pin number and mode arguments This is taken from Linux equivalent st,stm32f429-pinctrl binding. More...
 
#define STM32_PINMUX(port, line, mode)   (((PIN_NO(port, line)) << 8) | (STM32_ ## mode))
 
#define STM32_FUNC_ALT_0   0
 PIN configuration bitfield. More...
 
#define STM32_FUNC_ALT_1   1
 
#define STM32_FUNC_ALT_2   2
 
#define STM32_FUNC_ALT_3   3
 
#define STM32_FUNC_ALT_4   4
 
#define STM32_FUNC_ALT_5   5
 
#define STM32_FUNC_ALT_6   6
 
#define STM32_FUNC_ALT_7   7
 
#define STM32_FUNC_ALT_8   8
 
#define STM32_FUNC_ALT_9   9
 
#define STM32_FUNC_ALT_10   10
 
#define STM32_FUNC_ALT_11   11
 
#define STM32_FUNC_ALT_12   12
 
#define STM32_FUNC_ALT_13   13
 
#define STM32_FUNC_ALT_14   14
 
#define STM32_FUNC_ALT_15   15
 
#define STM32_AFR_MASK   0xF
 
#define STM32_AFR_SHIFT   0
 
#define STM32_MODER_INPUT_MODE   (0x0<<STM32_MODER_SHIFT)
 
#define STM32_MODER_OUTPUT_MODE   (0x1<<STM32_MODER_SHIFT)
 
#define STM32_MODER_ALT_MODE   (0x2<<STM32_MODER_SHIFT)
 
#define STM32_MODER_ANALOG_MODE   (0x3<<STM32_MODER_SHIFT)
 
#define STM32_MODER_MASK   0x3
 
#define STM32_MODER_SHIFT   4
 
#define STM32_OTYPER_PUSH_PULL   (0x0<<STM32_OTYPER_SHIFT)
 
#define STM32_OTYPER_OPEN_DRAIN   (0x1<<STM32_OTYPER_SHIFT)
 
#define STM32_OTYPER_MASK   0x1
 
#define STM32_OTYPER_SHIFT   6
 
#define STM32_OSPEEDR_LOW_SPEED   (0x0<<STM32_OSPEEDR_SHIFT)
 
#define STM32_OSPEEDR_MEDIUM_SPEED   (0x1<<STM32_OSPEEDR_SHIFT)
 
#define STM32_OSPEEDR_HIGH_SPEED   (0x2<<STM32_OSPEEDR_SHIFT)
 
#define STM32_OSPEEDR_VERY_HIGH_SPEED   (0x3<<STM32_OSPEEDR_SHIFT)
 
#define STM32_OSPEEDR_MASK   0x3
 
#define STM32_OSPEEDR_SHIFT   7
 
#define STM32_PUPDR_NO_PULL   (0x0<<STM32_PUPDR_SHIFT)
 
#define STM32_PUPDR_PULL_UP   (0x1<<STM32_PUPDR_SHIFT)
 
#define STM32_PUPDR_PULL_DOWN   (0x2<<STM32_PUPDR_SHIFT)
 
#define STM32_PUPDR_MASK   0x3
 
#define STM32_PUPDR_SHIFT   9
 
#define STM32_PINMUX_ALT_FUNC_0   (STM32_FUNC_ALT_0 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_1   (STM32_FUNC_ALT_1 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_2   (STM32_FUNC_ALT_2 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_3   (STM32_FUNC_ALT_3 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_4   (STM32_FUNC_ALT_4 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_5   (STM32_FUNC_ALT_5 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_6   (STM32_FUNC_ALT_6 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_7   (STM32_FUNC_ALT_7 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_8   (STM32_FUNC_ALT_8 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_9   (STM32_FUNC_ALT_9 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_10   (STM32_FUNC_ALT_10 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_11   (STM32_FUNC_ALT_11 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_12   (STM32_FUNC_ALT_12 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_13   (STM32_FUNC_ALT_13 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_14   (STM32_FUNC_ALT_14 | STM32_MODER_ALT_MODE)
 
#define STM32_PINMUX_ALT_FUNC_15   (STM32_FUNC_ALT_15 | STM32_MODER_ALT_MODE)
 
#define STM32_PUSHPULL_NOPULL   (STM32_OTYPER_PUSH_PULL | STM32_PUPDR_NO_PULL)
 
#define STM32_OPENDRAIN_PULLUP   (STM32_OTYPER_OPEN_DRAIN | STM32_PUPDR_PULL_UP)
 
#define STM32_PUSHPULL_PULLUP   (STM32_OTYPER_PUSH_PULL | STM32_PUPDR_PULL_UP)
 

Macro Definition Documentation

◆ PIN_NO

#define PIN_NO (   port,
  line 
)    (((port) - 'A') * 0x10 + (line))

Macro to generate pinmux int using port, pin number and mode arguments This is taken from Linux equivalent st,stm32f429-pinctrl binding.

◆ STM32_AF0

#define STM32_AF0   0x0

Pin modes.

◆ STM32_AF1

#define STM32_AF1   0x1

◆ STM32_AF10

#define STM32_AF10   0xa

◆ STM32_AF11

#define STM32_AF11   0xb

◆ STM32_AF12

#define STM32_AF12   0xc

◆ STM32_AF13

#define STM32_AF13   0xd

◆ STM32_AF14

#define STM32_AF14   0xe

◆ STM32_AF15

#define STM32_AF15   0xf

◆ STM32_AF2

#define STM32_AF2   0x2

◆ STM32_AF3

#define STM32_AF3   0x3

◆ STM32_AF4

#define STM32_AF4   0x4

◆ STM32_AF5

#define STM32_AF5   0x5

◆ STM32_AF6

#define STM32_AF6   0x6

◆ STM32_AF7

#define STM32_AF7   0x7

◆ STM32_AF8

#define STM32_AF8   0x8

◆ STM32_AF9

#define STM32_AF9   0x9

◆ STM32_AFR_MASK

#define STM32_AFR_MASK   0xF

◆ STM32_AFR_SHIFT

#define STM32_AFR_SHIFT   0

◆ STM32_ANALOG

#define STM32_ANALOG   0x10

◆ STM32_FUNC_ALT_0

#define STM32_FUNC_ALT_0   0

PIN configuration bitfield.

Pin configuration is coded with the following fields Alternate Functions [ 0 : 3 ] GPIO Mode [ 4 : 5 ] GPIO Output type [ 6 ] GPIO Speed [ 7 : 8 ] GPIO PUPD config [ 9 : 10 ]

Applicable to STM32F3, STM32F4, STM32L4 series

◆ STM32_FUNC_ALT_1

#define STM32_FUNC_ALT_1   1

◆ STM32_FUNC_ALT_10

#define STM32_FUNC_ALT_10   10

◆ STM32_FUNC_ALT_11

#define STM32_FUNC_ALT_11   11

◆ STM32_FUNC_ALT_12

#define STM32_FUNC_ALT_12   12

◆ STM32_FUNC_ALT_13

#define STM32_FUNC_ALT_13   13

◆ STM32_FUNC_ALT_14

#define STM32_FUNC_ALT_14   14

◆ STM32_FUNC_ALT_15

#define STM32_FUNC_ALT_15   15

◆ STM32_FUNC_ALT_2

#define STM32_FUNC_ALT_2   2

◆ STM32_FUNC_ALT_3

#define STM32_FUNC_ALT_3   3

◆ STM32_FUNC_ALT_4

#define STM32_FUNC_ALT_4   4

◆ STM32_FUNC_ALT_5

#define STM32_FUNC_ALT_5   5

◆ STM32_FUNC_ALT_6

#define STM32_FUNC_ALT_6   6

◆ STM32_FUNC_ALT_7

#define STM32_FUNC_ALT_7   7

◆ STM32_FUNC_ALT_8

#define STM32_FUNC_ALT_8   8

◆ STM32_FUNC_ALT_9

#define STM32_FUNC_ALT_9   9

◆ STM32_MODER_ALT_MODE

#define STM32_MODER_ALT_MODE   (0x2<<STM32_MODER_SHIFT)

◆ STM32_MODER_ANALOG_MODE

#define STM32_MODER_ANALOG_MODE   (0x3<<STM32_MODER_SHIFT)

◆ STM32_MODER_INPUT_MODE

#define STM32_MODER_INPUT_MODE   (0x0<<STM32_MODER_SHIFT)

◆ STM32_MODER_MASK

#define STM32_MODER_MASK   0x3

◆ STM32_MODER_OUTPUT_MODE

#define STM32_MODER_OUTPUT_MODE   (0x1<<STM32_MODER_SHIFT)

◆ STM32_MODER_SHIFT

#define STM32_MODER_SHIFT   4

◆ STM32_OPENDRAIN_PULLUP

#define STM32_OPENDRAIN_PULLUP   (STM32_OTYPER_OPEN_DRAIN | STM32_PUPDR_PULL_UP)

◆ STM32_OSPEEDR_HIGH_SPEED

#define STM32_OSPEEDR_HIGH_SPEED   (0x2<<STM32_OSPEEDR_SHIFT)

◆ STM32_OSPEEDR_LOW_SPEED

#define STM32_OSPEEDR_LOW_SPEED   (0x0<<STM32_OSPEEDR_SHIFT)

◆ STM32_OSPEEDR_MASK

#define STM32_OSPEEDR_MASK   0x3

◆ STM32_OSPEEDR_MEDIUM_SPEED

#define STM32_OSPEEDR_MEDIUM_SPEED   (0x1<<STM32_OSPEEDR_SHIFT)

◆ STM32_OSPEEDR_SHIFT

#define STM32_OSPEEDR_SHIFT   7

◆ STM32_OSPEEDR_VERY_HIGH_SPEED

#define STM32_OSPEEDR_VERY_HIGH_SPEED   (0x3<<STM32_OSPEEDR_SHIFT)

◆ STM32_OTYPER_MASK

#define STM32_OTYPER_MASK   0x1

◆ STM32_OTYPER_OPEN_DRAIN

#define STM32_OTYPER_OPEN_DRAIN   (0x1<<STM32_OTYPER_SHIFT)

◆ STM32_OTYPER_PUSH_PULL

#define STM32_OTYPER_PUSH_PULL   (0x0<<STM32_OTYPER_SHIFT)

◆ STM32_OTYPER_SHIFT

#define STM32_OTYPER_SHIFT   6

◆ STM32_PINMUX

#define STM32_PINMUX (   port,
  line,
  mode 
)    (((PIN_NO(port, line)) << 8) | (STM32_ ## mode))

◆ STM32_PINMUX_ALT_FUNC_0

#define STM32_PINMUX_ALT_FUNC_0   (STM32_FUNC_ALT_0 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_1

#define STM32_PINMUX_ALT_FUNC_1   (STM32_FUNC_ALT_1 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_10

#define STM32_PINMUX_ALT_FUNC_10   (STM32_FUNC_ALT_10 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_11

#define STM32_PINMUX_ALT_FUNC_11   (STM32_FUNC_ALT_11 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_12

#define STM32_PINMUX_ALT_FUNC_12   (STM32_FUNC_ALT_12 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_13

#define STM32_PINMUX_ALT_FUNC_13   (STM32_FUNC_ALT_13 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_14

#define STM32_PINMUX_ALT_FUNC_14   (STM32_FUNC_ALT_14 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_15

#define STM32_PINMUX_ALT_FUNC_15   (STM32_FUNC_ALT_15 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_2

#define STM32_PINMUX_ALT_FUNC_2   (STM32_FUNC_ALT_2 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_3

#define STM32_PINMUX_ALT_FUNC_3   (STM32_FUNC_ALT_3 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_4

#define STM32_PINMUX_ALT_FUNC_4   (STM32_FUNC_ALT_4 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_5

#define STM32_PINMUX_ALT_FUNC_5   (STM32_FUNC_ALT_5 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_6

#define STM32_PINMUX_ALT_FUNC_6   (STM32_FUNC_ALT_6 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_7

#define STM32_PINMUX_ALT_FUNC_7   (STM32_FUNC_ALT_7 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_8

#define STM32_PINMUX_ALT_FUNC_8   (STM32_FUNC_ALT_8 | STM32_MODER_ALT_MODE)

◆ STM32_PINMUX_ALT_FUNC_9

#define STM32_PINMUX_ALT_FUNC_9   (STM32_FUNC_ALT_9 | STM32_MODER_ALT_MODE)

◆ STM32_PUPDR_MASK

#define STM32_PUPDR_MASK   0x3

◆ STM32_PUPDR_NO_PULL

#define STM32_PUPDR_NO_PULL   (0x0<<STM32_PUPDR_SHIFT)

◆ STM32_PUPDR_PULL_DOWN

#define STM32_PUPDR_PULL_DOWN   (0x2<<STM32_PUPDR_SHIFT)

◆ STM32_PUPDR_PULL_UP

#define STM32_PUPDR_PULL_UP   (0x1<<STM32_PUPDR_SHIFT)

◆ STM32_PUPDR_SHIFT

#define STM32_PUPDR_SHIFT   9

◆ STM32_PUSHPULL_NOPULL

#define STM32_PUSHPULL_NOPULL   (STM32_OTYPER_PUSH_PULL | STM32_PUPDR_NO_PULL)

◆ STM32_PUSHPULL_PULLUP

#define STM32_PUSHPULL_PULLUP   (STM32_OTYPER_PUSH_PULL | STM32_PUPDR_PULL_UP)