驱动编译
CONFIG_ROCKCHIP_REMOTECTL=y CONFIG_ROCKCHIP_REMOTECTL_PWM=y
一. rkxx_remotectl.c
1.1.kerneldriversinput emotectl kxx_remotectl.c
用户码
case RMC_USERCODE:
{
ddata->scanData <<= 1;
ddata->count ++;
// printk("RMC_USERCODE,period=%d,count=%d
",ddata->period,ddata->count );
if ((TIME_BIT1_MIN < ddata->period) && (ddata->period < TIME_BIT1_MAX)){
ddata->scanData |= 0x01;
}
if (ddata->count == 0x10){//16 bit user code
// printk("u=0x%x
",((ddata->scanData)&0xFFFF));
if (remotectl_keybdNum_lookup(ddata)){
ddata->state = RMC_GETDATA;
ddata->scanData = 0;
ddata->count = 0;
}else{ //user code error
ddata->state = RMC_PRELOAD;
}
}
}
break;
键值
case RMC_GETDATA:
{
ddata->count ++;
ddata->scanData <<= 1;
if ((TIME_BIT1_MIN < ddata->period) && (ddata->period < TIME_BIT1_MAX)){
ddata->scanData |= 0x01;
}
if (ddata->count == 0x10){
// printk("RMC_GETDATA=%x
",(ddata->scanData&0xFFFF));
if ((ddata->scanData&0x0ff) == ((~ddata->scanData >> 8)&0x0ff)){
if (remotectl_keycode_lookup(ddata)){
ddata->press = 1;
二.rockchip_pwm_remotectl.c
kerneldriversinput emotectl ockchip_pwm_remotectl.c