24#define PORTA (PORT_BASE + 0)
25#define PORTB (PORT_BASE + 0x80)
41#define GPIO10 (1 << 10)
42#define GPIO11 (1 << 11)
43#define GPIO12 (1 << 12)
44#define GPIO13 (1 << 13)
45#define GPIO14 (1 << 14)
46#define GPIO15 (1 << 15)
47#define GPIO16 (1 << 16)
48#define GPIO17 (1 << 17)
49#define GPIO18 (1 << 18)
50#define GPIO19 (1 << 19)
51#define GPIO20 (1 << 20)
52#define GPIO21 (1 << 21)
53#define GPIO22 (1 << 22)
54#define GPIO23 (1 << 23)
55#define GPIO24 (1 << 24)
56#define GPIO25 (1 << 25)
57#define GPIO26 (1 << 26)
58#define GPIO27 (1 << 27)
59#define GPIO28 (1 << 28)
60#define GPIO29 (1 << 29)
61#define GPIO30 (1 << 30)
62#define GPIO31 (1 << 31)
63#define GPIO_ALL 0xffff
86#define PORT_DIR(port) MMIO32((port) + 0x0000)
89#define PORT_DIRCLR(port) MMIO32((port) + 0x0004)
92#define PORT_DIRSET(port) MMIO32((port) + 0x0008)
95#define PORT_DIRTGL(port) MMIO32((port) + 0x000c)
98#define PORT_OUT(port) MMIO32((port) + 0x0010)
101#define PORT_OUTCLR(port) MMIO32((port) + 0x0014)
104#define PORT_OUTSET(port) MMIO32((port) + 0x0018)
107#define PORT_OUTTGL(port) MMIO32((port) + 0x001c)
110#define PORT_IN(port) MMIO32((port) + 0x0020)
113#define PORT_CTRL(port) MMIO32((port) + 0x0024)
116#define PORT_WRCONFIG(port) MMIO32((port) + 0x0028)
119#define PORT_PMUX(port, n) MMIO8((port) + 0x0030 + (n))
122#define PORT_PINCFG(port, n) MMIO8((port) + 0x0040 + (n))
169#define PORT_WRCONFIG_HWSEL (1 << 31)
172#define PORT_WRCONFIG_WRPINCFG (1 << 30)
175#define PORT_WRCONFIG_WRPMUX (1 << 28)
178#define PORT_WRCONFIG_PMUX(mux) ((0xf & (mux)) << 24)
181#define PORT_WRCONFIG_DRVSTR (1 << 22)
184#define PORT_WRCONFIG_PULLEN (1 << 18)
187#define PORT_WRCONFIG_INEN (1 << 17)
190#define PORT_WRCONFIG_PMUXEN (1 << 16)
195#define PORT_WRCONFIG_PINMASK(pins) ((0xffff & (pins)) << 0)
201#define PORT_PMUX_PMUXO(mux) ((0xf & (mux)) << 4)
204#define PORT_PMUX_PMUXE(mux) ((0xf & (mux)) << 0)
211#define PORT_PINCFG_DRVSTR (1 << 6)
214#define PORT_PINCFG_PULLEN (1 << 2)
217#define PORT_PINCFG_INEN (1 << 1)
220#define PORT_PINCFG_PMUXEN (1 << 0)
226#define GPIO_MODE_INPUT 0x00
227#define GPIO_MODE_OUTPUT 0x01
228#define GPIO_MODE_INOUT 0x02
237#define GPIO_CNF_FLOAT 0x00
238#define GPIO_CNF_PULLDOWN 0x01
239#define GPIO_CNF_PULLUP 0x02
240#define GPIO_CNF_AF 0x03
245void gpio_mode_setup(uint32_t gpioport, uint8_t mode, uint8_t cnf, uint32_t gpios);
246void gpio_set_af(uint32_t gpioport, uint8_t af, uint32_t gpios);
247void gpio_set(uint32_t gpioport, uint32_t gpios);
248void gpio_clear(uint32_t gpioport, uint32_t gpios);
249uint32_t
gpio_get(uint32_t gpioport, uint32_t gpios);
250void gpio_toggle(uint32_t gpioport, uint32_t gpios);
uint32_t gpio_get(uint32_t gpioport, uint32_t gpios)
Read level of a group of Pins.
void gpio_set(uint32_t gpioport, uint32_t gpios)
Set a group of Pins.
void port_write(uint32_t port, uint32_t data)
Set level for all pins from a port.
void gpio_clear(uint32_t gpioport, uint32_t gpios)
Clear a group of Pins.
void gpio_toggle(uint32_t gpioport, uint32_t gpios)
Toggle level of a group of Pins.
void gpio_mode_setup(uint32_t gpioport, uint8_t mode, uint8_t cnf, uint32_t gpios)
Initialize GPIO pins.
uint32_t port_read(uint32_t port)
Read level for all pins from a port.
void gpio_set_af(uint32_t gpioport, uint8_t af, uint32_t gpios)
Alternate function GPIO pins.