switch (pwm_id) {
case 0:
return (struct pwm_regs *)PWM1_BASE_ADDR;
- break;
case 1:
return (struct pwm_regs *)PWM2_BASE_ADDR;
- break;
case 2:
return (struct pwm_regs *)PWM3_BASE_ADDR;
- break;
case 3:
return (struct pwm_regs *)PWM4_BASE_ADDR;
- break;
default:
printf("unknown pwm_id: %d\n", pwm_id);
break;
*prescale = *period_c / 0x10000 + 1;
*period_c /= *prescale;
- c = (unsigned long long)(*period_c * duty_ns);
+ c = *period_c * (unsigned long long)duty_ns;
do_div(c, period_ns);
*duty_c = c;