xref: /openbmc/linux/drivers/dma/ti/k3-psil-priv.h (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
18c6bb62fSPeter Ujfalusi /* SPDX-License-Identifier: GPL-2.0 */
28c6bb62fSPeter Ujfalusi /*
38c6bb62fSPeter Ujfalusi  *  Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com
48c6bb62fSPeter Ujfalusi  */
58c6bb62fSPeter Ujfalusi 
68c6bb62fSPeter Ujfalusi #ifndef K3_PSIL_PRIV_H_
78c6bb62fSPeter Ujfalusi #define K3_PSIL_PRIV_H_
88c6bb62fSPeter Ujfalusi 
98c6bb62fSPeter Ujfalusi #include <linux/dma/k3-psil.h>
108c6bb62fSPeter Ujfalusi 
118c6bb62fSPeter Ujfalusi struct psil_ep {
128c6bb62fSPeter Ujfalusi 	u32 thread_id;
138c6bb62fSPeter Ujfalusi 	struct psil_endpoint_config ep_config;
148c6bb62fSPeter Ujfalusi };
158c6bb62fSPeter Ujfalusi 
168c6bb62fSPeter Ujfalusi /**
178c6bb62fSPeter Ujfalusi  * struct psil_ep_map - PSI-L thread ID configuration maps
188c6bb62fSPeter Ujfalusi  * @name:	Name of the map, set it to the name of the SoC
198c6bb62fSPeter Ujfalusi  * @src:	Array of source PSI-L thread configurations
208c6bb62fSPeter Ujfalusi  * @src_count:	Number of entries in the src array
218c6bb62fSPeter Ujfalusi  * @dst:	Array of destination PSI-L thread configurations
228c6bb62fSPeter Ujfalusi  * @dst_count:	Number of entries in the dst array
238c6bb62fSPeter Ujfalusi  *
248c6bb62fSPeter Ujfalusi  * In case of symmetric configuration for a matching src/dst thread (for example
258c6bb62fSPeter Ujfalusi  * 0x4400 and 0xc400) only the src configuration can be present. If no dst
268c6bb62fSPeter Ujfalusi  * configuration found the code will look for (dst_thread_id & ~0x8000) to find
278c6bb62fSPeter Ujfalusi  * the symmetric match.
288c6bb62fSPeter Ujfalusi  */
298c6bb62fSPeter Ujfalusi struct psil_ep_map {
308c6bb62fSPeter Ujfalusi 	char *name;
318c6bb62fSPeter Ujfalusi 	struct psil_ep	*src;
328c6bb62fSPeter Ujfalusi 	int src_count;
338c6bb62fSPeter Ujfalusi 	struct psil_ep	*dst;
348c6bb62fSPeter Ujfalusi 	int dst_count;
358c6bb62fSPeter Ujfalusi };
368c6bb62fSPeter Ujfalusi 
378c6bb62fSPeter Ujfalusi struct psil_endpoint_config *psil_get_ep_config(u32 thread_id);
388c6bb62fSPeter Ujfalusi 
392bd8010aSPeter Ujfalusi /* SoC PSI-L endpoint maps */
402bd8010aSPeter Ujfalusi extern struct psil_ep_map am654_ep_map;
412bd8010aSPeter Ujfalusi extern struct psil_ep_map j721e_ep_map;
42e9ca48d9SPeter Ujfalusi extern struct psil_ep_map j7200_ep_map;
432329725dSPeter Ujfalusi extern struct psil_ep_map am64_ep_map;
4478b2f63cSAswath Govindraju extern struct psil_ep_map j721s2_ep_map;
455ac6bfb5SVignesh Raghavendra extern struct psil_ep_map am62_ep_map;
46aac6db7eSJai Luthra extern struct psil_ep_map am62a_ep_map;
47*82e6051aSApurva Nandan extern struct psil_ep_map j784s4_ep_map;
482bd8010aSPeter Ujfalusi 
498c6bb62fSPeter Ujfalusi #endif /* K3_PSIL_PRIV_H_ */
50