libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
IO MUX Controller register
Collaboration diagram for IO MUX Controller register:

Macros

#define IOMUXC(pad)   MMIO32(IOMUXC_BASE + (0x4 * (pad)))
 
#define IOMUXC_PAD(mode, speed, dse, pus, flags)
 
#define IOMUXC_MUX_MODE_SHIFT   20
 
#define IOMUXC_MUX_MODE_MASK   (0x7 << 20)
 
#define IOMUXC_MUX_MODE_ALT0   0x0
 
#define IOMUXC_MUX_MODE_ALT1   0x1
 
#define IOMUXC_MUX_MODE_ALT2   0x2
 
#define IOMUXC_MUX_MODE_ALT3   0x3
 
#define IOMUXC_MUX_MODE_ALT4   0x4
 
#define IOMUXC_MUX_MODE_ALT5   0x5
 
#define IOMUXC_MUX_MODE_ALT6   0x6
 
#define IOMUXC_MUX_MODE_ALT7   0x7
 
#define IOMUXC_SPEED_SHIFT   12
 
#define IOMUXC_SPEED_MASK   (0x3 << 12)
 
#define IOMUXC_SPEED_LOW   0x0
 
#define IOMUXC_SPEED_MEDIUM   0x1
 
#define IOMUXC_SPEED_HIGH   0x3
 
#define IOMUXC_SRE   (0x1 << 11)
 
#define IOMUXC_ODE   (0x1 << 10)
 
#define IOMUXC_HYS   (0x1 << 9)
 
#define IOMUXC_DSE_SHIFT   6
 
#define IOMUXC_DSE_MASK   (0x7 << 6)
 
#define IOMUXC_DSE_OFF   0x0
 
#define IOMUXC_DSE_150OHM   0x1
 
#define IOMUXC_DSE_75OHM   0x2
 
#define IOMUXC_DSE_50OHM   0x3
 
#define IOMUXC_DSE_37OHM   0x4
 
#define IOMUXC_DSE_30OHM   0x5
 
#define IOMUXC_DSE_25OHM   0x6
 
#define IOMUXC_DSE_20OHM   0x7
 
#define IOMUXC_PUS_SHIFT   4
 
#define IOMUXC_PUS_MASK   (0x3 << 4)
 
#define IOMUXC_PUS_PD_100KOHM   0x0
 
#define IOMUXC_PUS_PU_47KOHM   0x1
 
#define IOMUXC_PUS_PU_100KOHM   0x2
 
#define IOMUXC_PUS_PU_22KOHM   0x3
 
#define IOMUXC_PKE   (0x1 << 3)
 
#define IOMUXC_PUE   (0x1 << 2)
 
#define IOMUXC_OBE   (0x1 << 1)
 
#define IOMUXC_IBE   (0x1 << 0)
 

Enumerations

enum  vf6xx_pad {
  PTA6 , PTA8 , PTA9 , PTA10 ,
  PTA11 , PTA12 , PTA16 , PTA17 ,
  PTA18 , PTA19 , PTA20 , PTA21 ,
  PTA22 , PTA23 , PTA24 , PTA25 ,
  PTA26 , PTA27 , PTA28 , PTA29 ,
  PTA30 , PTA31 , PTB0 , PTB1 ,
  PTB2 , PTB3 , PTB4 , PTB5 ,
  PTB6 , PTB7 , PTB8 , PTB9 ,
  PTB10 , PTB11 , PTB12 , PTB13 ,
  PTB14 , PTB15 , PTB16 , PTB17 ,
  PTB18 , PTB19 , PTB20 , PTB21 ,
  PTB22 , PTC0 , PTC1 , PTC2 ,
  PTC3 , PTC4 , PTC5 , PTC6 ,
  PTC7 , PTC8 , PTC9 , PTC10 ,
  PTC11 , PTC12 , PTC13 , PTC14 ,
  PTC15 , PTC16 , PTC17 , PTD31 ,
  PTD30 , PTD29 , PTD28 , PTD27 ,
  PTD26 , PTD25 , PTD24 , PTD23 ,
  PTD22 , PTD21 , PTD20 , PTD19 ,
  PTD18 , PTD17 , PTD16 , PTD0 ,
  PTD1 , PTD2 , PTD3 , PTD4 ,
  PTD5 , PTD6 , PTD7 , PTD8 ,
  PTD9 , PTD10 , PTD11 , PTD12 ,
  PTD13 , PTB23 , PTB24 , PTB25 ,
  PTB26 , PTB27 , PTB28 , PTC26 ,
  PTC27 , PTC28 , PTC29 , PTC30 ,
  PTC31 , PTE0 , PTE1 , PTE2 ,
  PTE3 , PTE4 , PTE5 , PTE6 ,
  PTE7 , PTE8 , PTE9 , PTE10 ,
  PTE11 , PTE12 , PTE13 , PTE14 ,
  PTE15 , PTE16 , PTE17 , PTE18 ,
  PTE19 , PTE20 , PTE21 , PTE22 ,
  PTE23 , PTE24 , PTE25 , PTE26 ,
  PTE27 , PTE28 , PTA7
}
 IO-MUX Pads. More...
 

