xref: /rk3399_ARM-atf/plat/imx/common/imx_caam.c (revision ca52cbe65b1453f4a2811249847d3387b6888fd3)
1*ca52cbe6SBryan O'Donoghue /*
2*ca52cbe6SBryan O'Donoghue  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3*ca52cbe6SBryan O'Donoghue  *
4*ca52cbe6SBryan O'Donoghue  * SPDX-License-Identifier: BSD-3-Clause
5*ca52cbe6SBryan O'Donoghue  */
6*ca52cbe6SBryan O'Donoghue #include <stdint.h>
7*ca52cbe6SBryan O'Donoghue #include <mmio.h>
8*ca52cbe6SBryan O'Donoghue #include <imx_caam.h>
9*ca52cbe6SBryan O'Donoghue 
10*ca52cbe6SBryan O'Donoghue void imx_caam_init(void)
11*ca52cbe6SBryan O'Donoghue {
12*ca52cbe6SBryan O'Donoghue 	struct caam_ctrl *caam = (struct caam_ctrl *)CAAM_AIPS_BASE;
13*ca52cbe6SBryan O'Donoghue 	uint32_t reg;
14*ca52cbe6SBryan O'Donoghue 	int i;
15*ca52cbe6SBryan O'Donoghue 
16*ca52cbe6SBryan O'Donoghue 	for (i = 0; i < CAAM_NUM_JOB_RINGS; i++) {
17*ca52cbe6SBryan O'Donoghue 		reg = mmio_read_32((uintptr_t)&caam->jr[i].jrmidr_ms);
18*ca52cbe6SBryan O'Donoghue 		reg |= JROWN_NS | JROWN_MID;
19*ca52cbe6SBryan O'Donoghue 		mmio_write_32((uintptr_t)&caam->jr[i].jrmidr_ms, reg);
20*ca52cbe6SBryan O'Donoghue 	}
21*ca52cbe6SBryan O'Donoghue }
22