+
+ enum {
+ KINETIS_CACHE_NONE,
+ KINETIS_CACHE_K, /* invalidate using FMC->PFB0CR/PFB01CR */
+ KINETIS_CACHE_L, /* invalidate using MCM->PLACR */
+ KINETIS_CACHE_MSCM, /* devices like KE1xF, invalidate MSCM->OCMDR0 */
+ } cache_type;
+
+ enum {
+ KINETIS_WDOG_NONE,
+ KINETIS_WDOG_K,
+ KINETIS_WDOG_COP,
+ KINETIS_WDOG32_KE1X,
+ KINETIS_WDOG32_KL28,
+ } watchdog_type;
+
+ enum {
+ KINETIS_SMC,
+ KINETIS_SMC32,
+ } sysmodectrlr_type;
+
+ char name[40];
+
+ unsigned num_banks;
+ struct kinetis_flash_bank banks[KINETIS_MAX_BANKS];
+};
+
+struct kinetis_type {
+ uint32_t sdid;
+ char *name;
+};
+
+static const struct kinetis_type kinetis_types_old[] = {
+ { KINETIS_K_SDID_K10_M50, "MK10D%s5" },
+ { KINETIS_K_SDID_K10_M72, "MK10D%s7" },
+ { KINETIS_K_SDID_K10_M100, "MK10D%s10" },
+ { KINETIS_K_SDID_K10_M120, "MK10F%s12" },
+ { KINETIS_K_SDID_K11, "MK11D%s5" },
+ { KINETIS_K_SDID_K12, "MK12D%s5" },
+
+ { KINETIS_K_SDID_K20_M50, "MK20D%s5" },
+ { KINETIS_K_SDID_K20_M72, "MK20D%s7" },
+ { KINETIS_K_SDID_K20_M100, "MK20D%s10" },
+ { KINETIS_K_SDID_K20_M120, "MK20F%s12" },
+ { KINETIS_K_SDID_K21_M50, "MK21D%s5" },
+ { KINETIS_K_SDID_K21_M120, "MK21F%s12" },
+ { KINETIS_K_SDID_K22_M50, "MK22D%s5" },
+ { KINETIS_K_SDID_K22_M120, "MK22F%s12" },
+
+ { KINETIS_K_SDID_K30_M72, "MK30D%s7" },
+ { KINETIS_K_SDID_K30_M100, "MK30D%s10" },
+
+ { KINETIS_K_SDID_K40_M72, "MK40D%s7" },
+ { KINETIS_K_SDID_K40_M100, "MK40D%s10" },
+
+ { KINETIS_K_SDID_K50_M72, "MK50D%s7" },
+ { KINETIS_K_SDID_K51_M72, "MK51D%s7" },
+ { KINETIS_K_SDID_K53, "MK53D%s10" },
+
+ { KINETIS_K_SDID_K60_M100, "MK60D%s10" },
+ { KINETIS_K_SDID_K60_M150, "MK60F%s15" },
+
+ { KINETIS_K_SDID_K70_M150, "MK70F%s15" },