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/V2H",
83 .name = "RZ/V2L",
87 .name = "RZ/V2M",
91 .name = "SH-Mobile",
96 const struct renesas_family *family; member
101 .family = &fam_rza1,
105 .family = &fam_rza2,
110 .family = &fam_rmobile,
115 .family = &fam_rmobile,
120 .family = &fam_rzfive,
125 .family = &fam_rzg1,
130 .family = &fam_rzg1,
135 .family = &fam_rzg1,
140 .family = &fam_rzg1,
145 .family = &fam_rzg1,
150 .family = &fam_rzg2,
155 .family = &fam_rzg2,
160 .family = &fam_rzg2,
165 .family = &fam_rzg2,
170 .family = &fam_rzg2l,
175 .family = &fam_rzg2ul,
180 .family = &fam_rzg3s,
185 .family = &fam_rzv2h,
190 .family = &fam_rzv2l,
195 .family = &fam_rzv2m,
199 .family = &fam_rcar_gen1,
203 .family = &fam_rcar_gen1,
208 .family = &fam_rcar_gen2,
213 .family = &fam_rcar_gen2,
218 .family = &fam_rcar_gen2,
223 .family = &fam_rcar_gen2,
228 .family = &fam_rcar_gen2,
233 .family = &fam_rcar_gen3,
238 .family = &fam_rcar_gen3,
243 .family = &fam_rcar_gen3,
248 .family = &fam_rcar_gen3,
253 .family = &fam_rcar_gen3,
258 .family = &fam_rcar_gen3,
263 .family = &fam_rcar_gen3,
268 .family = &fam_rcar_gen4,
273 .family = &fam_rcar_gen4,
278 .family = &fam_rcar_gen4,
283 .family = &fam_rcar_gen4,
288 .family = &fam_shmobile,
464 { .compatible = "renesas,r9a07g043-sysc", .data = &id_rzg2l },
465 { .compatible = "renesas,r9a07g044-sysc", .data = &id_rzg2l },
466 { .compatible = "renesas,r9a07g054-sysc", .data = &id_rzg2l },
467 { .compatible = "renesas,r9a08g045-sysc", .data = &id_rzg2l },
468 { .compatible = "renesas,r9a09g011-sys", .data = &id_rzv2m },
469 { .compatible = "renesas,r9a09g057-sys", .data = &id_rzv2h },
478 const struct renesas_family *family; in renesas_soc_init() local
491 return -ENODEV; in renesas_soc_init()
493 soc_id = strchr(match->compatible, ',') + 1; in renesas_soc_init()
494 soc = match->data; in renesas_soc_init()
495 family = soc->family; in renesas_soc_init()
499 id = match->data; in renesas_soc_init()
502 } else if (soc->id && family->reg) { in renesas_soc_init()
505 chipid = ioremap(family->reg, 4); in renesas_soc_init()
512 return -ENOMEM; in renesas_soc_init()
515 soc_dev_attr->family = kstrdup_const(family->name, GFP_KERNEL); in renesas_soc_init()
516 soc_dev_attr->soc_id = kstrdup_const(soc_id, GFP_KERNEL); in renesas_soc_init()
519 product = readl(chipid + id->offset); in renesas_soc_init()
523 /* R-Car M3-W ES1.1 incorrectly identifies as ES2.0 */ in renesas_soc_init()
526 /* R-Car M3-W ES1.3 incorrectly identifies as ES2.1 */ in renesas_soc_init()
532 soc_dev_attr->revision = kasprintf(GFP_KERNEL, "ES%u.%u", in renesas_soc_init()
536 soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%u", in renesas_soc_init()
542 soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%u.%u", in renesas_soc_init()
546 if (soc->id && in renesas_soc_init()
547 ((product & id->mask) >> __ffs(id->mask)) != soc->id) { in renesas_soc_init()
549 ret = -ENODEV; in renesas_soc_init()
554 pr_info("Detected Renesas %s %s %s%s\n", soc_dev_attr->family, in renesas_soc_init()
555 soc_dev_attr->soc_id, rev_prefix, soc_dev_attr->revision ?: ""); in renesas_soc_init()
566 kfree(soc_dev_attr->revision); in renesas_soc_init()
567 kfree_const(soc_dev_attr->soc_id); in renesas_soc_init()
568 kfree_const(soc_dev_attr->family); in renesas_soc_init()