Linux kernel uCLinux Maxim14830驱动程序未探测

Linux kernel uCLinux Maxim14830驱动程序未探测,linux-kernel,linux-device-driver,embedded-linux,stm32,uclinux,Linux Kernel,Linux Device Driver,Embedded Linux,Stm32,Uclinux,我正试图让Maxim14830评估委员会与我的Emcraft STM32F4 SOM合作。我的SOM正在运行Emcraft uClinux内核2.0.0(由内核4.4派生)(我也计划在内核版本4.5中尝试) 驱动程序未注册4个ttyMAX[n]设备。经过进一步检查,没有一个max310x.c驱动程序代码是根据我添加的printk实际执行的。我至少希望探测函数在引导期间运行 github上maxim14830(协议?)驱动程序的源代码在这里 github上spi(控制器?)驱动程序的源代码在这里

我正试图让Maxim14830评估委员会与我的Emcraft STM32F4 SOM合作。我的SOM正在运行Emcraft uClinux内核2.0.0(由内核4.4派生)(我也计划在内核版本4.5中尝试)

驱动程序未注册4个ttyMAX[n]设备。经过进一步检查,没有一个max310x.c驱动程序代码是根据我添加的printk实际执行的。我至少希望探测函数在引导期间运行

github上maxim14830(协议?)驱动程序的源代码在这里

github上spi(控制器?)驱动程序的源代码在这里

我已经能够添加spidev设备,因此我相信这是maxim14830独有的问题

我在这里看到一个spi设备:

/sys/devices/platform/soc/40003800.spi/spi_master/spi1/spi1.0 # cat modalias 
spi:maxim14830
我在这里看到了max310x驱动程序:

/sys/bus/spi/drivers/max310x
我看到以下设备树条目:

/sys/firmware/devicetree/base/soc/spi@40003800/max14830@0 # cat compatible 
maxim,maxim14830
/sys/firmware/devicetree/base/clocks/osc_max14830
我的devicetree看起来是这样的:

&spi_2 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_spi_2>;
    cs-gpios = <&gpiob 9 OUT>;
    timeouts = <3>;

    max14830: max14830@0 {
        status = "okay";
        compatible="maxim,maxim14830";
        reg = <0>;
        gpio-controller;
        #gpio-cells = <2>;
        spi-max-frequency = <20000000>;
        interrupt-parent = <&exti>;
        interrupts = <10>;
        clocks = <&spi_uart_clk>;
        clock-names = "xtal";
    };

    spidev: spidev@2 {
            status = "disabled";
            compatible = "linux,spidev";
            spi-max-frequency = <20000000>;
            reg = <0>;
    };
};
&spi_2{
status=“好”;
pinctrl names=“默认”;
pinctrl-0=;
cs gpios=;
超时=;
max14830:max14830@0 {
status=“好”;
compatible=“maxim,maxim14830”;
reg=;
gpio控制器;
#gpio细胞=;
spi最大频率=;
中断父项=;
中断=;
时钟=;
时钟名称=“xtal”;
};
斯皮德夫:spidev@2 {
status=“disabled”;
compatible=“linux,spidev”;
spi最大频率=;
reg=;
};
};
我能够编译我的设备树blob,并且可以很好地将相应的linux映像进行uboot。在我的printk中,stm32_spi_probe是从“控制器驱动程序”调用的,但据我所知,之后没有调用max310x.c驱动程序代码


我应该在哪里进一步调试它?这是我的第一个嵌入式linux项目,我可以使用一些指针。

看起来您在设备树兼容条目中有输入错误。从这里的驱动程序代码中,兼容属性是
maxim,max14830
。但是你已经使用了maxim,maxim14830,用合适的兼容属性名称检查。啊,该死,那太愚蠢了。谢谢现在我看到驱动程序被探测,但仍然没有tty设备。然而,这更容易调试。谢谢如果其他人使用相同的设置,您可能需要更新max310x.c驱动程序代码中的修订掩码和ID。看见