blob: 85de19111315f264e8e5cb36ec9d97c2ef38a37f [file] [log] [blame]
Jacky Bai64130a32019-07-18 13:43:17 +08001/*
2 * Copyright (c) 2019, NXP. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include <lib/mmio.h>
8
9#include <imx_rdc.h>
10
11void imx_rdc_init(const struct imx_rdc_cfg *rdc_cfg)
12{
13 const struct imx_rdc_cfg *rdc = rdc_cfg;
14
15 while (rdc->type != RDC_INVALID) {
16 switch (rdc->type) {
17 case RDC_MDA:
18 /* MDA config */
19 mmio_write_32(MDAn(rdc->index), rdc->setting.rdc_mda);
20 break;
21 case RDC_PDAP:
22 /* peripheral access permission config */
23 mmio_write_32(PDAPn(rdc->index), rdc->setting.rdc_pdap);
24 break;
25 case RDC_MEM_REGION:
26 /* memory region access permission config */
27 mmio_write_32(MRSAn(rdc->index), rdc->setting.rdc_mem_region[0]);
28 mmio_write_32(MREAn(rdc->index), rdc->setting.rdc_mem_region[1]);
29 mmio_write_32(MRCn(rdc->index), rdc->setting.rdc_mem_region[2]);
30 break;
31 default:
32 break;
33 }
34
35 rdc++;
36 }
37}