123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #ifndef BF16_GPIODEVICE_H
- #define BF16_GPIODEVICE_H
- #include "bf16-device.h"
- #define GPIO_BUFFER_SIZE 64
- /* GPIO/CTRL function types */
- #define GPIO0_INDEX 0
- #define GPIO1_INDEX 1
- #define GPIO2_INDEX 2
- #define GPIO3_INDEX 3
- #define MAX_GPIO_INDEX 4
- #define GPIO_SIZE 0x2000
- #define GPIO0_START_ADDR 0x44E07000
- #define GPIO1_START_ADDR 0x4804C000
- #define GPIO2_START_ADDR 0x481AC000
- #define GPIO3_START_ADDR 0x481AE000
- #define GPIO_OE 0x134
- #define GPIO_SETDATAOUT 0x194
- #define GPIO_CLEARDATAOUT 0x190
- #define GPIO_DATAIN 0x138
- #define GPIO_DATAOUT 0x13C
- #define OE_REG_INDEX 0
- #define DATAOUT_REG_INDEX 1
- #define DATASET_REG_INDEX 2
- #define DATACLR_REG_INDEX 3
- #define DATAIN_REG_INDEX 4
- #define MAX_REGISTER_INDEX 5
- typedef struct {
- uint32_t gpioIndex;
- uint32_t regIndex;
- uint32_t data;
- } gpio_rq_t;
- typedef struct {
- uint32_t oe_reg0;
- uint32_t out_reg0;
- uint32_t in_reg0;
- uint32_t oe_reg1;
- uint32_t out_reg1;
- uint32_t in_reg1;
- uint32_t oe_reg2;
- uint32_t out_reg2;
- uint32_t in_reg2;
- uint32_t oe_reg3;
- uint32_t out_reg3;
- uint32_t in_reg3;
- } gpio_resp_t;
- extern char *gpio_device_name;
- int gpio_read_ctrl(gpio_rq_t* rq);
- int8_t gpio_write_ctrl(gpio_rq_t* rq);
- int8_t gpio_init(device_t* attr, char *device, uint16_t size);
- void gpio_release(device_t *attr);
- #endif /* BF16_GPIODEVICE_H */
|