61 uint32_t resvd_0xa0[4];
66 #define GPIO_OFFSET (0x00200000) 71 int regnum = pin / 10;
72 int offset = (pin % 10) * 3;
73 uint8_t funcmap[] = { 4, 5, 6, 7, 3, 2 };
80 gpio->fsel[regnum] &= ~(0x7 << offset);
81 gpio->fsel[regnum] |= ((funcmap[
function]) << offset);
84 static inline void gpio_level_set(
volatile gpio_t *gpio, uint8_t pin, uint8_t level)
86 int regnum = pin >> 5;
87 int offset = (pin & 0x1f);
91 gpio->set[regnum] = (1 << offset);
95 gpio->clr[regnum] = (1 << offset);
99 static inline void gpio_output_set(
volatile gpio_t *gpio, uint8_t pin, uint8_t output)
101 int regnum = pin / 10;
102 int offset = (pin % 10) * 3;
103 uint8_t
function = output ? 1 : 0;
105 gpio->fsel[regnum] &= ~(0x7 << offset);
106 gpio->fsel[regnum] |= ((
function & 0x7) << offset);
static void gpio_output_set(volatile gpio_t *gpio, uint8_t pin, uint8_t output)
static void gpio_level_set(volatile gpio_t *gpio, uint8_t pin, uint8_t level)
static void gpio_function_set(volatile gpio_t *gpio, uint8_t pin, uint8_t function)