Драйвер uclinux maxim14830 не проверяется

Я пытаюсь заставить оценочную плату Maxim14830 работать с моим Emcraft STM32F4 SOM. В моем SOM ​​используется ядро ​​Emcraft uClinux 2.0.0 (разветвленное из ядра 4.4) на github здесь (у меня есть планы попробовать это и с ядром версии 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

У меня 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>;
    };
};

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

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

Похоже, у вас есть опечатка в записи, совместимой с деревом устройств. Из кода драйвера здесь github.com/EmcraftSystems/linux-upstream/blob/… совместимое свойство - maxim,max14830. Но вы использовали maxim,maxim14830, проверьте правильность совместимого имени свойства.

Parthiban 10.09.2018 11:48

Ах, черт возьми, это было глупо. Спасибо. Теперь я вижу, что драйвер проверяется, но все еще нет устройств tty. Однако это гораздо более возможно для отладки. Спасибо

telsbree 10.09.2018 13:02

Если кто-то еще использует такую ​​же настройку, вам может потребоваться обновить маску версии и идентификатор в коде драйвера max310x.c. См. github.com/torvalds/linux/commit/…

telsbree 11.09.2018 13:22
0
3
203
0

Другие вопросы по теме