mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 09:16:33 +00:00
47 lines
1.3 KiB
C
47 lines
1.3 KiB
C
|
/* 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_ */
|