u-boot DM初始化流程

initr_dm

  dm_init_and_scan

    dm_init    ((1)创建根设备root的udevice,存放在gd->dm_root中 (2)初始化uclass链表gd->uclass_root)

    dm_scan_platdata    跳过

    dm_extended_scan_fdt

      dm_scan_fdt

        dm_scan_fdt_node

          lists_bind_fdt

            device_bind_with_driver_data

              device_bind_common

device_probe

driver/core/device.c

主要工作归纳如下:

    分配设备的私有数据
    对父设备进行probe
    执行probe device之前uclass需要调用的一些函数
    调用driver的ofdata_to_platdata,将dts信息转化为设备的平台数据
    调用driver的probe函数
    执行probe device之后uclass需要调用的一些函数

原文地址:https://www.cnblogs.com/idyllcheung/p/12056368.html