Exynos: pwm: Fix two bugs in the exynos pwm configuration code
authorGabe Black <gabeblack@google.com>
Thu, 28 Mar 2013 04:32:18 +0000 (04:32 +0000)
committerMinkyu Kang <mk7.kang@samsung.com>
Mon, 1 Apr 2013 05:02:08 +0000 (14:02 +0900)
commitc059f274ade1a5f7d1f39927d8b31a41cba9034c
treef1b87289d425e6b2696bbd5aebe0e5048537b914
parentf24869d3a8f6646c2d207057719e6fa0a8f31eb0
Exynos: pwm: Fix two bugs in the exynos pwm configuration code

First, the "div" value was being used incorrectly to compute the frequency of
the PWM timer. The value passed in is a constant which reflects the value
that would be found in a configuration register, 0 to 4. That should
correspond to a scaling factor of 1, 2, 4, 8, or 16, 1 << div, but div + 1 was
being used instead.

Second, the reset value of the timers were being calculated to give an overall
frequency, thrown out, and set to a maximum value. This was done so that PWM 4
could be used as the system clock by counting down from a high value, but it
was applied indiscriminantly. It should at most be applied only to PWM 4.

This change also takes the opportunity to tidy up the pwm_init function.

Test with command "sf probe 1:0; time sf read 40008000 0 1000".
Try with different numbers of bytes and see that sane values are obtained
Build and boot U-boot with this patch, backlight works properly.

Signed-off-by: Gabe Black <gabeblack@google.com>
Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
arch/arm/cpu/armv7/s5p-common/pwm.c