mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-20 08:58:52 +09:00
![Vignesh Raghavendra](/assets/img/avatar_default.png)
Much of PSIL endpoint configuration for a given SoC can be known at compile time, therefore pass them for platform specific data instead of DT. Add per SoC's specific PSIL endpoint data. This is to bring driver in sync with upstream DT. Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
43 lines
1.0 KiB
C
43 lines
1.0 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com
|
|
* Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
|
|
*/
|
|
|
|
#include <linux/kernel.h>
|
|
#include <linux/err.h>
|
|
|
|
#include "k3-psil-priv.h"
|
|
|
|
static const struct psil_ep_map *soc_ep_map;
|
|
|
|
struct psil_endpoint_config *psil_get_ep_config(u32 thread_id)
|
|
{
|
|
int i;
|
|
|
|
if (!soc_ep_map) {
|
|
if (IS_ENABLED(CONFIG_SOC_K3_AM6))
|
|
soc_ep_map = &am654_ep_map;
|
|
else if (IS_ENABLED(CONFIG_SOC_K3_J721E))
|
|
soc_ep_map = &j721e_ep_map;
|
|
}
|
|
|
|
if (thread_id & K3_PSIL_DST_THREAD_ID_OFFSET && soc_ep_map->dst) {
|
|
/* check in destination thread map */
|
|
for (i = 0; i < soc_ep_map->dst_count; i++) {
|
|
if (soc_ep_map->dst[i].thread_id == thread_id)
|
|
return &soc_ep_map->dst[i].ep_config;
|
|
}
|
|
}
|
|
|
|
thread_id &= ~K3_PSIL_DST_THREAD_ID_OFFSET;
|
|
if (soc_ep_map->src) {
|
|
for (i = 0; i < soc_ep_map->src_count; i++) {
|
|
if (soc_ep_map->src[i].thread_id == thread_id)
|
|
return &soc_ep_map->src[i].ep_config;
|
|
}
|
|
}
|
|
|
|
return ERR_PTR(-ENOENT);
|
|
}
|