#include <linux/bitfield.h>
#include <linux/module.h>
#include <linux/iopoll.h>
#include <linux/io-64-nonatomic-lo-hi.h>
#include <linux/fpga/fpga-mgr.h>
#define FME_PR_INTFC_ID_H 0xA8
#define FME_PR_INTFC_ID_L 0xB0
#define FME_PR_CTRL_PR_RST BIT_ULL(0)
#define FME_PR_CTRL_PR_RSTACK BIT_ULL(4)
#define FME_PR_CTRL_PR_RGN_ID GENMASK_ULL(9, 7)
#define FME_PR_CTRL_PR_START BIT_ULL(12)
#define FME_PR_CTRL_PR_COMPLETE BIT_ULL(13)
#define FME_PR_STS_PR_CREDIT GENMASK_ULL(8, 0)
#define FME_PR_STS_PR_STS BIT_ULL(16)
#define FME_PR_STS_PR_STS_IDLE 0
#define FME_PR_STS_PR_CTRLR_STS GENMASK_ULL(22, 20)
#define FME_PR_STS_PR_HOST_STS GENMASK_ULL(27, 24)
#define FME_PR_DATA_PR_DATA_RAW GENMASK_ULL(32, 0)
#define FME_PR_ERR_OPERATION_ERR BIT_ULL(0)
#define FME_PR_ERR_CRC_ERR BIT_ULL(1)
#define FME_PR_ERR_INCOMPATIBLE_BS BIT_ULL(2)
#define FME_PR_ERR_PROTOCOL_ERR BIT_ULL(3)