| /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ |
| /* |
| * PRUSS Remote Processor specific types |
| * |
| * Copyright (C) 2014-2020 Texas Instruments Incorporated - https://www.ti.com/ |
| * Suman Anna <s-anna@ti.com> |
| */ |
| |
| #ifndef _PRU_RPROC_H_ |
| #define _PRU_RPROC_H_ |
| |
| /** |
| * struct pruss_int_map - PRU system events _to_ channel and host mapping |
| * @event: number of the system event |
| * @chnl: channel number assigned to a given @event |
| * @host: host number assigned to a given @chnl |
| * |
| * PRU system events are mapped to channels, and these channels are mapped |
| * to host interrupts. Events can be mapped to channels in a one-to-one or |
| * many-to-one ratio (multiple events per channel), and channels can be |
| * mapped to host interrupts in a one-to-one or many-to-one ratio (multiple |
| * channels per interrupt). |
| */ |
| struct pruss_int_map { |
| u8 event; |
| u8 chnl; |
| u8 host; |
| }; |
| |
| /** |
| * struct pru_irq_rsc - PRU firmware section header for IRQ data |
| * @type: resource type |
| * @num_evts: number of described events |
| * @pru_intc_map: PRU interrupt routing description |
| * |
| * The PRU firmware blob can contain optional .pru_irq_map ELF section, which |
| * provides the PRUSS interrupt mapping description. The pru_irq_rsc struct |
| * describes resource entry format. |
| */ |
| struct pru_irq_rsc { |
| u8 type; |
| u8 num_evts; |
| struct pruss_int_map pru_intc_map[]; |
| } __packed; |
| |
| #endif /* _PRU_RPROC_H_ */ |