1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #ifndef DEVICE_IOKEY_H
- #define DEVICE_IOKEY_H
- #include "typedef.h"
- #include "device/device.h"
- // enum key_connect_way {
- // ONE_PORT_TO_LOW, //按键一个端口接低电平, 另一个端口接IO
- // ONE_PORT_TO_HIGH, //按键一个端口接高电平, 另一个端口接IO
- // DOUBLE_PORT_TO_IO, //按键两个端口接IO
- // };
- #define ONE_PORT_TO_LOW 0 //按键一个端口接低电平, 另一个端口接IO
- #define ONE_PORT_TO_HIGH 1 //按键一个端口接高电平, 另一个端口接IO
- #define DOUBLE_PORT_TO_IO 2 //按键两个端口接IO
- #define CUST_DOUBLE_PORT_TO_IO 3
- struct one_io_key {
- u8 port;
- };
- struct two_io_key {
- u8 in_port;
- u8 out_port;
- };
- union key_type {
- struct one_io_key one_io;
- struct two_io_key two_io;
- };
- struct iokey_port {
- union key_type key_type;
- u8 connect_way;
- u8 key_value;
- };
- struct iokey_platform_data {
- u8 enable;
- u8 num;
- const struct iokey_port *port;
- };
- //IOKEY API:
- extern int iokey_init(const struct iokey_platform_data *iokey_data);
- extern u8 io_get_key_value(void);
- #endif
|