Microchip® Advanced Software Framework

pinmux.h File Reference

SAM Pin Multiplexer Driver.

Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.

#include <compiler.h>

Data Structures

struct  system_pinmux_config
 Port pin configuration structure. More...
 

Macros

#define FEATURE_SYSTEM_PINMUX_DRIVE_STRENGTH
 Output Driver Strength Selection feature support. More...
 
#define SYSTEM_PINMUX_GPIO   (1 << 7)
 Peripheral multiplexer index to select GPIO mode for a pin. More...
 

Enumerations

enum  system_pinmux_pin_dir {
  SYSTEM_PINMUX_PIN_DIR_INPUT,
  SYSTEM_PINMUX_PIN_DIR_OUTPUT,
  SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK
}
 Port pin direction configuration enum. More...
 
enum  system_pinmux_pin_pull {
  SYSTEM_PINMUX_PIN_PULL_NONE,
  SYSTEM_PINMUX_PIN_PULL_UP,
  SYSTEM_PINMUX_PIN_PULL_DOWN
}
 Port pin input pull configuration enum. More...
 
enum  system_pinmux_pin_sample {
  SYSTEM_PINMUX_PIN_SAMPLE_CONTINUOUS,
  SYSTEM_PINMUX_PIN_SAMPLE_ONDEMAND
}
 Port pin digital input sampling mode enum. More...
 
enum  system_pinmux_pin_strength {
  SYSTEM_PINMUX_PIN_STRENGTH_NORMAL,
  SYSTEM_PINMUX_PIN_STRENGTH_HIGH
}
 Port pin drive output strength enum. More...
 

Functions

void system_pinmux_group_set_output_strength (PortGroup *const port, const uint32_t mask, const enum system_pinmux_pin_strength mode)
 
static void system_pinmux_pin_set_output_strength (const uint8_t gpio_pin, const enum system_pinmux_pin_strength mode)
 Configures the output driver strength mode for a GPIO pin. More...
 
Configuration and Initialization
static void system_pinmux_get_config_defaults (struct system_pinmux_config *const config)
 Initializes a Port pin configuration structure to defaults. More...
 
void system_pinmux_pin_set_config (const uint8_t gpio_pin, const struct system_pinmux_config *const config)
 Writes a Port pin configuration to the hardware module. More...
 
void system_pinmux_group_set_config (PortGroup *const port, const uint32_t mask, const struct system_pinmux_config *const config)
 Writes a Port pin group configuration to the hardware module. More...
 
Special Mode Configuration (Physical Group Orientated)
static PortGroup * system_pinmux_get_group_from_gpio_pin (const uint8_t gpio_pin)
 Retrieves the PORT module group instance from a given GPIO pin number. More...
 
void system_pinmux_group_set_input_sample_mode (PortGroup *const port, const uint32_t mask, const enum system_pinmux_pin_sample mode)
 Configures the input sampling mode for a group of pins. More...
 
Special Mode Configuration (Logical Pin Orientated)
static uint8_t system_pinmux_pin_get_mux_position (const uint8_t gpio_pin)
 Retrieves the currently selected MUX position of a logical pin. More...
 
static void system_pinmux_pin_set_input_sample_mode (const uint8_t gpio_pin, const enum system_pinmux_pin_sample mode)
 Configures the input sampling mode for a GPIO pin. More...