On Mon, Jan 19, 2015 at 04:58:50PM +0000, Charles Keepax wrote: > Similar to the power up the delay needs to be cumulative as the > write sequences will queue themselves up if the last one is still > running when the next one is started. It is fairly long for a > udelay I will replace with an msleep(1) instead. Given that you are needing to delay per output it's probably going to be better to do the coalescing of the delays - record how much delay is going to be needed when stopping the clock then do that at once when doing that. It's going to be more friendly for the rest of the system to see a single delay than to delay, schedule the thread again and then almost immediately enter another delay.