1 | /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ |
2 | /* |
3 | * PRUSS Remote Processor specific types |
4 | * |
5 | * Copyright (C) 2014-2020 Texas Instruments Incorporated - https://www.ti.com/ |
6 | * Suman Anna <s-anna@ti.com> |
7 | */ |
8 | |
9 | #ifndef _PRU_RPROC_H_ |
10 | #define _PRU_RPROC_H_ |
11 | |
12 | /** |
13 | * struct pruss_int_map - PRU system events _to_ channel and host mapping |
14 | * @event: number of the system event |
15 | * @chnl: channel number assigned to a given @event |
16 | * @host: host number assigned to a given @chnl |
17 | * |
18 | * PRU system events are mapped to channels, and these channels are mapped |
19 | * to host interrupts. Events can be mapped to channels in a one-to-one or |
20 | * many-to-one ratio (multiple events per channel), and channels can be |
21 | * mapped to host interrupts in a one-to-one or many-to-one ratio (multiple |
22 | * channels per interrupt). |
23 | */ |
24 | struct pruss_int_map { |
25 | u8 event; |
26 | u8 chnl; |
27 | u8 host; |
28 | }; |
29 | |
30 | /** |
31 | * struct pru_irq_rsc - PRU firmware section header for IRQ data |
32 | * @type: resource type |
33 | * @num_evts: number of described events |
34 | * @pru_intc_map: PRU interrupt routing description |
35 | * |
36 | * The PRU firmware blob can contain optional .pru_irq_map ELF section, which |
37 | * provides the PRUSS interrupt mapping description. The pru_irq_rsc struct |
38 | * describes resource entry format. |
39 | */ |
40 | struct pru_irq_rsc { |
41 | u8 type; |
42 | u8 num_evts; |
43 | struct pruss_int_map pru_intc_map[]; |
44 | } __packed; |
45 | |
46 | #endif /* _PRU_RPROC_H_ */ |
47 | |