struct dio200_subdev_8254 {
unsigned int ofs; /* Counter base offset */
- unsigned int gat_sce_ofs; /* GAT_SCE base address */
int which; /* Bit 5 of CLK_SCE or GAT_SCE */
unsigned int clock_src[3]; /* Current clock sources */
unsigned int gate_src[3]; /* Current gate sources */
subpriv->gate_src[counter_number] = gate_src;
byte = gat_sce(subpriv->which, counter_number, gate_src);
- dio200_write8(dev, subpriv->gat_sce_ofs, byte);
+ dio200_write8(dev, DIO200_GAT_SCE(subpriv->ofs >> 3), byte);
return 0;
}
spin_lock_init(&subpriv->spinlock);
subpriv->ofs = offset;
- if (board->has_clk_gat_sce) {
- /* Derive CLK_SCE and GAT_SCE register offsets from
- * 8254 offset. */
- subpriv->gat_sce_ofs = DIO200_GAT_SCE(offset >> 3);
+ if (board->has_clk_gat_sce)
subpriv->which = (offset >> 2) & 1;
- }
/* Initialize channels. */
for (chan = 0; chan < 3; chan++) {