mx27的pwmo模块作lcd背光驱动调试
来源:互联网 发布:淘宝仓库员工作流程 编辑:程序博客网 时间:2024/05/01 15:02
打算使用pwmo模块进行pwm作为lcd的背光驱动。看了一下:
pwmo的相关设置寄存器有
PWMCR 0x10006000(control)
PWMSR 0x10006004(status)
PWMIR 0x10006008(interrupt)
PWMSAR 0x
PWMPR 0x10006010(period)
PWMCNR 0x10006014(counter)
看了一下,pwmo有以下特性,当fifo里的数据用完后,他会以最后一个数据为设置,持续产生pwm波,这就免得我总是写数据,进行一个pwm设定后就不再管了。并且设置好后,若最后一个数据为0,则pwmo持续输出低电平,这样在我想关背光时,只用写入0就可以了,无需进行其它操作,看来他还很适合作背光使用。
这里进行如下初始化:
0x10006000 =0x00030000 //init
0x10006010 =0x0000000D //设置period
0x
0x10006000 =0x00030001 //开始en
另外:
关闭背光:0x
调暗: 0x
写了一个小驱动测了一下,完全达到了要求,代码如下:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/sysdev.h>
#include <linux/ptrace.h>
#include <asm/hardware.h>
#include <asm/irq.h>
#include <asm/arch/irqs.h>
#include <asm/mach/irq.h>
#include <asm/io.h>
#include <asm/arch/gpio.h>
#include <asm-arm/arch/mx27_pins.h>
MODULE_LICENSE("Dual BSD/GPL"); //必须同意一个LICENSE
#define PTB_OCR1 0x10015104
static int led_init(void)
{
printk(KERN_INFO " LED was initted/n");
init_led();
set_led_on();
return 0;
}
//-------------------------------------------------------------------------
static void led_exit(void)
{
printk(KERN_INFO " LED was exit/n ");
set_led_off();
}
//-------------------------------------------------------------------------
init_led()
{
//printk(KERN_INFO " PTB_DR is %x/n ",__raw_readl(AIPI_IO_ADDRESS(0x
__raw_writel(__raw_readl(AIPI_IO_ADDRESS(0x10015400))|0x00000020,AIPI_IO_ADDRESS(0x10015400));//direction
__raw_writel(__raw_readl(AIPI_IO_ADDRESS(0x10015420))&0xffffffdf,AIPI_IO_ADDRESS(0x10015420));//gpio1 OR multiplex0
__raw_writel(__raw_readl(AIPI_IO_ADDRESS(0x10015438))&0xffffffdf,AIPI_IO_ADDRESS(0x10015438));//0,primary;1,alternate
__raw_writel(0x00030000,AIPI_IO_ADDRESS(0x10006000));//init
__raw_writel(0x0000000D,AIPI_IO_ADDRESS(0x10006010));//period
__raw_writel(0x00000008,AIPI_IO_ADDRESS(0x
__raw_writel(0x00030001,AIPI_IO_ADDRESS(0x10006000));//en
printk(KERN_INFO " pwm init OK!!! ");
}
//-------------------------------------------------------------------------
set_led_on()
{
__raw_writel(0x00030001,AIPI_IO_ADDRESS(0x10006000));//en
}
//-------------------------------------------------------------------------
set_led_off()
{
__raw_writel(0x00000000,AIPI_IO_ADDRESS(0x
}
//-------------------------------------------------------------------------
module_init(led_init);
module_exit(led_exit);
MODULE_AUTHOR("coolfei");
MODULE_DESCRIPTION("linu driver test");
MODULE_ALIAS("linu driver module test");
安装模块则有波形出来,卸载模块则输出低电平,完全可以。
- mx27的pwmo模块作lcd背光驱动调试
- LCD背光设备的 驱动框架2
- LCD背光灯驱动
- LCD 背光驱动移植
- LCD背光驱动 --Backlight
- 添加LCD背光驱动
- 模块[LCD]_Android LCD(四):LCD驱动调试篇
- Android中LCD背光驱动
- Android中LCD背光驱动
- MTK LCD+KEYPAD背光驱动
- android中背光LCD驱动
- Android中LCD背光驱动
- Android中LCD背光驱动
- Android中LCD背光驱动
- Android中LCD背光驱动
- LCD背光驱动在2440上的实例开发
- linux led驱动,lcd背光驱动
- MTK LCD背光驱动——背光芯片
- 移动应用业务的思考
- Java GUI的发展和演化
- asp翻译成jsp??帮帮忙
- SWT, SWING, AWT各自的特点
- GridView用法(一)
- mx27的pwmo模块作lcd背光驱动调试
- 开源或免费的ASP.NET web应用列表
- 好的软件架构设计(zz)
- JPA
- poj题目分类
- 日本:“三国志新闻”
- Update 多个关联表SQL的写法
- C#正则表达式小结
- 最近比较烦!