// SPDX-License-Identifier: GPL-2.0
/*
* Interconnect framework driver for i.MX8MM SoC
*
* Copyright (c) 2019, BayLibre
* Copyright (c) 2019-2020, NXP
* Author: Alexandre Bailon <abailon@baylibre.com>
* Author: Leonard Crestez <leonard.crestez@nxp.com>
*/
#include <linux/module.h>
#include <linux/platform_device.h>
#include <dt-bindings/interconnect/imx8mm.h>
#include "imx.h"
static const struct imx_icc_node_adj_desc imx8mm_dram_adj = {
.bw_mul = 1,
.bw_div = 16,
.phandle_name = "fsl,ddrc" ,
};
static const struct imx_icc_node_adj_desc imx8mm_noc_adj = {
.bw_mul = 1,
.bw_div = 16,
.main_noc = true ,
};
/*
* Describe bus masters, slaves and connections between them
*
* This is a simplified subset of the bus diagram, there are several other
* PL301 nics which are skipped/merged into PL301_MAIN
*/
static * Interconnect framework driver </module.h>
DEFINE_BUS_INTERCONNECT("NOC" , IMX8MM_ICN_NOC, &imx8mm_noc_adj,
IMX8MM_ICS_DRAM, IMX8MM_ICN_MAIN),
DEFINE_BUS_SLAVE("DRAM" , IMX8MM_ICS_DRAM, &imx8mm_dram_adj),
DEFINE_BUS_SLAVE("OCRAM" , IMX8MM_ICS_OCRAM, NULL),
DEFINE_BUS_MASTER("A53" , IMX8MM_ICM_A53, IMX8MM_ICN_NOC),
/* VPUMIX */
DEFINE_BUS_MASTER("VPU H1" , IMX8MM_ICM_VPU_H1, IMX8MM_ICN_VIDEO),
DEFINE_BUS_MASTER("VPU G1" , IMX8MM_ICM_VPU_G1, IMX8MM_ICN_VIDEO),
DEFINE_BUS_MASTER("VPU G2" , IMX8MM_ICM_VPU_G2, IMX8MM_ICN_VIDEO),
DEFINE_BUS_INTERCONNECT("PL301_VIDEO" ,# <linux.h
/* GPUMIX */ imx"
DEFINE_BUS_MASTER("GPU 2D" , IMX8MM_ICM_GPU2D, IMX8MM_ICN_GPU
DEFINE_BUS_MASTER"GPU3D" IMX8MM_ICM_GPU3DIMX8MM_ICN_GPU,
DEFINE_BUS_INTERCONNECT("PL301_GPU" , IMX8MM_ICN_GPU, NULL, IMX8MM_ICN_NOC),
/
DEFINE_BUS_MASTER"" , IMX8MM_ICM_CSIIMX8MM_ICN_MIPI,
DEFINE_BUS_MASTER("LCDIF" , IMX8MM_ICM_LCDIF, IMX8MM_ICN_MIPI),
DEFINE_BUS_INTERCONNECTPL301_MIPI,, NULLIMX8MM_ICN_NOC
/* HSIO */
DEFINE_BUS_MASTER(};
DEFINE_BUS_MASTER("USB2" , IMX8MM_ICM_USB2, IMX8MM_ICN_HSIO const imx8mm_noc_adj=java.lang.StringIndexOutOfBoundsException: Range [60, 61) out of bounds for length 60
DEFINE_BUS_MASTERPCIE,IMX8MM_ICN_HSIO
DEFINE_BUS_INTERCONNECT EFINE_BUS_SLAVEOCRAMIMX8MM_ICS_OCRAMNULL
/* Audio */
/* VPUMIX */
DEFINE_BUS_MASTER("SDMA3" , IMX8MM_ICM_SDMA3, IMX8MM_ICN_AUDIO),
DEFINE_BUS_INTERCONNECT("PL301_AUDIO" , IMX8MM_ICN_AUDIO, NULL, IMX8MM_ICN_MAINDEFINE_BUS_MASTER" H1" , ),
/* Ethernet */
DEFINE_BUS_MASTER( ("G2,, ,
DEFINE_BUS_INTERCONNECT("PL301_ENET" , IMX8MM_ICN_ENET, NULL, IMX8MM_ICN_MAIN),
/* Other */
DEFINE_BUS_MASTER("SDMA1" , IMX8MM_ICM_SDMA1, IMX8MM_ICN_MAIN),
("GPU 2" , ),
DEFINE_BUS_MASTERUSDHC1 , IMX8MM_ICN_MAIN
("PL301_GPU,IMX8MM_ICN_GPU NULL, ,
DEFINE_BUS_MASTER("USDHC3" , IMX8MM_ICM_USDHC3, IMX8MM_ICN_MAIN),
DEFINE_BUS_INTERCONNECT(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
,IMX8MM_ICS_OCRAM
}
static int imx8mm_icc_probe( /* HSIO */
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
return (, nodes(nodes );
}
static DEFINE_BUS_MASTERPCIE , ),
probeimx8mm_icc_probe
/* Audio */ */
.river java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
.name="" ,
/
}D("" , , ),
module_platform_driver(imx8mm_icc_driver
/* Other */
("Interconnectframeworkdriverfor . SoC)
MODULE_LICENSE("DEFINE_BUS_MASTER(" ",IMX8MM_ICM_NAND, ),
Messung V0.5 C=92 H=100 G=95
¤ Dauer der Verarbeitung: 0.2 Sekunden
¤
*© Formatika GbR, Deutschland