Beispiel #1
0
static int regmap_sunxi_rsb_reg_read(void *context, unsigned int reg,
				     unsigned int *val)
{
	struct sunxi_rsb_ctx *ctx = context;
	struct sunxi_rsb_device *rdev = ctx->rdev;

	if (reg > 0xff)
		return -EINVAL;

	return sunxi_rsb_read(rdev->rsb, rdev->rtaddr, reg, val, ctx->size);
}
Beispiel #2
0
//disable RTC interrupt
static void disable_rtc_int(void)
{
    u16 reg_val = 0;
    if ( 0 != sunxi_rsb_config(AC100_ADDR,RSB_SADDR_AC100))
    {
        printf("RSB: config fail for ac100\n");
        return ;
    }

    if(sunxi_rsb_read(AC100_ADDR,0x0,(u8*)&reg_val,2))
    {
        printf("=====cannot read rtc 0xd0 =====\n");
        goto __END;
    }
    printf("ac100 reg 0x00 = 0x%x\n",reg_val);


    if(sunxi_rsb_read(AC100_ADDR,0xd0,(u8*)&reg_val,2))
    {
        printf("=====cannot read rtc 0xd0 =====\n");
        goto __END;
    }
    //printf("before====rtc 0xd0 = 0x%x\n",reg_val);
    if(sunxi_rsb_read(AC100_ADDR,0xd1,(u8*)&reg_val,2))
    {
        printf("=====cannot read rtc 0xd0 =====\n");
        goto __END;
    }
    //printf("before====rtc 0xd1 = 0x%x\n",reg_val);

    //set d0 d1
    reg_val = 0;
    if(sunxi_rsb_write(AC100_ADDR,0xd0,(u8*)&reg_val,2))
    {
        printf("==== can't disable rtc 0xd0 int ====\n");
        goto __END;
    }

    reg_val = 1;
    if(sunxi_rsb_write(AC100_ADDR,0xd1,(u8*)&reg_val,2))
    {
        printf("==== cant disable rtc 0xd1 int =====\n");
        goto __END;
    }

    //read d0 d1
    if(sunxi_rsb_read(AC100_ADDR,0xd0,(u8*)&reg_val,2))
    {
        printf("=====cannot read rtc 0xd0 =====\n");
        goto __END;
    }
    printf("ac100 reg 0xd0 = 0x%x\n",reg_val);
    if(sunxi_rsb_read(AC100_ADDR,0xd1,(u8*)&reg_val,2))
    {
        printf("=====cannot read rtc 0xd0 =====\n");
        goto __END;
    }
    printf("ac100 reg 0xd1 = 0x%x\n",reg_val);

__END:
    return ;
}