0

我正在尝试让 Maxim14830 评估板与我的 Emcraft STM32F4 SOM 一起使用。我的 SOM在 github 上运行 Emcraft uClinux 内核 2.0.0(从内核 4.4 分叉)(我也计划在内核版本 4.5 上尝试此操作)。

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

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

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

我已经能够很好地添加一个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

我的设备树看起来像这样:

&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>;
    };
};

我能够编译我的设备树 blob,并很好地引导相应的 linux 映像。从我的 printk 中,stm32_spi_probe 是从“控制器驱动程序”中调用的,但据我所知,之后没有调用 max310x.c 驱动程序代码。

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

4

0 回答 0