Lines Matching +full:imx8mm +full:- +full:soc
1 // SPDX-License-Identifier: GPL-2.0
12 #include <linux/arm-smccc.h>
60 np = of_find_compatible_node(NULL, NULL, "fsl,imx8mq-ocotp"); in imx8mq_soc_revision()
68 * SOC revision on older imx8mq is not available in fuses so query in imx8mq_soc_revision()
95 np = of_find_compatible_node(NULL, NULL, "fsl,imx8mm-ocotp"); in imx8mm_soc_uid()
116 np = of_find_compatible_node(NULL, NULL, "fsl,imx8mm-anatop"); in imx8mm_soc_revision()
155 { .compatible = "fsl,imx8mm", .data = &imx8mm_soc_data, },
177 return -ENOMEM; in imx8_soc_init()
179 soc_dev_attr->family = "Freescale i.MX"; in imx8_soc_init()
181 ret = of_property_read_string(of_root, "model", &soc_dev_attr->machine); in imx8_soc_init()
187 ret = -ENODEV; in imx8_soc_init()
191 data = id->data; in imx8_soc_init()
193 soc_dev_attr->soc_id = data->name; in imx8_soc_init()
194 if (data->soc_revision) in imx8_soc_init()
195 soc_rev = data->soc_revision(); in imx8_soc_init()
198 soc_dev_attr->revision = imx8_revision(soc_rev); in imx8_soc_init()
199 if (!soc_dev_attr->revision) { in imx8_soc_init()
200 ret = -ENOMEM; in imx8_soc_init()
204 soc_dev_attr->serial_number = kasprintf(GFP_KERNEL, "%016llX", soc_uid); in imx8_soc_init()
205 if (!soc_dev_attr->serial_number) { in imx8_soc_init()
206 ret = -ENOMEM; in imx8_soc_init()
216 pr_info("SoC: %s revision %s\n", soc_dev_attr->soc_id, in imx8_soc_init()
217 soc_dev_attr->revision); in imx8_soc_init()
220 platform_device_register_simple("imx-cpufreq-dt", -1, NULL, 0); in imx8_soc_init()
225 kfree(soc_dev_attr->serial_number); in imx8_soc_init()
227 if (strcmp(soc_dev_attr->revision, "unknown")) in imx8_soc_init()
228 kfree(soc_dev_attr->revision); in imx8_soc_init()