OUTL
#define OUTONL(r, m) OUTL(r, INL(r) | (m))
#define OUTOFFL(r, m) OUTL(r, INL(r) & ~(m))
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, start));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, no_data));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, cleanup));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, cleanup));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, start));
OUTL (nc_temp, vtophys (newcmd));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, dispatch));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, checkatn));
OUTL (nc_dsa, CCB_PHYS (cp, phys));
OUTL (nc_dsp, NCB_SCRIPTH_PHYS (np, getcc));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, dispatch));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, msg_bad));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, clrack));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, msg_bad));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, msg_bad));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, clrack));
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, reselect));
OUTL (nc_temp, ncr_wr);
OUTL (nc_dsp, pc);
OUTL (nc_pmjad1, SCRIPTB_BA (np, pm_handle));
OUTL (nc_pmjad2, SCRIPTB_BA (np, pm_handle));
OUTL (nc_mmws, np->scr_ram_seg);
OUTL (nc_mmrs, np->scr_ram_seg);
OUTL (nc_sfs, np->scr_ram_seg);
OUTL (nc_dsa, np->hcb_ba);
OUTL (nc_dsa, 0xffffff);
OUTL (nc_temp, dsp);
OUTL (nc_temp, newcmd);
OUTL(nc_dsa, np->hcb_ba);
OUTL (nc_temp, dp_scr);
OUTL (nc_temp, sym_wr);
OUTL (nc_dsa, np->hcb_ba);
#define OUTONL(r, m) OUTL(r, INL(r) | (m))
#define OUTOFFL(r, m) OUTL(r, INL(r) & ~(m))
OUTL (nc_dsp, (v)); \
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 & ~BCTV2_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_MASK, ALL_INTS_DISABLED);
OUTL(bktr, BKTR_SRESET, 0xf);
OUTL(bktr, BKTR_INT_STAT, ALL_INTS_CLEARED);
OUTL(bktr, BKTR_GPIO_OUT_EN, INL(bktr, BKTR_GPIO_OUT_EN) & ~bktr->card.gpio_mux_bits);
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, vtophys(bktr->dma_prog));
OUTL(bktr, BKTR_INT_STAT, INL(bktr, BKTR_INT_STAT));
OUTL(bktr, BKTR_RISC_STRT_ADD, vtophys(bktr->dma_prog));
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_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, vtophys(bktr->dma_prog));
OUTL(bktr, BKTR_INT_MASK, BT848_INT_MYSTERYBIT |
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
OUTL(bktr, BKTR_INT_MASK, BT848_INT_MYSTERYBIT); /* if you take this out triton
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_MASK, ALL_INTS_DISABLED);
OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);