static struct device_attribute imx8_uid =
__ATTR(soc_uid, S_IRUGO, imx8_get_soc_uid, NULL);
+static void __init imx8mq_noc_init(void)
+{
+ struct device_node *np;
+ const char *status;
+ int statlen;
+ struct arm_smccc_res res;
+
+ np = of_find_compatible_node(NULL, NULL, "fsl,imx8mq-lcdif");
+ if (!np)
+ return;
+
+ status = of_get_property(np, "status", &statlen);
+ if (status == NULL)
+ return;
+
+ if (statlen > 0) {
+ if (!strcmp(status, "disabled"))
+ return;
+ }
+
+ pr_info("Config NOC for VPU and CPU\n");
+ arm_smccc_smc(FSL_SIP_NOC, FSL_SIP_NOC_LCDIF, 0,
+ 0, 0, 0, 0, 0, &res);
+ if (res.a0)
+ pr_err("Config NOC for VPU and CPU fail!\n");
+}
+
static int __init imx8_soc_init(void)
{
struct soc_device_attribute *soc_dev_attr;
device_create_file(soc_device_to_device(soc_dev), &imx8_uid);
+ if (of_machine_is_compatible("fsl,imx8mq"))
+ imx8mq_noc_init();
+
return 0;
free_rev: