驱动无法执行到probe函数


驱动无法执行到probe函数

要进入probe  只有设备名称和驱动名称一致才会进入,目前Linux都采用dts 来管理系统资源,所以要注意dts中的设备名称和驱动中的名称是否一致 包括是否有空格

例子:
原来dts 没有这一项的  自己从别处拷贝过来的  但是驱动是有现成的
gpio_keypad{
compatible = " amlogic, gpio_keypad";
status = "okay";
key_name = "keypad_power";
key_num = <1>;
key_code = <700>;
key_pin = <&gpio GPIOZ_12 GPIO_ACTIVE_LOW>;
};


驱动:
static const struct of_device_id key_dt_match[] = {
{ .compatible = " amlogic,  gpio_keypad", },
{},
};

明显驱动的这个名称带了一个空格  导致了和dts不一致 无法执行probe

另外是有可能是 platform_driver  写法新老平台以及Android版本存在不一致  建议找当前平台可以正常工作的驱动做参考

你可能感兴趣的:(驱动无法执行到probe函数)