.. | .. |
---|
8 | 8 | |
---|
9 | 9 | #include <linux/types.h> |
---|
10 | 10 | |
---|
| 11 | +/* rkep device mode status definition */ |
---|
| 12 | +#define RKEP_MODE_BOOTROM 1 |
---|
| 13 | +#define RKEP_MODE_LOADER 2 |
---|
| 14 | +#define RKEP_MODE_KERNEL 3 |
---|
| 15 | +#define RKEP_MODE_FUN0 4 |
---|
| 16 | +/* Common status */ |
---|
| 17 | +#define RKEP_SMODE_INIT 0 |
---|
| 18 | +#define RKEP_SMODE_LNKRDY 1 |
---|
| 19 | +#define RKEP_SMODE_LNKUP 2 |
---|
| 20 | +#define RKEP_SMODE_ERR 0xff |
---|
| 21 | +/* Firmware download status */ |
---|
| 22 | +#define RKEP_SMODE_FWDLRDY 0x10 |
---|
| 23 | +#define RKEP_SMODE_FWDLDONE 0x11 |
---|
| 24 | +/* Application status*/ |
---|
| 25 | +#define RKEP_SMODE_APPRDY 0x20 |
---|
| 26 | + |
---|
| 27 | +/* |
---|
| 28 | + * rockchip pcie driver elbi ioctrl output data |
---|
| 29 | + */ |
---|
11 | 30 | struct pcie_ep_user_data { |
---|
| 31 | + __u64 bar0_phys_addr; |
---|
12 | 32 | __u32 elbi_app_user[11]; |
---|
13 | 33 | }; |
---|
14 | 34 | |
---|
| 35 | +/* |
---|
| 36 | + * rockchip driver cache ioctrl input param |
---|
| 37 | + */ |
---|
15 | 38 | struct pcie_ep_dma_cache_cfg { |
---|
16 | 39 | __u64 addr; |
---|
17 | 40 | __u32 size; |
---|
| 41 | +}; |
---|
| 42 | + |
---|
| 43 | +#define PCIE_EP_OBJ_INFO_MAGIC 0x524B4550 |
---|
| 44 | + |
---|
| 45 | +enum pcie_ep_obj_irq_type { |
---|
| 46 | + OBJ_IRQ_UNKNOWN, |
---|
| 47 | + OBJ_IRQ_DMA, |
---|
| 48 | + OBJ_IRQ_USER, |
---|
| 49 | + OBJ_IRQ_ELBI, |
---|
| 50 | +}; |
---|
| 51 | + |
---|
| 52 | +struct pcie_ep_obj_irq_dma_status { |
---|
| 53 | + __u32 wr; |
---|
| 54 | + __u32 rd; |
---|
| 55 | +}; |
---|
| 56 | + |
---|
| 57 | +enum pcie_ep_mmap_resource { |
---|
| 58 | + PCIE_EP_MMAP_RESOURCE_DBI, |
---|
| 59 | + PCIE_EP_MMAP_RESOURCE_BAR0, |
---|
| 60 | + PCIE_EP_MMAP_RESOURCE_BAR2, |
---|
| 61 | + PCIE_EP_MMAP_RESOURCE_BAR4, |
---|
| 62 | + PCIE_EP_MMAP_RESOURCE_MAX, |
---|
| 63 | +}; |
---|
| 64 | + |
---|
| 65 | +/* |
---|
| 66 | + * rockchip ep device information which is store in BAR0 |
---|
| 67 | + */ |
---|
| 68 | +struct pcie_ep_obj_info { |
---|
| 69 | + __u32 magic; |
---|
| 70 | + __u32 version; |
---|
| 71 | + struct { |
---|
| 72 | + __u16 mode; |
---|
| 73 | + __u16 submode; |
---|
| 74 | + } devmode; |
---|
| 75 | + __u8 reserved[0x1F4]; |
---|
| 76 | + |
---|
| 77 | + __u32 irq_type_rc; /* Generate in ep isr, valid only for rc, clear in rc */ |
---|
| 78 | + struct pcie_ep_obj_irq_dma_status dma_status_rc; /* Generate in ep isr, valid only for rc, clear in rc */ |
---|
| 79 | + __u32 irq_type_ep; /* Generate in ep isr, valid only for ep, clear in ep */ |
---|
| 80 | + struct pcie_ep_obj_irq_dma_status dma_status_ep; /* Generate in ep isr, valid only for ep, clear in ep */ |
---|
| 81 | + __u32 obj_irq_user_data; /* OBJ_IRQ_USER userspace data */ |
---|
18 | 82 | }; |
---|
19 | 83 | |
---|
20 | 84 | #define PCIE_BASE 'P' |
---|
.. | .. |
---|
22 | 86 | #define PCIE_DMA_CACHE_INVALIDE _IOW(PCIE_BASE, 1, struct pcie_ep_dma_cache_cfg) |
---|
23 | 87 | #define PCIE_DMA_CACHE_FLUSH _IOW(PCIE_BASE, 2, struct pcie_ep_dma_cache_cfg) |
---|
24 | 88 | #define PCIE_DMA_IRQ_MASK_ALL _IOW(PCIE_BASE, 3, int) |
---|
| 89 | +#define PCIE_DMA_RAISE_MSI_OBJ_IRQ_USER _IOW(PCIE_BASE, 4, int) |
---|
| 90 | +#define PCIE_EP_GET_USER_INFO _IOR(PCIE_BASE, 5, struct pcie_ep_user_data) |
---|
| 91 | +#define PCIE_EP_SET_MMAP_RESOURCE _IOW(PCIE_BASE, 6, enum pcie_ep_mmap_resource) |
---|
25 | 92 | |
---|
26 | 93 | #endif |
---|