Skip to content
bootloader_gpio.h 3.8 KiB
Newer Older
f4grx's avatar
f4grx committed
#ifndef BOOTLOADER_GPIO
#define BOOTLOADER_GPIO

/* format for flags
	offset size name
	0      4    LINE (0-15)
	4      4    PORT (0-10)
	8      4    ALT (0-15)
    12     2    MODER (0-3)
	14     2	PUPDR (0-2)
	16     2    OSPEEDR (0-3)
	18     1    OTYPER (0-1)
    19     1    INITSTATE (0-1)
*/

f4grx's avatar
f4grx committed
#define	GPIO_PIN_SHIFT   0
#define GPIO_PIN_MASK    (15 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_0       ( 0 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_1       ( 1 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_2       ( 2 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_3       ( 3 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_4       ( 4 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_5       ( 5 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_6       ( 6 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_7       ( 7 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_8       ( 8 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_9       ( 9 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_10      (10 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_11      (11 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_12      (12 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_13      (13 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_14      (14 << GPIO_PIN_SHIFT)
#define	GPIO_PIN_15      (15 << GPIO_PIN_SHIFT)
f4grx's avatar
f4grx committed
#define GPIO_PORT_SHIFT  4
#define GPIO_PORT_MASK   (15 << GPIO_PORT_SHIFT)
#define GPIO_PORT_A      ( 0 << GPIO_PORT_SHIFT)
#define GPIO_PORT_B      ( 1 << GPIO_PORT_SHIFT)
#define GPIO_PORT_C      ( 2 << GPIO_PORT_SHIFT)
#define GPIO_PORT_D      ( 3 << GPIO_PORT_SHIFT)
#define GPIO_PORT_E      ( 4 << GPIO_PORT_SHIFT)
#define GPIO_PORT_F      ( 5 << GPIO_PORT_SHIFT)
#define GPIO_PORT_G      ( 6 << GPIO_PORT_SHIFT)
#define GPIO_PORT_H      ( 7 << GPIO_PORT_SHIFT)
#define GPIO_PORT_I      ( 8 << GPIO_PORT_SHIFT)
#define GPIO_PORT_J      ( 9 << GPIO_PORT_SHIFT)
#define GPIO_PORT_K      (10 << GPIO_PORT_SHIFT)
f4grx's avatar
f4grx committed
#define	GPIO_ALT_SHIFT   8
#define GPIO_ALT_MASK    (15 << GPIO_ALT_SHIFT)
#define GPIO_ALT_0       ( 0 << GPIO_ALT_SHIFT)
#define GPIO_ALT_1       ( 1 << GPIO_ALT_SHIFT)
#define GPIO_ALT_2       ( 2 << GPIO_ALT_SHIFT)
#define GPIO_ALT_3       ( 3 << GPIO_ALT_SHIFT)
#define GPIO_ALT_4       ( 4 << GPIO_ALT_SHIFT)
#define GPIO_ALT_5       ( 5 << GPIO_ALT_SHIFT)
#define GPIO_ALT_6       ( 6 << GPIO_ALT_SHIFT)
#define GPIO_ALT_7       ( 7 << GPIO_ALT_SHIFT)
#define GPIO_ALT_8       ( 8 << GPIO_ALT_SHIFT)
#define GPIO_ALT_9       ( 9 << GPIO_ALT_SHIFT)
#define GPIO_ALT_10      (10 << GPIO_ALT_SHIFT)
#define GPIO_ALT_11      (11 << GPIO_ALT_SHIFT)
#define GPIO_ALT_12      (12 << GPIO_ALT_SHIFT)
#define GPIO_ALT_13      (13 << GPIO_ALT_SHIFT)
#define GPIO_ALT_14      (14 << GPIO_ALT_SHIFT)
#define GPIO_ALT_15      (15 << GPIO_ALT_SHIFT)
f4grx's avatar
f4grx committed
#define GPIO_MODE_SHIFT  12
#define GPIO_MODE_MASK   ( 3 << GPIO_MODE_SHIFT)
#define GPIO_MODE_IN     ( 0 << GPIO_MODE_SHIFT)
#define GPIO_MODE_OUT    ( 1 << GPIO_MODE_SHIFT)
#define GPIO_MODE_ALT    ( 2 << GPIO_MODE_SHIFT)
#define GPIO_MODE_ANALOG ( 3 << GPIO_MODE_SHIFT)
f4grx's avatar
f4grx committed
#define	GPIO_PULL_SHIFT  14
#define GPIO_PULL_MASK   ( 3 << GPIO_PULL_SHIFT)
#define GPIO_PULL_NONE   ( 0 << GPIO_PULL_SHIFT)
#define GPIO_PULL_UP     ( 1 << GPIO_PULL_SHIFT)
#define GPIO_PULL_DOWN   ( 2 << GPIO_PULL_SHIFT)
f4grx's avatar
f4grx committed
#define	GPIO_SPD_SHIFT   16
#define GPIO_SPD_MASK    ( 3 << GPIO_SPD_SHIFT)
#define GPIO_SPD_LOW     ( 0 << GPIO_SPD_SHIFT)
#define GPIO_SPD_MED     ( 1 << GPIO_SPD_SHIFT)
#define GPIO_SPD_FAST    ( 2 << GPIO_SPD_SHIFT)
#define GPIO_SPD_HIGH    ( 3 << GPIO_SPD_SHIFT)
f4grx's avatar
f4grx committed
#define	GPIO_TYPE_SHIFT  18
#define GPIO_TYPE_MASK   ( 1 << GPIO_TYPE_SHIFT)
#define GPIO_TYPE_PP     ( 0 << GPIO_TYPE_SHIFT)
#define GPIO_TYPE_OD     ( 1 << GPIO_TYPE_SHIFT)
f4grx's avatar
f4grx committed
#define	GPIO_INIT_SHIFT  19
#define GPIO_INIT_MASK   ( 1 << GPIO_INIT_SHIFT)
#define GPIO_INIT_CLR    ( 0 << GPIO_INIT_SHIFT)
#define GPIO_INIT_SET    ( 1 << GPIO_INIT_SHIFT)
f4grx's avatar
f4grx committed
void bootloader_gpio_init(uint32_t gpio);
f4grx's avatar
f4grx committed
void bootloader_gpio_write(uint32_t gpio, int state);
int  bootloader_gpio_read(uint32_t gpio);

#endif /* BOOTLOADER_GPIO */