xref: /rk3399_ARM-atf/plat/imx/imx8m/imx_aipstz.c (revision ac166f64e2397f2c12f261e2baf6f63ae89de385)
1*ac166f64SJacky Bai /*
2*ac166f64SJacky Bai  * copyright (c) 2019, arm limited and contributors. all rights reserved.
3*ac166f64SJacky Bai  *
4*ac166f64SJacky Bai  * spdx-license-identifier: bsd-3-clause
5*ac166f64SJacky Bai  */
6*ac166f64SJacky Bai 
7*ac166f64SJacky Bai #include <lib/mmio.h>
8*ac166f64SJacky Bai 
9*ac166f64SJacky Bai #include <imx_aipstz.h>
10*ac166f64SJacky Bai 
11*ac166f64SJacky Bai void imx_aipstz_init(const struct aipstz_cfg *aipstz_cfg)
12*ac166f64SJacky Bai {
13*ac166f64SJacky Bai 	const struct aipstz_cfg *aipstz = aipstz_cfg;
14*ac166f64SJacky Bai 
15*ac166f64SJacky Bai 	while (aipstz->base != 0U) {
16*ac166f64SJacky Bai 		mmio_write_32(aipstz->base + AIPSTZ_MPR0, aipstz->mpr0);
17*ac166f64SJacky Bai 		mmio_write_32(aipstz->base + AIPSTZ_MPR1, aipstz->mpr1);
18*ac166f64SJacky Bai 
19*ac166f64SJacky Bai 		for (int i = 0; i < AIPSTZ_OPACR_NUM; i++)
20*ac166f64SJacky Bai 			mmio_write_32(aipstz->base + OPACR_OFFSET(i), aipstz->opacr[i]);
21*ac166f64SJacky Bai 
22*ac166f64SJacky Bai 		aipstz++;
23*ac166f64SJacky Bai 	}
24*ac166f64SJacky Bai }
25