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