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),
};