Пример #1
0
//ACCDET hardware initial
static inline void __init accfix_init(void)
{ 
    ACCFIX_DEBUG("[accfix]accfix hardware init\n");
    //kal_uint8 val;

    //resolve MT6573 ACCDET hardware issue: ear bias supply can make Vref drop obviously 
    //during plug in/out headset then cause modem exception or kernel panic
    //solution: set bit3 of PMIC_RESERVE_CON2 to force MIC voltage to 0 when MIC is drop to negative voltage
    //SETREG32(PMIC_RESERVE_CON2, MIC_FORCE_LOW);

    enable_clock(MT65XX_PDN_PERI_ACCDET,"ACCFIX");
	
    //reset the accdet unit
	OUTREG32(ACCDET_RSTB, RSTB_BIT); 
	OUTREG32(ACCDET_RSTB, RSTB_FINISH_BIT); 

    //init  pwm frequency and duty
    OUTREG32(ACCDET_PWM_WIDTH, REGISTER_VALUE(cust_headset_settings.pwm_width));
    OUTREG32(ACCDET_PWM_THRESH, REGISTER_VALUE(cust_headset_settings.pwm_thresh));

    OUTREG32(ACCDET_EN_DELAY_NUM,
		(cust_headset_settings.fall_delay << 15 | cust_headset_settings.rise_delay));

    // init the debounce time
    OUTREG32(ACCDET_DEBOUNCE0, cust_headset_settings.debounce0);
    OUTREG32(ACCDET_DEBOUNCE1, cust_headset_settings.debounce1);
    OUTREG32(ACCDET_DEBOUNCE3, cust_headset_settings.debounce3);	
	
		
    
    #ifdef ACCFIX_EINT
    // disable ACCDET unit
	pre_state_swctrl = INREG32(ACCDET_STATE_SWCTRL);
    OUTREG32(ACCDET_CTRL, ACCDET_DISABLE);
    OUTREG32(ACCDET_STATE_SWCTRL, 0);
	#else
	
    // enable ACCDET unit
    OUTREG32(ACCDET_STATE_SWCTRL, ACCDET_SWCTRL_EN);
    OUTREG32(ACCDET_CTRL, ACCDET_ENABLE); 
	#endif
    

}
Пример #2
0
	REGISTER(Y),
	REGISTER(Z),
	REGISTER(I),
	REGISTER(J),
	{ "POP", PUSH_POP },
	{ "PUSH", PUSH_POP },
	{ "PEEK", PEEK },
	{ "SP", SP },
	{ "PC", PC },
	{ "EX", EX },
	NULL
};

struct register_mapping register_value_name_map[] =
{
	REGISTER_VALUE(A),
	REGISTER_VALUE(B),
	REGISTER_VALUE(C),
	REGISTER_VALUE(X),
	REGISTER_VALUE(Y),
	REGISTER_VALUE(Z),
	REGISTER_VALUE(I),
	REGISTER_VALUE(J),
	{ "POP", BRACKETS_UNSUPPORTED },
	{ "PEEK", BRACKETS_UNSUPPORTED },
	{ "PUSH", BRACKETS_UNSUPPORTED },
	{ "SP", PEEK },
	{ "PC", BRACKETS_UNSUPPORTED },
	{ "EX", BRACKETS_UNSUPPORTED },
	NULL
};