blob: 8ee9c31716108f727dd4e2bee428380276889b6a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
/* 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_ */
|