Functions

void iomuxc_mux (enum vf6xx_pad pad, uint32_t muxc)
 Set GPIO. More...
 

Detailed Description

Macro Definition Documentation

◆ IOMUXC

#define IOMUXC (   pad)    MMIO32(IOMUXC_BASE + (0x4 * (pad)))

Definition at line 48 of file iomuxc.h.

◆ IOMUXC_DSE_150OHM

#define IOMUXC_DSE_150OHM   0x1

Definition at line 81 of file iomuxc.h.

◆ IOMUXC_DSE_20OHM

#define IOMUXC_DSE_20OHM   0x7

Definition at line 87 of file iomuxc.h.

◆ IOMUXC_DSE_25OHM

#define IOMUXC_DSE_25OHM   0x6

Definition at line 86 of file iomuxc.h.

◆ IOMUXC_DSE_30OHM

#define IOMUXC_DSE_30OHM   0x5

Definition at line 85 of file iomuxc.h.

◆ IOMUXC_DSE_37OHM

#define IOMUXC_DSE_37OHM   0x4

Definition at line 84 of file iomuxc.h.

◆ IOMUXC_DSE_50OHM

#define IOMUXC_DSE_50OHM   0x3

Definition at line 83 of file iomuxc.h.

◆ IOMUXC_DSE_75OHM

#define IOMUXC_DSE_75OHM   0x2

Definition at line 82 of file iomuxc.h.

◆ IOMUXC_DSE_MASK

#define IOMUXC_DSE_MASK   (0x7 << 6)

Definition at line 79 of file iomuxc.h.

◆ IOMUXC_DSE_OFF

#define IOMUXC_DSE_OFF   0x0

Definition at line 80 of file iomuxc.h.

◆ IOMUXC_DSE_SHIFT

#define IOMUXC_DSE_SHIFT   6

Definition at line 78 of file iomuxc.h.

◆ IOMUXC_HYS

#define IOMUXC_HYS   (0x1 << 9)

Definition at line 77 of file iomuxc.h.

◆ IOMUXC_IBE

#define IOMUXC_IBE   (0x1 << 0)

Definition at line 97 of file iomuxc.h.

◆ IOMUXC_MUX_MODE_ALT0

#define IOMUXC_MUX_MODE_ALT0   0x0

Definition at line 62 of file iomuxc.h.

◆ IOMUXC_MUX_MODE_ALT1

#define IOMUXC_MUX_MODE_ALT1   0x1

Definition at line 63 of file iomuxc.h.

◆ IOMUXC_MUX_MODE_ALT2

#define IOMUXC_MUX_MODE_ALT2   0x2

Definition at line 64 of file iomuxc.h.

◆ IOMUXC_MUX_MODE_ALT3

#define IOMUXC_MUX_MODE_ALT3   0x3

Definition at line 65 of file iomuxc.h.

◆ IOMUXC_MUX_MODE_ALT4

#define IOMUXC_MUX_MODE_ALT4   0x4

Definition at line 66 of file iomuxc.h.

◆ IOMUXC_MUX_MODE_ALT5

#define IOMUXC_MUX_MODE_ALT5   0x5

Definition at line 67 of file iomuxc.h.

◆ IOMUXC_MUX_MODE_ALT6

#define IOMUXC_MUX_MODE_ALT6   0x6

Definition at line 68 of file iomuxc.h.

◆ IOMUXC_MUX_MODE_ALT7

#define IOMUXC_MUX_MODE_ALT7   0x7

Definition at line 69 of file iomuxc.h.

◆ IOMUXC_MUX_MODE_MASK

#define IOMUXC_MUX_MODE_MASK   (0x7 << 20)

Definition at line 61 of file iomuxc.h.

◆ IOMUXC_MUX_MODE_SHIFT

#define IOMUXC_MUX_MODE_SHIFT   20

Definition at line 60 of file iomuxc.h.

◆ IOMUXC_OBE

#define IOMUXC_OBE   (0x1 << 1)

Definition at line 96 of file iomuxc.h.

◆ IOMUXC_ODE

#define IOMUXC_ODE   (0x1 << 10)

Definition at line 76 of file iomuxc.h.

◆ IOMUXC_PAD

