Lines Matching +full:c +full:- +full:family +full:- +full:name
1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2014-2016 Glider bvba
16 const char name[16]; member
21 .name = "R-Car Gen1",
26 .name = "R-Car Gen2",
31 .name = "R-Car Gen3",
36 .name = "R-Car Gen4",
40 .name = "R-Mobile",
45 .name = "RZ/A1",
49 .name = "RZ/A2",
53 .name = "RZ/Five",
57 .name = "RZ/G1",
62 .name = "RZ/G2",
67 .name = "RZ/G2L",
71 .name = "RZ/G2UL",
75 .name = "RZ/G3S",
79 .name = "RZ/V2L",
83 .name = "RZ/V2M",
87 .name = "SH-Mobile",
92 const struct renesas_family *family; member
97 .family = &fam_rza1,
101 .family = &fam_rza2,
106 .family = &fam_rmobile,
111 .family = &fam_rmobile,
116 .family = &fam_rzfive,
121 .family = &fam_rzg1,
126 .family = &fam_rzg1,
131 .family = &fam_rzg1,
136 .family = &fam_rzg1,
141 .family = &fam_rzg1,
146 .family = &fam_rzg2,
151 .family = &fam_rzg2,
156 .family = &fam_rzg2,
161 .family = &fam_rzg2,
166 .family = &fam_rzg2l,
171 .family = &fam_rzg2ul,
176 .family = &fam_rzg3s,
181 .family = &fam_rzv2l,
186 .family = &fam_rzv2m,
190 .family = &fam_rcar_gen1,
194 .family = &fam_rcar_gen1,
199 .family = &fam_rcar_gen2,
204 .family = &fam_rcar_gen2,
209 .family = &fam_rcar_gen2,
214 .family = &fam_rcar_gen2,
219 .family = &fam_rcar_gen2,
224 .family = &fam_rcar_gen3,
229 .family = &fam_rcar_gen3,
234 .family = &fam_rcar_gen3,
239 .family = &fam_rcar_gen3,
244 .family = &fam_rcar_gen3,
249 .family = &fam_rcar_gen3,
254 .family = &fam_rcar_gen3,
259 .family = &fam_rcar_gen4,
264 .family = &fam_rcar_gen4,
269 .family = &fam_rcar_gen4,
274 .family = &fam_shmobile,
439 { .compatible = "renesas,r9a07g043-sysc", .data = &id_rzg2l },
440 { .compatible = "renesas,r9a07g044-sysc", .data = &id_rzg2l },
441 { .compatible = "renesas,r9a07g054-sysc", .data = &id_rzg2l },
442 { .compatible = "renesas,r9a08g045-sysc", .data = &id_rzg2l },
443 { .compatible = "renesas,r9a09g011-sys", .data = &id_rzv2m },
452 const struct renesas_family *family; in renesas_soc_init() local
465 return -ENODEV; in renesas_soc_init()
467 soc_id = strchr(match->compatible, ',') + 1; in renesas_soc_init()
468 soc = match->data; in renesas_soc_init()
469 family = soc->family; in renesas_soc_init()
473 id = match->data; in renesas_soc_init()
476 } else if (soc->id && family->reg) { in renesas_soc_init()
479 chipid = ioremap(family->reg, 4); in renesas_soc_init()
486 return -ENOMEM; in renesas_soc_init()
489 soc_dev_attr->family = kstrdup_const(family->name, GFP_KERNEL); in renesas_soc_init()
490 soc_dev_attr->soc_id = kstrdup_const(soc_id, GFP_KERNEL); in renesas_soc_init()
493 product = readl(chipid + id->offset); in renesas_soc_init()
497 /* R-Car M3-W ES1.1 incorrectly identifies as ES2.0 */ in renesas_soc_init()
500 /* R-Car M3-W ES1.3 incorrectly identifies as ES2.1 */ in renesas_soc_init()
506 soc_dev_attr->revision = kasprintf(GFP_KERNEL, "ES%u.%u", in renesas_soc_init()
510 soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%u", in renesas_soc_init()
516 soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%u.%u", in renesas_soc_init()
520 if (soc->id && in renesas_soc_init()
521 ((product & id->mask) >> __ffs(id->mask)) != soc->id) { in renesas_soc_init()
523 ret = -ENODEV; in renesas_soc_init()
528 pr_info("Detected Renesas %s %s %s%s\n", soc_dev_attr->family, in renesas_soc_init()
529 soc_dev_attr->soc_id, rev_prefix, soc_dev_attr->revision ?: ""); in renesas_soc_init()
540 kfree(soc_dev_attr->revision); in renesas_soc_init()
541 kfree_const(soc_dev_attr->soc_id); in renesas_soc_init()
542 kfree_const(soc_dev_attr->family); in renesas_soc_init()