riic_writeb
riic_writeb(riic, (riic_readb(riic, reg) & ~clear) | set, reg);
riic_writeb(riic, 0, RIIC_ICSR2);
riic_writeb(riic, ICIER_NAKIE | ICIER_TIE, RIIC_ICIER);
riic_writeb(riic, start_bit, RIIC_ICCR2);
riic_writeb(riic, val, RIIC_ICDRT);
riic_writeb(riic, ICCR2_SP, RIIC_ICCR2);
riic_writeb(riic, ICCR2_SP, RIIC_ICCR2);
riic_writeb(riic, 0, RIIC_ICSR2);
riic_writeb(riic, 0, RIIC_ICIER);
riic_writeb(riic, ICCR1_IICRST | ICCR1_SOWP, RIIC_ICCR1);
riic_writeb(riic, ICMR1_CKS(cks), RIIC_ICMR1);
riic_writeb(riic, brh | ICBR_RESERVED, RIIC_ICBRH);
riic_writeb(riic, brl | ICBR_RESERVED, RIIC_ICBRL);
riic_writeb(riic, 0, RIIC_ICSER);
riic_writeb(riic, ICMR3_ACKWP | ICMR3_RDRFS, RIIC_ICMR3);
riic_writeb(riic, 0, RIIC_ICIER);