OUTL
OUTL(bktr, BKTR_GPIO_DATA, temp | (cmd & 0xff));
OUTL(bktr, BKTR_GPIO_DATA, temp | bktr->card.audiomuxs[ idx ]);
OUTL(bktr, BKTR_GPIO_OUT_EN, 0);
OUTL(bktr, BKTR_GPIO_DATA, data);
OUTL(bktr, BKTR_GPIO_OUT_EN, outbits);
OUTL(bktr, BKTR_GPIO_DATA, data & ~BCTV_GPIO_WE);
OUTL(bktr, BKTR_GPIO_DATA, data);
OUTL(bktr, BKTR_GPIO_DATA, ~0);
OUTL(bktr, BKTR_GPIO_OUT_EN, 0);
OUTL(bktr, BKTR_GPIO_OUT_EN, INL(bktr, BKTR_GPIO_OUT_EN) | (1<<5));
OUTL(bktr, BKTR_GPIO_DATA, INL(bktr, BKTR_GPIO_DATA) | (1<<5)); /* write '1' */
OUTL(bktr, BKTR_GPIO_DATA, INL(bktr, BKTR_GPIO_DATA) & ~(1<<5)); /* write '0' */
OUTL(bktr, BKTR_GPIO_DATA, INL(bktr, BKTR_GPIO_DATA) | (1<<5)); /* write '1' */
OUTL(bktr, BKTR_GPIO_OUT_EN, 0);
OUTL(bktr, BKTR_GPIO_OUT_EN, INL(bktr, BKTR_GPIO_OUT_EN) | (1<<5));
OUTL(bktr, BKTR_GPIO_DATA, INL(bktr, BKTR_GPIO_DATA) | (1<<5)); /* write '1' */
OUTL(bktr, BKTR_GPIO_DATA, INL(bktr, BKTR_GPIO_DATA) & ~(1<<5)); /* write '0' */
OUTL(bktr, BKTR_GPIO_DATA, INL(bktr, BKTR_GPIO_DATA) | (1<<5)); /* write '1' */
OUTL(bktr, BKTR_INT_STAT, ALL_INTS_CLEARED);
OUTL(bktr, BKTR_INT_MASK, BT848_INT_MYSTERYBIT |
OUTL(bktr, BKTR_INT_STAT, ALL_INTS_CLEARED);
OUTL(bktr, BKTR_INT_MASK, BT848_INT_MYSTERYBIT |
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
OUTL(bktr, BKTR_INT_STAT, INL(bktr, BKTR_INT_STAT));
OUTL(bktr, BKTR_INT_MASK, BT848_INT_MYSTERYBIT |
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
OUTL(bktr, BKTR_INT_STAT, INL(bktr, BKTR_INT_STAT));
OUTL(bktr, BKTR_INT_MASK, BT848_INT_MYSTERYBIT |
OUTL(bktr, BKTR_GPIO_OUT_EN, *(int *)arg);
OUTL(bktr, BKTR_GPIO_DATA, *(int *)arg);
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
OUTL(bktr, BKTR_RISC_STRT_ADD, bktr->dm_prog->dm_segs->ds_addr);
OUTL(bktr, BKTR_INT_STAT, INL(bktr, BKTR_INT_STAT));
OUTL(bktr, BKTR_RISC_STRT_ADD, bktr->dm_prog->dm_segs->ds_addr);
OUTL(bktr, BKTR_INT_STAT, ALL_INTS_CLEARED);
OUTL(bktr, BKTR_INT_STAT, BT848_INT_RACK | BT848_INT_I2CDONE);
OUTL(bktr, BKTR_I2C_DATA_CTL, data);
OUTL(bktr, BKTR_INT_STAT, BT848_INT_RACK | BT848_INT_I2CDONE);
OUTL(bktr, BKTR_I2C_DATA_CTL, ((addr & 0xff) << 24) | I2C_COMMAND);
OUTL(bktr, BKTR_I2C_DATA_CTL, ((addr & 0xff) << 24) | I2C_COMMAND_878);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* release data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 2); DELAY( BITD ); /* lower data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 0); DELAY( BITD ); /* lower clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 0); DELAY( BITD ); /* lower clock & data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 2); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* release data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 3);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 2);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* float data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* strobe clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 3);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 3);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 2);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* release data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 2); DELAY( BITD ); /* lower data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 0); DELAY( BITD ); /* lower clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 3);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 2);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* float data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* strobe clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 0); DELAY( BITD ); /* lower clock & data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 2); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* release data */
OUTL(bktr, BKTR_GPIO_OUT_EN, INL(bktr, BKTR_GPIO_OUT_EN) | bktr->card.gpio_mux_bits);
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
OUTL(bktr, BKTR_INT_STAT, bktr_status & ~I2C_BITS); /* don't touch i2c */
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
OUTL(bktr, BKTR_RISC_STRT_ADD, bktr->dm_prog->dm_segs->ds_addr);
OUTL(bktr, BKTR_INT_MASK, BT848_INT_MYSTERYBIT |
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
OUTL(bktr, BKTR_INT_MASK, BT848_INT_MYSTERYBIT);
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
OUTL(bktr, BKTR_SRESET, 0xf);
OUTL(bktr, BKTR_INT_STAT, ALL_INTS_CLEARED);
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);