天天看点

提升知识点---使用设备数进行led控制

haled{
            #address-cell = <1>;   //表示起始地址占用一个字节的长度。
            #size-cells = <1>;       //表示地址占用一个字节长
            compatible = "alpa-led";   //表示属性的兼容属性为"alpa-led"
            status = "okay";          // 表示设置的状态为“okay”
             reg = < 0X020C406C 0X04 /* CCM_CCGR1_BASE */
                          0X020E0068 0X04 /* SW_MUX_GPIO1_IO03_BASE */
                          0X020E02F4 0X04 /* SW_PAD_GPIO1_IO03_BASE */
                          0X0209C000 0X04 /* GPIO1_DR_BASE */
                          0X0209C004 0X04 >; /* GPIO1_GDIR_BASE */
};    //表示驱动里面所要使用的寄存器物理地址 ,对应寄存器的首地址。
核心驱动代码:
//编写驱动入口函数
static int __init led_init(void)
{
        u32 val = 0;
        //获取设备树中的属性数据
dtsled.nd = of_find_node_by_path("/haled");
     
       //获取compatible对应的属性内容
proper = of_find_property(dtsled.nd,"compatible",NULL);
    //获取reg中的属性内容
  ret = of_property_read_u32_array(dtsled.nd,"reg",regdata,10);
   //核心将获取对应寄存器的地址
}      

继续阅读