基于Linux 3.10.49内核的gpio流程分析(2)

static int __of_device_is_compatible(const struct device_node *device,
                          const char *compat)
    {
        const char* cp;
        int cplen, l;
   
        cp = __of_get_property(device, "compatible", &cplen);  // 这里就是获取device的compatible的字符串信息
        if (cp == NULL)
            return 0;
        while (cplen > 0) {
            if (of_compat_cmp(cp, compat, strlen(compat)) == 0)  // 对比device的compatible的字符串信息和driver的compatible的字符串信息是否相等
                return 1;
            l = strlen(cp) + 1;
            cp += l;
            cplen -= l;
        }
   
        return 0;
    }

8-2-1. drivers/base/dd.c : driver_probe_device(...)
    driver_probe_device(...) --> really_probe(...)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7a4f0be45d6857b99dd90b634da4f40c.html