原创:kylin_zeng http://blog.chinaunix.net/uid/23795897.html
lcd 背光灯 pwm board配置。
阅读(3) | 评论(0) | 转发(0) |
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
lcd 背光灯 pwm board配置。
点击(此处)折叠或打开
- #ifdef CONFIG_BACKLIGHT_RK29_BL
- #define PWM_ID 3
- #define PWM_MODE PWM3
- #define PWM_EFFECT_VALUE 1
-
- static struct platform_device rk29_device_backlight = {
- .name = "rk29_backlight",
- .id = -1,
- .dev = {
- .platform_data = &rk29_bl_info,
- }
- };
-
-
- static struct rk29_bl_info rk29_bl_info = {
- .min_brightness = 120,//65, //value must between 0~255
- .max_brightness = 255,//150, //value must between 0~255
- .brightness_mode =BRIGHTNESS_MODE_CONIC,
- .pre_div = 30 * 1000, // pwm output clk: 30k;
- .pwm_id = PWM_ID, //3
- .bl_ref = PWM_EFFECT_VALUE, //1
- .io_init = rk29_backlight_io_init,
- .io_deinit = rk29_backlight_io_deinit,
- .pwm_suspend = rk29_backlight_pwm_suspend,
- .pwm_resume = rk29_backlight_pwm_resume,
- };
-
-
- static int rk29_backlight_io_init(void)
- {
- int ret = 0;
- iomux_set(PWM_MODE);
- return ret;
- }
-
- static int rk29_backlight_io_deinit(void)
- {
- int ret = 0, pwm_gpio;
- pwm_gpio = iomux_mode_to_gpio(PWM_MODE);
- gpio_request(pwm_gpio, NULL);
- gpio_direction_output(pwm_gpio, GPIO_LOW);
- return ret;
- }
-
-
- static int rk29_backlight_pwm_suspend(void)
- {
- int ret = 0, pwm_gpio;
- pwm_gpio = iomux_mode_to_gpio(PWM_MODE);
- if (gpio_request(pwm_gpio, NULL)) {
- printk("func %s, line %d: request gpio fail\n", __FUNCTION__, __LINE__);
- return -1;
- }
- gpio_direction_output(pwm_gpio, GPIO_LOW);
- return ret;
- }
-
- static int rk29_backlight_pwm_resume(void)
- {
- int pwm_gpio = iomux_mode_to_gpio(PWM_MODE);
- gpio_free(pwm_gpio);
- iomux_set(PWM_MODE);
- return 0;
- }
-
- int iomux_mode_to_gpio(unsigned int mode)
- {
- struct union_mode m;
-
- if(!mode_is_valid(mode)){
- INFO("<%s> mode(0x%x) is invalid\n", __func__, mode);
- return INVALID_GPIO;
- }
-
- m.mode = mode;
- return PIN_BASE + m.mux.bank * 32 + (m.mux.goff - 0x0A) * 8 + m.mux.off;
- }
相关热门文章
给主人留下些什么吧!~~
评论热议