Драйвер uCLinux Maxim14830 не проверяется - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь заставить оценочную плату Maxim14830 работать с моим SOM ​​Emcraft STM32F4. На моем SOM ​​работает ядро ​​Emcraft uClinux 2.0.0 (взято из ядра 4.4) на github здесь (у меня есть планы попробовать это и с версией ядра 4.5).

Драйвер не регистрирует 4 устройства ttyMAX [n]. При дальнейшей проверке ни один из кодов драйвера max310x.c фактически не выполняется на основании добавленных мною printk. Я бы по крайней мере ожидал, что функция зонда запустится во время загрузки.

Исходный код на github для драйвера maxim14830 (протокол?) Находится здесь max310x.c

Исходный код github для драйвера spi (контроллера?) Находится здесь 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

Я вижу следующие записи в devicetree:

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

Я могу скомпилировать свой блоб дерева устройств и нормально запустить соответствующий образ linux. Из моих printk'ов stm32_spi_probe вызывается из «драйвера контроллера», но, насколько мне известно, код драйвера max310x.c не вызывается после ..

Куда мне идти, чтобы отладить это дальше? Это мой первый встроенный проект Linux, и я мог бы использовать некоторые указатели ..

...