Zephyr API Documentation 4.3.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
em32f967-pinctrl.h File Reference

Go to the source code of this file.

Macros

#define EM32F967_GPIO   0 /* 000: GPIO function */
 EM32F967 Pin Control Definitions (STM32-style).
#define EM32F967_AF1   1 /* 001: Alternate function 1 (SPI1, etc.) */
#define EM32F967_AF2   2 /* 010: Alternate function 2 (UART, etc.) */
#define EM32F967_AF3   3 /* 011: Alternate function 3 (Timer, 7816, etc.) */
#define EM32F967_AF4   4 /* 100: Alternate function 4 (I2C, etc.) */
#define EM32F967_AF5   5 /* 101: Alternate function 5 (I2C, WKUP, etc.) */
#define EM32F967_AF6   6 /* 110: Alternate function 6 (SSP2, etc.) */
#define EM32F967_AF7   7 /* 111: Alternate function 7 (PWM, etc.) */
#define EM32F967_MUX_SHIFT   0U
 Pin configuration bit field encoding (STM32-style).
#define EM32F967_MUX_MASK   0x7U
#define EM32F967_PIN_SHIFT   3U
#define EM32F967_PIN_MASK   0xFU
#define EM32F967_PORT_SHIFT   7U
#define EM32F967_PORT_MASK   0x1U
#define EM32F967_PINMUX(port, pin, mux)
 EM32F967 Pin Multiplexing Macro (STM32-style).
#define EM32F967_DT_PINMUX_PORT(pinmux)
#define EM32F967_DT_PINMUX_PIN(pinmux)
#define EM32F967_DT_PINMUX_MUX(pinmux)
#define EM32F967_PULL_NONE_5V   0 /* 00: Floating */
#define EM32F967_PULL_UP0_5V   1 /* 01: PU0 (66KΩ@5V, 101KΩ@3.3V, 238KΩ@1.8V) */
#define EM32F967_PULL_UP1_5V   2 /* 10: PU1 (4.7KΩ@5V, 6.41KΩ@3.3V, 12.7KΩ@1.8V) */
#define EM32F967_PULL_DOWN_5V   3 /* 11: PD (15KΩ@5V, 21.8KΩ@3.3V, 49.6KΩ@1.8V) */
#define EM32F967_PULL_NONE_3V   0 /* 00: Floating */
#define EM32F967_PULL_UP0_3V   1 /* 01: PU0 (66KΩ@3.3V, 140KΩ@1.8V) */
#define EM32F967_PULL_UP1_3V   2 /* 10: PU1 (4.7KΩ@3.3V, 8.53KΩ@1.8V) */
#define EM32F967_PULL_DOWN_3V   3 /* 11: PD (15KΩ@3.3V, 25.2KΩ@1.8V) */
#define EM32F967_DRIVE_NORMAL   0 /* Normal drive strength */
#define EM32F967_DRIVE_HIGH   1 /* High drive strength (Load=30pF) */

Macro Definition Documentation

◆ EM32F967_AF1

#define EM32F967_AF1   1 /* 001: Alternate function 1 (SPI1, etc.) */

◆ EM32F967_AF2

#define EM32F967_AF2   2 /* 010: Alternate function 2 (UART, etc.) */

◆ EM32F967_AF3

#define EM32F967_AF3   3 /* 011: Alternate function 3 (Timer, 7816, etc.) */

◆ EM32F967_AF4

#define EM32F967_AF4   4 /* 100: Alternate function 4 (I2C, etc.) */

◆ EM32F967_AF5

#define EM32F967_AF5   5 /* 101: Alternate function 5 (I2C, WKUP, etc.) */

◆ EM32F967_AF6

#define EM32F967_AF6   6 /* 110: Alternate function 6 (SSP2, etc.) */

◆ EM32F967_AF7

#define EM32F967_AF7   7 /* 111: Alternate function 7 (PWM, etc.) */

◆ EM32F967_DRIVE_HIGH

#define EM32F967_DRIVE_HIGH   1 /* High drive strength (Load=30pF) */

◆ EM32F967_DRIVE_NORMAL

#define EM32F967_DRIVE_NORMAL   0 /* Normal drive strength */

◆ EM32F967_DT_PINMUX_MUX

