Example #1
0
int aml_callkey_resume(struct platform_device *pdev)
{
    int v=0;
#ifdef CONFIG_AMLOGIC_MODEM
    if(!get_modemPower()){
    printk("aml_callkey_resume, modem is power off\n");
    return 0;
    }
#endif

    if (READ_AOBUS_REG(AO_RTI_STATUS_REG2) == CALL_FLAG) {
        printk("aml_callkey_resume, uboot tell me call wakeup system\n");
        v=1;
    }else{
        v = gp_call_key_workdata->callkey_pdata->get_phone_ring_value();
        printk("aml_callkey_resume, get_phone_ring_value is %d\n",v);
    }
    
    if(0 < v){
        printk("aml_callkey_resume, key %d pressed.\n", KEY_PHONERING);
        requestWakeLock(gp_call_key_workdata);                   
        input_report_key(input, KEY_PHONERING, 1);
        input_sync(input);

        mod_timer(&gp_call_key_workdata->wk_timer,jiffies+msecs_to_jiffies(UNLOCK_DELAYTIME));
        WRITE_AOBUS_REG(AO_RTI_STATUS_REG2, 0);
    }
    return 0 ;
}
static int ir_init()
{
    unsigned int control_value;
    
    //mask--mux gpioao_7 to remote
    SET_AOBUS_REG_MASK(AO_RTI_PIN_MUX_REG,1<<0);
    
    //max frame time is 80ms, base rate is 20us
    control_value = 3<<28|(0x9c40 << 12)|0x13;
    WRITE_AOBUS_REG(AO_IR_DEC_REG0, control_value);
     
    /*[3-2]rising or falling edge detected
      [8-7]Measure mode
    */
    control_value = 0x8574;
    WRITE_AOBUS_REG(AO_IR_DEC_REG1, control_value);
    
    return 0;
}
Example #3
0
int do_irtest(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
    unsigned int i;
    printf("Enter NEC IR testing function ...\n");
    SET_AOBUS_REG_MASK(AO_RTI_PIN_MUX_REG, 1<<0);//set IR pinmux
    WRITE_AOBUS_REG(AO_IR_DEC_LDR_ACTIVE, 0x01d801ac);
    WRITE_AOBUS_REG(AO_IR_DEC_LDR_IDLE, 0x00f800ca);
    WRITE_AOBUS_REG(AO_IR_DEC_LDR_REPEAT, 0);
    WRITE_AOBUS_REG(AO_IR_DEC_BIT_0, 0x0044002c);
    WRITE_AOBUS_REG(AO_IR_DEC_REG0, 0x30fa0013);
    WRITE_AOBUS_REG(AO_IR_DEC_STATUS, 0x08915c00);
    WRITE_AOBUS_REG(AO_IR_DEC_REG1, 0x0000be70);
    for(i = 0; i < 200; i++){
        msleep(50);
        if(READ_AOBUS_REG_BITS(AO_IR_DEC_STATUS, 3, 1))
            printf("key = 0x%08x\n", READ_AOBUS_REG(AO_IR_DEC_FRAME));
        else
            printf("No key !!!\n");
        }
    return 0;
}