我正在尝试让 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 项目,我可以使用一些指针..