Caesar, On Thu, Jul 24, 2014 at 3:21 AM, Caesar Wang <caesar.wang@xxxxxxxxxxxxxx> wrote: > +static const struct rockchip_pwm_data pwm_data_v1 = { > + .regs.duty = PWM_HRC, > + .regs.period = PWM_LRC, > + .regs.cntr = PWM_CNTR, > + .regs.ctrl = PWM_CTRL, > + .prescaler = PRESCALER, > + .set_enable = rockchip_pwm_set_enable_v1, > +}; > + > +static const struct rockchip_pwm_data pwm_data_v2 = { > + .regs.duty = PWM_LRC, > + .regs.period = PWM_HRC, > + .regs.cntr = PWM_CNTR, > + .regs.ctrl = PWM_CTRL, > + .prescaler = PRESCALER-1, > + .set_enable = rockchip_pwm_set_enable_v2, > +}; > + > +static const struct rockchip_pwm_data pwm_data_vop = { > + .regs.duty = PWM_LRC, > + .regs.period = PWM_HRC, > + .regs.cntr = PWM_CTRL, > + .regs.ctrl = PWM_CNTR, Did you really mean to flip CTRL and CNTR here? If so, that's super confusing and deserves a comment. AKA, I think the above should not be: + .regs.cntr = PWM_CTRL, + .regs.ctrl = PWM_CNTR, ...but should be + .regs.cntr = PWM_CNTR, + .regs.ctrl = PWM_CTRL, If you didn't mean to flip CTRL and CNTR here, then just get rid of pwm_data_vop and refer to pwm_data_v2. In fact, I'd suggest that you totally remove the "rockchip,vop-pwm" since there's nothing different between "rockchip,rk3288-pwm" and "rockchip,vop-pwm". Have you validated Thierry's suggestion to allow you to access your memory range? -Doug -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html