1. 程式人生 > >uboot中使用device tree

uboot中使用device tree

最近搞uboot 驅動,搞了好久才發現uboot的dts規則跟kernel不一樣,

uboot驅動務必要加入bind函式,否則,驅動不會被初始化。

示例如下:

static int mipi_dsi_bind(struct udevice *dev)
{
        
    printf("Eric: mipi_dsi bind!\n");
    return 0;


}


int rk_mipi_dsi_probe(struct udevice *dev)
{
    printk("Eric: mipi_dsi probe\n");
    return 0;
}


static const struct dm_display_ops mipi_rockchip_ops = {                                                                                  
};


static const struct udevice_id rockchip_mipi_ids[] = { 
    { .compatible = "rockchip,rk3399_mipi_dsi" },
    { } 
};


U_BOOT_DRIVER(mipi_rockchip) = { 
    .name   = "mipi_rockchip",
    .id = UCLASS_DISPLAY,
    .of_match = rockchip_mipi_ids,
    //.ofdata_to_platdata   = rk_mipi_ofdata_to_platdata,
    .bind   = mipi_dsi_bind,
    .probe  = rk_mipi_dsi_probe,
    .ops    = &mipi_rockchip_ops,
    //.priv_auto_alloc_size = sizeof(struct rk_mipi_priv),
};