xref: /optee_os/core/arch/arm/plat-k3/drivers/dthev2.c (revision a9690ae39995af36a31b7a4f446f27ea0787e3a4)
1*a9690ae3ST Pratham // SPDX-License-Identifier: BSD-2-Clause
2*a9690ae3ST Pratham /*
3*a9690ae3ST Pratham  * Texas Instruments K3 DTHEV2 Driver
4*a9690ae3ST Pratham  *
5*a9690ae3ST Pratham  * Copyright (C) 2025 Texas Instruments Incorporated - https://www.ti.com/
6*a9690ae3ST Pratham  *	T Pratham <t-pratham@ti.com>
7*a9690ae3ST Pratham  */
8*a9690ae3ST Pratham 
9*a9690ae3ST Pratham #include <drivers/ti_sci.h>
10*a9690ae3ST Pratham #include <initcall.h>
11*a9690ae3ST Pratham #include <io.h>
12*a9690ae3ST Pratham #include <keep.h>
13*a9690ae3ST Pratham #include <kernel/interrupt.h>
14*a9690ae3ST Pratham #include <kernel/misc.h>
15*a9690ae3ST Pratham #include <kernel/spinlock.h>
16*a9690ae3ST Pratham #include <mm/core_memprot.h>
17*a9690ae3ST Pratham #include <mm/core_mmu.h>
18*a9690ae3ST Pratham #include <platform_config.h>
19*a9690ae3ST Pratham #include <rng_support.h>
20*a9690ae3ST Pratham 
21*a9690ae3ST Pratham #include "eip76d_trng.h"
22*a9690ae3ST Pratham 
dthev2_init(void)23*a9690ae3ST Pratham static TEE_Result dthev2_init(void)
24*a9690ae3ST Pratham {
25*a9690ae3ST Pratham 	TEE_Result result = TEE_SUCCESS;
26*a9690ae3ST Pratham 
27*a9690ae3ST Pratham 	/* Initialize the RNG Module */
28*a9690ae3ST Pratham 	result = eip76d_rng_init();
29*a9690ae3ST Pratham 	if (result != TEE_SUCCESS)
30*a9690ae3ST Pratham 		return result;
31*a9690ae3ST Pratham 
32*a9690ae3ST Pratham 	IMSG("DTHEv2 Drivers initialized");
33*a9690ae3ST Pratham 
34*a9690ae3ST Pratham 	return TEE_SUCCESS;
35*a9690ae3ST Pratham }
36*a9690ae3ST Pratham service_init_crypto(dthev2_init);
37