All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/9 v2] Fix and Re-organise PWM Timer
@ 2013-02-28 10:59 Akshay Saraswat
  2013-02-28 10:59 ` [U-Boot] [PATCH 1/9 v2] Exynos: Change get_timer() to work correctly Akshay Saraswat
                   ` (8 more replies)
  0 siblings, 9 replies; 18+ messages in thread
From: Akshay Saraswat @ 2013-02-28 10:59 UTC (permalink / raw)
  To: u-boot

This patch set tries to fix few bugs in timer and re-organises PWM
clock code.

Changes since v1:
        - Patch-1: Added "Acked-by: Simon Glass".
        - Patch-2: Added "Acked-by: Simon Glass".
        - Patch-3: Added "Acked-by: Simon Glass".
        - Patch-4: Added "Acked-by: Simon Glass".
        - Patch-5: Added "Acked-by: Simon Glass".
        - Patch-6: None.
        - Patch-7: Fixed few nits.
        - Patch-8: Added "Acked-by: Simon Glass".
	- Patch-9: Restored get_pwm_clk call in case of non-exynos5 cpu.

Akshay Saraswat (9):
  Exynos: Change get_timer() to work correctly
  Exynos: Add timer_get_us function
  Exynos: pwm: Fix two bugs in the exynos pwm configuration code
  Exynos: Avoid a divide by zero by specifying a non-zero period for
    pwm 4
  Exynos: Tidy up the pwm_config function in the exynos pwm driver
  Exynos: Add peripherial id for pwm
  Exynos: clock: Add generic api to get the clk freq
  Exynos: clock: Correct pwm source clk selection
  Exynos: pwm: Use generic api to get pwm clk freq

 arch/arm/cpu/armv7/exynos/clock.c         | 138 ++++++++++++++++++++++++++++++
 arch/arm/cpu/armv7/s5p-common/pwm.c       |  57 +++++++-----
 arch/arm/cpu/armv7/s5p-common/timer.c     | 117 ++++++++++++-------------
 arch/arm/include/asm/arch-exynos/clk.h    |  17 ++++
 arch/arm/include/asm/arch-exynos/periph.h |   5 ++
 board/samsung/smdk5250/setup.h            |   2 +-
 6 files changed, 249 insertions(+), 87 deletions(-)

-- 
1.8.0

^ permalink raw reply	[flat|nested] 18+ messages in thread
* [U-Boot] [PATCH 3/9 v2] Exynos: pwm: Fix two bugs in the exynos pwm configuration code
@ 2013-03-28 14:20 Akshay Saraswat
  0 siblings, 0 replies; 18+ messages in thread
From: Akshay Saraswat @ 2013-03-28 14:20 UTC (permalink / raw)
  To: u-boot

Hi Minkyu,

Thanks for your comments.

>Dear Akshay,
>
>On 28/02/13 19:59, Akshay Saraswat wrote:
>> 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.
>> 
>> @@ -167,20 +167,24 @@ int pwm_init(int pwm_id, int div, int invert)
>>  	val |= (div & 0xf) << MUX_DIV_SHIFT(pwm_id);
>>  	writel(val, &pwm->tcfg1);
>>  
>> -	timer_rate_hz = get_pwm_clk() / ((prescaler + 1) *
>> -			(div + 1));
>> +	if (pwm_id == 4) {
>> +		/*
>> +		 * TODO(sjg): Use this as a countdown timer for now. We count
>> +		 * down from the maximum value to 0, then reset.
>> +		 */
>> +		ticks_per_period = -1UL;
>> +	} else {
>> +		const unsigned long pwm_hz = 1000;
>> +		unsigned long timer_rate_hz = get_pwm_clk() /
>> +			((prescaler + 1) * (1 << div));
>
>good catch. thanks.
>
>>  
>> -	timer_rate_hz = timer_rate_hz / CONFIG_SYS_HZ;
>> +		ticks_per_period = timer_rate_hz / pwm_hz;
>
>why don't you use CONFIG_SYS_HZ?
>pwm_hz seems to constant.

CONFIG_SYS_HZ may change with boards and as per needs.
But requirement here is for a constant value 1000
for all calculations which should remain 1000 only.
That's why using pwm_hz and not CONFIG_SYS_HZ.

>
>> +	}
>>  
>>  	/* set count value */
>>  	offset = pwm_id * 3;
>>  
>> -	/*
>> -	 * TODO(sjg): Use this as a countdown timer for now. We count down
>> -	 * from the maximum value to 0, then reset.
>> -	 */
>> -	timer_rate_hz = -1;
>> -	writel(timer_rate_hz, &pwm->tcntb0 + offset);
>> +	writel(ticks_per_period, &pwm->tcntb0 + offset);
>>  
>>  	val = readl(&pwm->tcon) & ~(0xf << TCON_OFFSET(pwm_id));
>>  	if (invert && (pwm_id < 4))
>> 
>
>Thanks,
>Minkyu Kang.
>

Regards,
Akshay Saraswat

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2013-03-28 14:20 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-28 10:59 [U-Boot] [PATCH 0/9 v2] Fix and Re-organise PWM Timer Akshay Saraswat
2013-02-28 10:59 ` [U-Boot] [PATCH 1/9 v2] Exynos: Change get_timer() to work correctly Akshay Saraswat
2013-03-28  5:52   ` Minkyu Kang
2013-02-28 10:59 ` [U-Boot] [PATCH 2/9 v2] Exynos: Add timer_get_us function Akshay Saraswat
2013-02-28 10:59 ` [U-Boot] [PATCH 3/9 v2] Exynos: pwm: Fix two bugs in the exynos pwm configuration code Akshay Saraswat
2013-03-28  5:53   ` Minkyu Kang
2013-02-28 10:59 ` [U-Boot] [PATCH 4/9 v2] Exynos: Avoid a divide by zero by specifying a non-zero period for pwm 4 Akshay Saraswat
2013-03-28  5:53   ` Minkyu Kang
2013-02-28 10:59 ` [U-Boot] [PATCH 5/9 v2] Exynos: Tidy up the pwm_config function in the exynos pwm driver Akshay Saraswat
2013-02-28 10:59 ` [U-Boot] [PATCH 6/9 v2] Exynos: Add peripherial id for pwm Akshay Saraswat
2013-02-28 10:59 ` [U-Boot] [PATCH 7/9 v2] Exynos: clock: Add generic api to get the clk freq Akshay Saraswat
2013-02-28 13:37   ` Simon Glass
2013-03-28  5:52   ` Minkyu Kang
2013-02-28 10:59 ` [U-Boot] [PATCH 8/9 v2] Exynos: clock: Correct pwm source clk selection Akshay Saraswat
2013-02-28 10:59 ` [U-Boot] [PATCH 9/9 v2] Exynos: pwm: Use generic api to get pwm clk freq Akshay Saraswat
2013-02-28 13:40   ` Simon Glass
2013-03-28  5:52   ` Minkyu Kang
  -- strict thread matches above, loose matches on Subject: below --
2013-03-28 14:20 [U-Boot] [PATCH 3/9 v2] Exynos: pwm: Fix two bugs in the exynos pwm configuration code Akshay Saraswat

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.