]>
Commit | Line | Data |
---|---|---|
c75c9fda GJ |
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_ */ |