#define IOMUXC_PAD (   mode,
  speed,
  dse,
  pus,
  flags 
)
Value:
((IOMUXC_##mode) << IOMUXC_MUX_MODE_SHIFT | \
(IOMUXC_##speed) << IOMUXC_SPEED_SHIFT | \
(IOMUXC_##dse) << IOMUXC_DSE_SHIFT | \
(IOMUXC_##pus) << IOMUXC_PUS_SHIFT | \
(flags))
#define IOMUXC_SPEED_SHIFT
Definition: iomuxc.h:70
#define IOMUXC_DSE_SHIFT
Definition: iomuxc.h:78
#define IOMUXC_MUX_MODE_SHIFT
Definition: iomuxc.h:60
#define IOMUXC_PUS_SHIFT
Definition: iomuxc.h:88

Definition at line 50 of file iomuxc.h.

◆ IOMUXC_PKE

#define IOMUXC_PKE   (0x1 << 3)

Definition at line 94 of file iomuxc.h.

◆ IOMUXC_PUE

#define IOMUXC_PUE   (0x1 << 2)

Definition at line 95 of file iomuxc.h.

◆ IOMUXC_PUS_MASK

#define IOMUXC_PUS_MASK   (0x3 << 4)

Definition at line 89 of file iomuxc.h.

◆ IOMUXC_PUS_PD_100KOHM

#define IOMUXC_PUS_PD_100KOHM   0x0

Definition at line 90 of file iomuxc.h.

◆ IOMUXC_PUS_PU_100KOHM

#define IOMUXC_PUS_PU_100KOHM   0x2

Definition at line 92 of file iomuxc.h.

◆ IOMUXC_PUS_PU_22KOHM

#define IOMUXC_PUS_PU_22KOHM   0x3

Definition at line 93 of file iomuxc.h.

◆ IOMUXC_PUS_PU_47KOHM

#define IOMUXC_PUS_PU_47KOHM   0x1

Definition at line 91 of file iomuxc.h.

◆ IOMUXC_PUS_SHIFT

#define IOMUXC_PUS_SHIFT   4

Definition at line 88 of file iomuxc.h.

◆ IOMUXC_SPEED_HIGH

#define IOMUXC_SPEED_HIGH   0x3

Definition at line 74 of file iomuxc.h.

◆ IOMUXC_SPEED_LOW

#define IOMUXC_SPEED_LOW   0x0

Definition at line 72 of file iomuxc.h.

◆ IOMUXC_SPEED_MASK

#define IOMUXC_SPEED_MASK   (0x3 << 12)

Definition at line 71 of file iomuxc.h.

◆ IOMUXC_SPEED_MEDIUM

#define IOMUXC_SPEED_MEDIUM   0x1

Definition at line 73 of file iomuxc.h.

◆ IOMUXC_SPEED_SHIFT

#define IOMUXC_SPEED_SHIFT   12

Definition at line 70 of file iomuxc.h.

◆ IOMUXC_SRE

#define IOMUXC_SRE   (0x1 << 11)

Definition at line 75 of file iomuxc.h.

Enumeration Type Documentation

◆ vf6xx_pad

enum vf6xx_pad

IO-MUX Pads.

Pads available by the IO-MUX controller

Enumerator
PTA6 
PTA8 
PTA9 
PTA10 
PTA11 
PTA12 
PTA16 
PTA17 
PTA18 
PTA19 
PTA20 
PTA21 
PTA22 
PTA23 
PTA24 
PTA25 
PTA26 
PTA27 
PTA28 
PTA29 
PTA30 
PTA31 
PTB0 
PTB1 
PTB2 
PTB3 
PTB4 
PTB5 
PTB6 
PTB7 
PTB8 
PTB9 
PTB10 
PTB11 
PTB12 
PTB13 
PTB14 
PTB15 
PTB16 
PTB17 
PTB18 
PTB19 
PTB20 
PTB21 
PTB22 
PTC0 
PTC1 
PTC2 
PTC3 
PTC4 
PTC5 
PTC6 
PTC7 
PTC8 
PTC9 
PTC10 
PTC11 
PTC12 
PTC13 
PTC14 
PTC15 
PTC16 
PTC17 
PTD31 
PTD30 
PTD29 
PTD28 
PTD27 
PTD26 
PTD25 
PTD24 
PTD23 
PTD22 
PTD21 
PTD20 
PTD19 
PTD18 
PTD17 
PTD16 
PTD0 
PTD1 
PTD2 
PTD3 
PTD4 
PTD5 
PTD6 
PTD7 
PTD8 
PTD9 
PTD10 
PTD11 
PTD12 
PTD13 
PTB23 
PTB24 
PTB25 
PTB26 
PTB27 
PTB28 
PTC26 
PTC27 
PTC28 
PTC29 
PTC30 
PTC31 
PTE0 
PTE1 
PTE2 
PTE3 
PTE4 
PTE5 
PTE6 
PTE7 
PTE8 
PTE9 
PTE10 
PTE11 
PTE12 
PTE13 
PTE14 
PTE15 
PTE16 
PTE17 
PTE18 
PTE19 
PTE20 
PTE21 
PTE22 
PTE23 
PTE24 
PTE25 
PTE26 
PTE27 
PTE28 
PTA7 

Definition at line 107 of file iomuxc.h.

Function Documentation

◆ iomuxc_mux()

void iomuxc_mux ( enum vf6xx_pad  pad,
uint32_t  muxc 
)

Set GPIO.

Set GPIO by GPIO number according to MUX list

Parameters
[in]gpiounsigned 32 bit. GPIO number

Definition at line 51 of file iomuxc.c.

References IOMUXC.