想在uboot下开启ecap.2 PWM功能 来控制背光实现开机亮屏。
目前的做法
#define PWMSS2_BASE 0x48304000 #define PWMSS_EPWMCLK_EN BIT(8) /* PWMSS (from arch/arm/include/asm/arch-am33xx/cpu.h) */ struct pwmss_regs { unsigned int idver; unsigned int sysconfig; unsigned int clkconfig; unsigned int clkstatus; }; static int enable_pwm(void) { u16 val; struct pwmss_regs *pwmss = (struct pwmss_regs *)PWMSS2_BASE; printf("pwm: read ...\n"); val = readw(&pwmss->clkconfig); printf("pwm: write ...\n"); writew(val | PWMSS_EPWMCLK_EN , &pwmss->clkconfig); /* --- Some other stuff --- */ }
但是只能打印
pwm: read ...
hank hank:
在uboot命令模式下直接读取:md 0x48304000 1 命令行会卡死。
Nancy Wang:
回复 hank hank:
看一下这个帖子。
e2e.ti.com/…/707195
hank hank:
回复 Nancy Wang:
我参考帖子在uboot下通过控制寄存器开启了pwm输出,但是会出现一个问题:如果uboot开启了这个pwm,那么kernel的pwm会延迟开启(late_initcall(backlight_init);),如果uboot取消这个pwm,那么kernel能在固定的时间开启。我现在希望pwm能在uboot到kernel保持不变,因为它控制着屏幕的背光,如果PWM消失可能会黑屏,有没有什么方法能够保持或者在kernel开启瞬间就开启pwm?谢谢。
yongqing wang:
回复 hank hank:
将kernel启动过程中相关的pwm初始化注释掉不行吗?
hank hank:
回复 yongqing wang:
注释掉之后 进入kernel pwm的输出脚会保持高或者低电频(可能是uboot pwm结束的电频)不变化
yongqing wang:
回复 hank hank:
在uboot也没必要用pwm控制背光吧?
hank hank:
回复 yongqing wang:
硬件是这么设计的。。用 PWM控制背光电压