void DRV_DIEID_TEST(void) { int i = 0; char *buf = kzalloc(EFUSE_DIEID_LEN, GFP_KERNEL); if(NULL == buf) { efuse_print_info("alloc mem is fail.\n"); return; } if(EFUSE_OK == DRV_GET_DIEID(buf, EFUSE_DIEID_LEN)) { for(i = 0; i < EFUSE_DIEID_LEN; i++) { efuse_print_info("0x%x \n", *(buf+i)); } } else { efuse_print_error("DRV_GET_DIEID is fail.\n"); } kfree(buf); }
int efuse_init(void) { int ret; u32 chan_id = ICC_CHN_IFC << 16 | IFC_RECV_FUNC_EFUSE; if(1 == is_efuse_init) { return EFUSE_OK; } osl_sem_init(0, &efuse_sem_id); osl_sem_init(1, &efuse_queue_sem_id); ret = bsp_icc_event_register(chan_id, (read_cb_func)bsp_efuse_data_receive, NULL, NULL, NULL);/* [false alarm]:屏蔽Fortify错误 */ if(ICC_OK != ret) { efuse_print_error("register is error.\n"); return EFUSE_ERROR; } is_efuse_init = 1;/* [false alarm]:屏蔽Fortify错误 */ efuse_print_info("efuse init ok.\n"); return EFUSE_OK; }
static int __init hi_efuse_comm_init(void) { int ret = 0; u32 chan_id = ICC_CHN_IFC << 16 | IFC_RECV_FUNC_EFUSE; INIT_WORK(&efuse_work, efuse_handle_work); ret = bsp_icc_event_register(chan_id, (read_cb_func)bsp_efuse_data_receive, NULL, NULL, NULL); if(0 != ret) { efuse_print_error("efuse icc register is error.\n"); return EFUSE_ERROR; } efuse_print_info("efuse comm init ok.\n"); return EFUSE_OK; }
void bsp_efuse_show(void) { unsigned int i = 0; unsigned int value = 0; for(i = 0;i < EFUSE_MAX_SIZE;i++) { if(OK == bsp_efuse_read(&value, i, 1)) { efuse_print_info("efuse group%d value = 0x%x.\n ", i, value); } else { efuse_print_error("efuse group%d read fail.\n", i); return; } } }