1#ifndef _H8300_GPIO_H 2#define _H8300_GPIO_H 3 4#define H8300_GPIO_P1 0 5#define H8300_GPIO_P2 1 6#define H8300_GPIO_P3 2 7#define H8300_GPIO_P4 3 8#define H8300_GPIO_P5 4 9#define H8300_GPIO_P6 5 10#define H8300_GPIO_P7 6 11#define H8300_GPIO_P8 7 12#define H8300_GPIO_P9 8 13#define H8300_GPIO_PA 9 14#define H8300_GPIO_PB 10 15#define H8300_GPIO_PC 11 16#define H8300_GPIO_PD 12 17#define H8300_GPIO_PE 13 18#define H8300_GPIO_PF 14 19#define H8300_GPIO_PG 15 20#define H8300_GPIO_PH 16 21 22#define H8300_GPIO_B7 0x80 23#define H8300_GPIO_B6 0x40 24#define H8300_GPIO_B5 0x20 25#define H8300_GPIO_B4 0x10 26#define H8300_GPIO_B3 0x08 27#define H8300_GPIO_B2 0x04 28#define H8300_GPIO_B1 0x02 29#define H8300_GPIO_B0 0x01 30 31#define H8300_GPIO_INPUT 0 32#define H8300_GPIO_OUTPUT 1 33 34#define H8300_GPIO_RESERVE(port, bits) \ 35 h8300_reserved_gpio(port, bits) 36 37#define H8300_GPIO_FREE(port, bits) \ 38 h8300_free_gpio(port, bits) 39 40#define H8300_GPIO_DDR(port, bit, dir) \ 41 h8300_set_gpio_dir(((port) << 8) | (bit), dir) 42 43#define H8300_GPIO_GETDIR(port, bit) \ 44 h8300_get_gpio_dir(((port) << 8) | (bit)) 45 46extern int h8300_reserved_gpio(int port, int bits); 47extern int h8300_free_gpio(int port, int bits); 48extern int h8300_set_gpio_dir(int port_bit, int dir); 49extern int h8300_get_gpio_dir(int port_bit); 50extern int h8300_init_gpio(void); 51 52#endif 53