#define NUMARGS(...) (sizeof((int[]){__VA_ARGS__})/sizeof(int))
#define write_reg(par, ...) \
do { \
write_reg2(par, NUMARGS(__VA_ARGS__), __VA_ARGS__); \
} while (0)
void write_reg2(int par,int len, ...) {
int i;
int para;
va_list args;
pr_err("write_reg start \n");
va_start(args, len);
para = va_arg(args, int);
pr_err("first arg %x \n",para);
i=len;
i--;
while(i--){
para = va_arg(args, int);
pr_err("arg %x \n",para);
}
va_end(args);
}
调用 :
write_reg(par, 0xCF, 0x00, 0x83, 0x30);
write_reg(par, 0xED, 0x64, 0x03, 0x12, 0x81);
write_reg(par, 0xE8, 0x85, 0x01, 0x79);
write_reg(par, 0xCB, 0x39, 0X2C, 0x00, 0x34, 0x02);
write_reg(par, 0xF7, 0x20);
write_reg(par, 0xEA, 0x00, 0x00);