xref: /optee_os/core/drivers/crypto/caam/hal/common/hal_sm_dt.c (revision 82affb6ab7d16ac2bc787b963a8377b9f993b6b0)
1 // SPDX-License-Identifier: BSD-2-Clause
2 /*
3  * Copyright 2024 NXP
4  *
5  * Brief   CAAM Secure Memory Hardware Abstraction Layer.
6  */
7 
8 #include <caam_common.h>
9 #include <caam_hal_sm.h>
10 #include <kernel/dt.h>
11 #include <libfdt.h>
12 
13 static const char *dt_sm_match_table = {
14 	"fsl,imx6q-caam-sm",
15 };
16 
caam_hal_sm_get_base_dt(void * fdt,vaddr_t * sm_base)17 void caam_hal_sm_get_base_dt(void *fdt, vaddr_t *sm_base)
18 {
19 	int node = 0;
20 	int ret = 0;
21 	size_t size = 0;
22 
23 	*sm_base = 0;
24 
25 	node = fdt_node_offset_by_compatible(fdt, 0, dt_sm_match_table);
26 
27 	if (node < 0) {
28 		HAL_TRACE("CAAM Node not found err = 0x%X", node);
29 		return;
30 	}
31 
32 	/* Map the device in the system if not already present */
33 	ret = dt_map_dev(fdt, node, sm_base, &size, DT_MAP_AUTO);
34 	if (ret < 0) {
35 		HAL_TRACE("Cannot map node 0x%X", node);
36 		return;
37 	}
38 }
39