3 // TODO - GPIO_TypeDef include
4 #include "drivers/io.h"
7 typedef struct ioDef_s
{
12 typedef struct ioRec_s
{
15 resourceOwner_e owner
;
16 resourceType_e resource
;
19 gpio_type
* IO_GPIO(IO_t io
);
21 typedef struct ioRec_s
{
24 resourceOwner_e owner
;
25 resourceType_e resource
;
28 GPIO_TypeDef
* IO_GPIO(IO_t io
);
32 extern ioRec_t ioRecs
[DEFIO_IO_USED_COUNT
];
34 int IO_GPIOPortIdx(IO_t io
);
35 int IO_GPIOPinIdx(IO_t io
);
37 int IO_GPIO_PinSource(IO_t io
);
38 int IO_GPIO_PortSource(IO_t io
);
40 #if defined(STM32F4) || defined(AT32F43x)
41 int IO_EXTI_PortSourceGPIO(IO_t io
);
42 int IO_EXTI_PinSource(IO_t io
);
46 uint16_t IO_Pin(IO_t io
);
48 #define IO_GPIOBYTAG(tag) IO_GPIO(IOGetByTag(tag))
49 #define IO_PINBYTAG(tag) IO_Pin(IOGetByTag(tag))
51 uint32_t IO_EXTI_Line(IO_t io
);
52 ioRec_t
*IO_Rec(IO_t io
);