return arm_cti_write_reg(self, CTI_APPCLEAR, CTI_CHNL(channel));
}
-static uint32_t cti_regs[26];
+static uint32_t cti_regs[28];
static const struct {
uint32_t offset;
{ CTI_CHOU_STATUS, "CHOUT", &cti_regs[23] },
{ CTI_APPSET, "APPSET", &cti_regs[24] },
{ CTI_APPCLEAR, "APPCLR", &cti_regs[25] },
+ { CTI_APPPULSE, "APPPULSE", &cti_regs[26] },
+ { CTI_INACK, "INACK", &cti_regs[27] },
};
static int cti_find_reg_offset(const char *name)
if (!strcmp(name, cti_names[i].label))
return cti_names[i].offset;
}
+
+ LOG_ERROR("unknown CTI register %s", name);
return -1;
}
+int arm_cti_cleanup_all(void)
+{
+ struct arm_cti_object *obj, *tmp;
+
+ list_for_each_entry_safe(obj, tmp, &all_cti, lh) {
+ free(obj->name);
+ free(obj);
+ }
+
+ return ERROR_OK;
+}
+
COMMAND_HANDLER(handle_cti_dump)
{
struct arm_cti_object *obj = CMD_DATA;
uint32_t value;
if (CMD_ARGC != 2) {
- Jim_SetResultString(interp, "Wrong numer of args", -1);
+ Jim_SetResultString(interp, "Wrong number of args", -1);
return ERROR_FAIL;
}
uint32_t value;
if (CMD_ARGC != 1) {
- Jim_SetResultString(interp, "Wrong numer of args", -1);
+ Jim_SetResultString(interp, "Wrong number of args", -1);
return ERROR_FAIL;
}
e = Jim_GetOpt_Wide(goi, &w);
if (e != JIM_OK)
return e;
+ if (w < 0 || w > DP_APSEL_MAX) {
+ Jim_SetResultString(goi->interp, "-ap-num is invalid", -1);
+ return JIM_ERR;
+ }
cti->ap_num = (uint32_t)w;
}
}
.mode = COMMAND_CONFIG,
.help = "CTI commands",
.chain = cti_subcommand_handlers,
+ .usage = "",
},
COMMAND_REGISTRATION_DONE
};