Comment 1 by Nikolaus Schaller, Jan 26, 2010
Here some analysis of the OMAP3530 programming document
* Chapter 16.2.4.6 Pulse-Width Modulation
* according to 16.3 General-Purpose (GP) Timer Registers
there are 12 instances of the timers to choose from
* each timer has approx. 13 registers to define
=> code will be something like
struct timer
{
}
struct timer *addr=(struct timer *) 0x4831 8000; // timer base
addresses are not evenly distributed!!!
addr->register = ...
* 7.4.4 Pad Functional Multiplexing and Configuration
* 16.2.1 GP Timers Overview
=> we have to choose the correct timer! On GTA04E we are
connected to Timer 10; on GTA04 it will be Timer 11
* Table 16-15. GPTIMER9 to GPTIMER12 Register Summary
=> base address is 0x4808 6000
Comment 2 by Nikolaus Schaller, Jan 26, 2010
If possible, the Pulse should be synchronized to vsync to avoid flicker and moiree patterns. But: VSNC is approx. 50 Hz while the PWM signal should be approx. 1 kHz according to the TPS61041 data sheet. So we may have to rely on the C204 capacity (4.7 uF).
Comment 3 by Nikolaus Schaller, Jan 26, 2010
the required struct already exist in
include/asm-arm/arch-omap3/cpu.h:struct gptimer {
it is used in
cpu/arm_cortexa8/omap3/clock.c: struct gptimer *gpt1_base =
(struct gptimer *)OMAP34XX_GPT1;
cpu/arm_cortexa8/omap3/timer.c:static struct gptimer *timer_base =
(struct gptimer *)CONFIG_SYS_TIMERBASE;
There is also a constant
include/asm-arm/arch-omap3/omap3.h:#define OMAP34XX_GPT10
0x48086000
So, everything we need may be reduced to something like
struct gptimer *gpt_base = (struct gptimer *)OMAP34XX_GPT10; //
use GPT11 for GTA04
writel(value, &gpt_base->registername);
And of course setting the MUX.
Note: as written elsewhere we should try to sync the PWM impulse to
VSYNC of the display (there may be an Interrupt or DMA request input
for the timer).
Comment 4 by Nikolaus Schaller, Feb 18, 2017
We have not required this feature for 7 years... So there is obviously no need to implement it in U-Boot :)
Status:
WontFix
Sign in to reply to this comment.
Reported by Nikolaus Schaller, Jan 26, 2010