Hey, i got it working. Both reading and writing.
I'm using the clk_get_sys("hbus", NULL) function to get the clock. It should work after registering it like you do (as i saw it in your patch - it helped me a lot!) in the clk-imx28.c file.
The other thing that has changed is some regulator's name (the name is already set in the device tree). You should change it in the board file mach-mxs.c to "vddio-sd0":
static struct fsl_otp_data otp_data = {
.fuse_name = (char **)bank_reg_desc,
.regulator_name = "vddio-sd0",
.fuse_num = BANKS * BANK_ITEMS,
};
Now i get a warning when the driver creates the sysfs entries if the kernel is compiled with CONFIG_DEBUG_LOCK_ALLOC set. It seems to be a problem with the kernel itself because the sysfs driver is doing things to "make lockdep happy"... but anyway, the OTP driver works.