Lines Matching +full:c +full:- +full:family +full:- +full:name

1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2014-2016 Glider bvba
17 const char name[16]; member
22 .name = "R-Car Gen1",
27 .name = "R-Car Gen2",
32 .name = "R-Car Gen3",
37 .name = "R-Car Gen4",
41 .name = "R-Mobile",
46 .name = "RZ/A1",
50 .name = "RZ/A2",
54 .name = "RZ/Five",
58 .name = "RZ/G1",
63 .name = "RZ/G2",
68 .name = "RZ/G2L",
72 .name = "RZ/G2UL",
76 .name = "RZ/V2L",
80 .name = "RZ/V2M",
84 .name = "SH-Mobile",
90 const struct renesas_family *family; member
95 .family = &fam_rza1,
99 .family = &fam_rza2,
104 .family = &fam_rmobile,
109 .family = &fam_rmobile,
114 .family = &fam_rzfive,
119 .family = &fam_rzg1,
124 .family = &fam_rzg1,
129 .family = &fam_rzg1,
134 .family = &fam_rzg1,
139 .family = &fam_rzg1,
144 .family = &fam_rzg2,
149 .family = &fam_rzg2,
154 .family = &fam_rzg2,
159 .family = &fam_rzg2,
164 .family = &fam_rzg2l,
169 .family = &fam_rzg2ul,
174 .family = &fam_rzv2l,
179 .family = &fam_rzv2m,
183 .family = &fam_rcar_gen1,
187 .family = &fam_rcar_gen1,
192 .family = &fam_rcar_gen2,
197 .family = &fam_rcar_gen2,
202 .family = &fam_rcar_gen2,
207 .family = &fam_rcar_gen2,
212 .family = &fam_rcar_gen2,
217 .family = &fam_rcar_gen3,
222 .family = &fam_rcar_gen3,
227 .family = &fam_rcar_gen3,
232 .family = &fam_rcar_gen3,
237 .family = &fam_rcar_gen3,
242 .family = &fam_rcar_gen3,
247 .family = &fam_rcar_gen3,
252 .family = &fam_rcar_gen4,
257 .family = &fam_rcar_gen4,
262 .family = &fam_rcar_gen4,
267 .family = &fam_shmobile,
429 { .compatible = "renesas,r9a07g043-sysc", .data = &id_rzg2l },
430 { .compatible = "renesas,r9a07g044-sysc", .data = &id_rzg2l },
431 { .compatible = "renesas,r9a07g054-sysc", .data = &id_rzg2l },
432 { .compatible = "renesas,r9a09g011-sys", .data = &id_rzv2m },
441 const struct renesas_family *family; in renesas_soc_init() local
454 return -ENODEV; in renesas_soc_init()
456 soc_id = strchr(match->compatible, ',') + 1; in renesas_soc_init()
457 soc = match->data; in renesas_soc_init()
458 family = soc->family; in renesas_soc_init()
462 id = match->data; in renesas_soc_init()
465 } else if (soc->id && family->reg) { in renesas_soc_init()
468 chipid = ioremap(family->reg, 4); in renesas_soc_init()
475 return -ENOMEM; in renesas_soc_init()
479 of_property_read_string(np, "model", &soc_dev_attr->machine); in renesas_soc_init()
482 soc_dev_attr->family = kstrdup_const(family->name, GFP_KERNEL); in renesas_soc_init()
483 soc_dev_attr->soc_id = kstrdup_const(soc_id, GFP_KERNEL); in renesas_soc_init()
486 product = readl(chipid + id->offset); in renesas_soc_init()
490 /* R-Car M3-W ES1.1 incorrectly identifies as ES2.0 */ in renesas_soc_init()
493 /* R-Car M3-W ES1.3 incorrectly identifies as ES2.1 */ in renesas_soc_init()
499 soc_dev_attr->revision = kasprintf(GFP_KERNEL, "ES%u.%u", in renesas_soc_init()
503 soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%u", in renesas_soc_init()
509 soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%u.%u", in renesas_soc_init()
513 if (soc->id && in renesas_soc_init()
514 ((product & id->mask) >> __ffs(id->mask)) != soc->id) { in renesas_soc_init()
516 ret = -ENODEV; in renesas_soc_init()
521 pr_info("Detected Renesas %s %s %s%s\n", soc_dev_attr->family, in renesas_soc_init()
522 soc_dev_attr->soc_id, rev_prefix, soc_dev_attr->revision ?: ""); in renesas_soc_init()
533 kfree(soc_dev_attr->revision); in renesas_soc_init()
534 kfree_const(soc_dev_attr->soc_id); in renesas_soc_init()
535 kfree_const(soc_dev_attr->family); in renesas_soc_init()