xref: /rk3399_ARM-atf/plat/imx/imx8m/imx_aipstz.c (revision 0d220b3519264f6a25139ce734dc8b6d1cc4428f)
1ac166f64SJacky Bai /*
2*2aca35fdSSoby Mathew  * Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.
3ac166f64SJacky Bai  *
4*2aca35fdSSoby Mathew  * SPDX-License-Identifier: BSD-3-Clause
5ac166f64SJacky Bai  */
6ac166f64SJacky Bai 
7ac166f64SJacky Bai #include <lib/mmio.h>
8ac166f64SJacky Bai 
9ac166f64SJacky Bai #include <imx_aipstz.h>
10ac166f64SJacky Bai 
imx_aipstz_init(const struct aipstz_cfg * aipstz_cfg)11ac166f64SJacky Bai void imx_aipstz_init(const struct aipstz_cfg *aipstz_cfg)
12ac166f64SJacky Bai {
13ac166f64SJacky Bai 	const struct aipstz_cfg *aipstz = aipstz_cfg;
14ac166f64SJacky Bai 
15ac166f64SJacky Bai 	while (aipstz->base != 0U) {
16ac166f64SJacky Bai 		mmio_write_32(aipstz->base + AIPSTZ_MPR0, aipstz->mpr0);
17ac166f64SJacky Bai 		mmio_write_32(aipstz->base + AIPSTZ_MPR1, aipstz->mpr1);
18ac166f64SJacky Bai 
19ac166f64SJacky Bai 		for (int i = 0; i < AIPSTZ_OPACR_NUM; i++)
20ac166f64SJacky Bai 			mmio_write_32(aipstz->base + OPACR_OFFSET(i), aipstz->opacr[i]);
21ac166f64SJacky Bai 
22ac166f64SJacky Bai 		aipstz++;
23ac166f64SJacky Bai 	}
24ac166f64SJacky Bai }
25