从dts文件中获取节点和属性的实例一

移动开发 waitig 961℃ 百度已收录 0评论

1.代码位置: kernel-3.18\drivers\misc\mediatek\video\common\aal20\Ddp_pwm.c

2.贴代码:

enum mt65xx_led_mode {
	MT65XX_LED_MODE_NONE,
	MT65XX_LED_MODE_PWM,
	MT65XX_LED_MODE_GPIO,
	MT65XX_LED_MODE_PMIC,
	MT65XX_LED_MODE_CUST_LCM,
	MT65XX_LED_MODE_CUST_BLS_PWM
};

static int g_pwm_led_mode = MT65XX_LED_MODE_NONE;

int disp_pwm_get_cust_led(unsigned int *clocksource, unsigned int *clockdiv)
{
    struct device_node *led_node = NULL;
    int ret = 0;
    int led_mode;
    int pwm_config[5] = { 0 };

    led_node = of_find_compatible_node(NULL, NULL, "mediatek,lcd-backlight");
    if (!led_node) {
        ret = -1;
        PWM_ERR("Cannot find LED node from dts\n");
    } 
    else {
        ret = of_property_read_u32_array(led_node, "pwm_config", pwm_config,ARRAY_SIZE(pwm_config));
        if (!ret) {
            *clocksource = pwm_config[0];
            *clockdiv = pwm_config[1];
        } else {
            PWM_ERR("led dts can not get pwm config data.\n");
        }
        if (g_pwm_led_mode == MT65XX_LED_MODE_NONE) {
            ret = of_property_read_u32(led_node, "led_mode", &led_mode);
            if (!ret) {
                g_pwm_led_mode = led_mode;
            } else {
                PWM_ERR("led dts can not get led mode data.\n");
            }
        }        
    }
    if (ret)
        PWM_ERR("get pwm cust info fail");

    return ret;    
}

3.在dts文件中,有如下代码:

	led6:led@6 {
		compatible = "mediatek,lcd-backlight";
		led_mode = <5>;
		data = <1>;
		pwm_config = <0 0 0 0 0>;
	};


本文由【waitig】发表在等英博客
本文固定链接:从dts文件中获取节点和属性的实例一
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)