Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
0002 /*
0003  * PRUSS Remote Processor specific types
0004  *
0005  * Copyright (C) 2014-2020 Texas Instruments Incorporated - https://www.ti.com/
0006  *  Suman Anna <s-anna@ti.com>
0007  */
0008 
0009 #ifndef _PRU_RPROC_H_
0010 #define _PRU_RPROC_H_
0011 
0012 /**
0013  * struct pruss_int_map - PRU system events _to_ channel and host mapping
0014  * @event: number of the system event
0015  * @chnl: channel number assigned to a given @event
0016  * @host: host number assigned to a given @chnl
0017  *
0018  * PRU system events are mapped to channels, and these channels are mapped
0019  * to host interrupts. Events can be mapped to channels in a one-to-one or
0020  * many-to-one ratio (multiple events per channel), and channels can be
0021  * mapped to host interrupts in a one-to-one or many-to-one ratio (multiple
0022  * channels per interrupt).
0023  */
0024 struct pruss_int_map {
0025     u8 event;
0026     u8 chnl;
0027     u8 host;
0028 };
0029 
0030 /**
0031  * struct pru_irq_rsc - PRU firmware section header for IRQ data
0032  * @type: resource type
0033  * @num_evts: number of described events
0034  * @pru_intc_map: PRU interrupt routing description
0035  *
0036  * The PRU firmware blob can contain optional .pru_irq_map ELF section, which
0037  * provides the PRUSS interrupt mapping description. The pru_irq_rsc struct
0038  * describes resource entry format.
0039  */
0040 struct pru_irq_rsc {
0041     u8 type;
0042     u8 num_evts;
0043     struct pruss_int_map pru_intc_map[];
0044 } __packed;
0045 
0046 #endif  /* _PRU_RPROC_H_ */