/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright ( C ) 2019 Texas Instruments Incorporated - https : //www.ti.com
*/
#ifndef K3_PSIL_H_
#define K3_PSIL_H_
#include <linux/types.h>
#define K3_PSIL_DST_THREAD_ID_OFFSET 0 x8000
struct device;
/**
* enum udma_tp_level - Channel Throughput Levels
* @ UDMA_TP_NORMAL : Normal channel
* @ UDMA_TP_HIGH : High Throughput channel
* @ UDMA_TP_ULTRAHIGH : Ultra High Throughput channel
*/
enum udma_tp_level {
UDMA_TP_NORMAL = 0 ,
UDMA_TP_HIGH,
UDMA_TP_ULTRAHIGH,
UDMA_TP_LAST,
};
/**
* enum psil_endpoint_type - PSI - L Endpoint type
* @ PSIL_EP_NATIVE : Normal channel
* @ PSIL_EP_PDMA_XY : XY mode PDMA
* @ PSIL_EP_PDMA_MCAN : MCAN mode PDMA
* @ PSIL_EP_PDMA_AASRC : AASRC mode PDMA
*/
enum psil_endpoint_type {
PSIL_EP_NATIVE = 0 ,
PSIL_EP_PDMA_XY,
PSIL_EP_PDMA_MCAN,
PSIL_EP_PDMA_AASRC,
};
/**
* struct psil_endpoint_config - PSI - L Endpoint configuration
* @ ep_type : PSI - L endpoint type
* @ channel_tpl : Desired throughput level for the channel
* @ pkt_mode : If set , the channel must be in Packet mode , otherwise in
* TR mode
* @ notdpkt : TDCM must be suppressed on the TX channel
* @ needs_epib : Endpoint needs EPIB
* @ pdma_acc32 : ACC32 must be enabled on the PDMA side
* @ pdma_burst : BURST must be enabled on the PDMA side
* @ psd_size : If set , PSdata is used by the endpoint
* @ mapped_channel_id : PKTDMA thread to channel mapping for mapped channels .
* The thread must be serviced by the specified channel if
* mapped_channel_id is > = 0 in case of PKTDMA
* @ flow_start : PKDMA flow range start of mapped channel . Unmapped
* channels use flow_id = = chan_id
* @ flow_num : PKDMA flow count of mapped channel . Unmapped channels
* use flow_id = = chan_id
* @ default_flow_id : PKDMA default ( r ) flow index of mapped channel .
* Must be within the flow range of the mapped channel .
*/
struct psil_endpoint_config {
enum psil_endpoint_type ep_type;
enum udma_tp_level channel_tpl;
unsigned pkt_mode:1 ;
unsigned notdpkt:1 ;
unsigned needs_epib:1 ;
/* PDMA properties, valid for PSIL_EP_PDMA_* */
unsigned pdma_acc32:1 ;
unsigned pdma_burst:1 ;
u32 psd_size;
/* PKDMA mapped channel */
s16 mapped_channel_id;
/* PKTDMA tflow and rflow ranges for mapped channel */
u16 flow_start;
u16 flow_num;
s16 default_flow_id;
};
int psil_set_new_ep_config(struct device *dev, const char *name,
struct psil_endpoint_config *ep_config);
#endif /* K3_PSIL_H_ */
Messung V0.5 in Prozent C=95 H=96 G=95
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland