Example #1
0
TYPE_IR_REG_RESULT ir_reg_irsd_shutdown(void)
{
	TYPE_IR_REG_RESULT w_ret = IR_REG_RESULT_SUCCESS;

	int f_map_hcs1 = 0;

	if (lr388g7_hcs1 != NULL) {
		goto ready;
	}

	f_map_hcs1 = 1;

	if (ir_reg_ioremap_nocache() != IR_REG_RESULT_SUCCESS) {
		w_ret = IR_REG_RESULT_FAIL;
		MSG_IRREG_FATAL("ioremap error\n");
		goto error;
	}

ready:
	ir_reg_gol_irdacc_reset_ena();

error:
	if (f_map_hcs1 == 1) {
		ir_reg_iounmap();
		f_map_hcs1 = 0;
	}

	return (w_ret);
}
Example #2
0
TYPE_IR_REG_RESULT ir_reg_ioremap_nocache(void)
{
	TYPE_IR_REG_RESULT	w_ret	= IR_REG_RESULT_SUCCESS;

	goliath2_hcs1 = ioremap_nocache(IRDA_ADDR_HCS1, IRDA_ADDR_HCS1_SIZE);
	if (goliath2_hcs1 == NULL) {
		w_ret = IR_REG_RESULT_FAIL;
		MSG_IRREG_FATAL("goliath2_hcs1=0x%x[%d,%d]\n",
						(int)goliath2_hcs1, 0, 0);
	} else {
		goliath2_hcs2 = ioremap_nocache(IRDA_ADDR_HCS2,
							IRDA_ADDR_HCS2_SIZE);
		if (goliath2_hcs2 == NULL) {
			w_ret = IR_REG_RESULT_FAIL;
			MSG_IRREG_FATAL("goliath2_hcs2=0x%x[%d,%d]\n",
						(int)goliath2_hcs2, 0, 0);
		}
	}

	return (w_ret);
}
Example #3
0
TYPE_IR_REG_RESULT ir_reg_ioremap_nocache(void)
{
	TYPE_IR_REG_RESULT	w_ret	= IR_REG_RESULT_SUCCESS;

	if (lr388g7_hcs1 != NULL) {
		goto exit;
	}

	lr388g7_hcs1 = ioremap_nocache(IRDA_ADDR_HCS1, IRDA_ADDR_HCS1_SIZE);
	if (lr388g7_hcs1 == NULL) {
		w_ret = IR_REG_RESULT_FAIL;
		MSG_IRREG_FATAL("lr388g7_hcs1=0x%x\n", (int)lr388g7_hcs1);
	} else {
		lr388g7_hcs2 = ioremap_nocache(IRDA_ADDR_HCS2,
							IRDA_ADDR_HCS2_SIZE);
		if (lr388g7_hcs2 == NULL) {
			w_ret = IR_REG_RESULT_FAIL;
			MSG_IRREG_FATAL("lr388g7_hcs2=0x%x\n",
							(int)lr388g7_hcs2);
		}
	}
exit:
	return (w_ret);
}
Example #4
0
TYPE_IR_REG_RESULT ir_reg_irsd_active(void)
{
	TYPE_IR_REG_RESULT w_ret = IR_REG_RESULT_SUCCESS;

	struct timespec tu;

	int f_map_hcs1 = 0;

	if (lr388g7_hcs1 != NULL) {
		goto ready;
	}

	f_map_hcs1 = 1;

	if (ir_reg_ioremap_nocache() != IR_REG_RESULT_SUCCESS) {
		w_ret = IR_REG_RESULT_FAIL;
		MSG_IRREG_FATAL("ioremap error\n");
		goto error;
	}

ready:
	ir_reg_gol_irdacc_reset_dis();
	ir_reg_set_sd(IR_GPIO_LOW);

	tu.tv_sec = 0;
	tu.tv_nsec = IR_SD_RECOVERY_WAIT_NSEC;
	hrtimer_nanosleep(&tu, NULL, HRTIMER_MODE_REL, CLOCK_MONOTONIC);

error:
	if (f_map_hcs1 == 1) {
		ir_reg_iounmap();
		f_map_hcs1 = 0;
	}

	return (w_ret);
}