I got a request from Mike to post the updates I'd done to the generic struct clk so this is a repost of the patches Jeremy did plus what I've got sitting on top of them. Everything is exactly the same as the last posting, just resending.