#define EM32F967_DT_PINMUX_MUX ( pinmux)
Value:
#define EM32F967_MUX_SHIFT
Pin configuration bit field encoding (STM32-style).
Definition em32f967-pinctrl.h:37
#define EM32F967_MUX_MASK
Definition em32f967-pinctrl.h:38

◆ EM32F967_DT_PINMUX_PIN

#define EM32F967_DT_PINMUX_PIN ( pinmux)
Value:
#define EM32F967_PIN_SHIFT
Definition em32f967-pinctrl.h:39
#define EM32F967_PIN_MASK
Definition em32f967-pinctrl.h:40

◆ EM32F967_DT_PINMUX_PORT

#define EM32F967_DT_PINMUX_PORT ( pinmux)
Value:
#define EM32F967_PORT_MASK
Definition em32f967-pinctrl.h:42
#define EM32F967_PORT_SHIFT
Definition em32f967-pinctrl.h:41

◆ EM32F967_GPIO

#define EM32F967_GPIO   0 /* 000: GPIO function */

EM32F967 Pin Control Definitions (STM32-style).

This header defines the pin control macros for the EM32F967 microcontroller following the STM32 pinctrl design pattern. Based on EM32F967_Complete_Specification_v1.0.md

◆ EM32F967_MUX_MASK

#define EM32F967_MUX_MASK   0x7U

◆ EM32F967_MUX_SHIFT

#define EM32F967_MUX_SHIFT   0U

Pin configuration bit field encoding (STM32-style).

Fields:

  • mux [ 0 : 2 ] - Multiplexing function (3 bits)
  • pin [ 3 : 6 ] - Pin number (4 bits, 0-15)
  • port [ 7 : 7 ] - Port identifier (1 bit, 0=PA, 1=PB)

This encoding allows up to 2 ports, 16 pins per port, and 8 mux functions

◆ EM32F967_PIN_MASK

#define EM32F967_PIN_MASK   0xFU

◆ EM32F967_PIN_SHIFT

#define EM32F967_PIN_SHIFT   3U

◆ EM32F967_PINMUX

#define EM32F967_PINMUX ( port,
pin,
mux )
Value:
(((((port) - 'A') & EM32F967_PORT_MASK) << EM32F967_PORT_SHIFT) | \
(((EM32F967_##mux) & EM32F967_MUX_MASK) << EM32F967_MUX_SHIFT))

EM32F967 Pin Multiplexing Macro (STM32-style).

Parameters
portPort identifier ('A' or 'B')
pinPin number (0-15)
muxMultiplexing function (GPIO, AF1-AF7)

◆ EM32F967_PORT_MASK

#define EM32F967_PORT_MASK   0x1U

◆ EM32F967_PORT_SHIFT

#define EM32F967_PORT_SHIFT   7U

◆ EM32F967_PULL_DOWN_3V

#define EM32F967_PULL_DOWN_3V   3 /* 11: PD (15KΩ@3.3V, 25.2KΩ@1.8V) */

◆ EM32F967_PULL_DOWN_5V

#define EM32F967_PULL_DOWN_5V   3 /* 11: PD (15KΩ@5V, 21.8KΩ@3.3V, 49.6KΩ@1.8V) */

◆ EM32F967_PULL_NONE_3V

#define EM32F967_PULL_NONE_3V   0 /* 00: Floating */

◆ EM32F967_PULL_NONE_5V

#define EM32F967_PULL_NONE_5V   0 /* 00: Floating */

◆ EM32F967_PULL_UP0_3V

#define EM32F967_PULL_UP0_3V   1 /* 01: PU0 (66KΩ@3.3V, 140KΩ@1.8V) */

◆ EM32F967_PULL_UP0_5V

#define EM32F967_PULL_UP0_5V   1 /* 01: PU0 (66KΩ@5V, 101KΩ@3.3V, 238KΩ@1.8V) */

◆ EM32F967_PULL_UP1_3V

#define EM32F967_PULL_UP1_3V   2 /* 10: PU1 (4.7KΩ@3.3V, 8.53KΩ@1.8V) */

◆ EM32F967_PULL_UP1_5V

#define EM32F967_PULL_UP1_5V   2 /* 10: PU1 (4.7KΩ@5V, 6.41KΩ@3.3V, 12.7KΩ@1.8V) */