LINUX.ORG.RU

Сообщения anme

 

Repka Pi 4 sc16is752 device tree overlay

 , , ,

Нужно подключить rs232-rs485 hat к Repka Pi 4 (Repka OS, Optimal ver. 2.2).

https://www.chipdip.ru/product/rs485-rs232-hat-plata-rasshireniya-dlya-raspberry-waveshare-9001319683

https://www.waveshare.com/wiki/RS485_RS232_HAT?srsltid=AfmBOooGCPgStrUvVgwbIssFFfpxeC-5BynWl3avsl51uxLSw_iOeuIw

Прежде всего, нужно добавить поддержку sc16is752 (SPI -> 2 UART). На Raspberry Pi 4 получилось завести эту микросхему через SPI1 путем добавления в /boot/firmware/config.txt:

dtoverlay=spi1-1cs,cs0_spidev=off
dtoverlay=sc16is75x-spi,sc16is752,spi1-0,int_pin=24

После этого появлялись порты /dev/ttySC0 и /dev/ttySC1.

Для Repka Pi 4 пытался различные device tree конфигурацию, и ничего не работает.

Например, одна из последних:

/dts-v1/;
/plugin/;

/ {
    compatible = "allwinner,sun50i-h6";
    fragment@0 {
        target = <&spi0>;
        __overlay__ {
            status = "okay";
        };
    };

   fragment@1 {
      target = <&spi0>;
      __overlay__ {
         #address-cells = <1>;
         #size-cells = <0>;
         status = "okay";

         sc16is752: sc16is752@0 {
            compatible = "nxp,sc16is752";
            reg = <0>; /* CE0 */
            spi-max-frequency = <4000000>;
            interrupt-parent = <&gpio>;
	    interrupts = <357 2>; /* IRQ_TYPE_EDGE_FALLING */
            clocks = <&klok>;

            klok: klok {
               compatible = "fixed-clock";
               #clock-cells = <0>;
               clock-frequency = <14745600>;
            };
         };
      };
   };
};

Менял spi0, spi1, interrupts. Пробовал различные варианты, что смог найти на github, но ничего не работает. Пытался также декомпилировать overlay из Raspberry Pi, но даже с минимальными правками не работает. Впервые пишу device tree overlay. Не могу понять что делаю не так.

Подключил плату к Репке не через 40-пиновый разъем, а через провода к боковым выводам. Подключение Шилд - Repka (вариант подключения 2), номер 40-пинового вывода:

VCC - +5 GND - GND SCLK - 23 (SPI0-CLK) MOSI - 19 (SPI0-MOSI) MISO - 21 (SPI0-MISO) CS - 24 (SPI0-CS0) IRQ - 31 (GPIO) EN - 32 (GPIO)

Шаги по применению overlay:

  1. Сохранение/редактирование dts файла в /root/ :
vi sc16is752-n.dts
  1. Компиляция файла:
dtc -@ -I dts -O dtb -o sc16is752.dtbo sc16is752-n.dts
  1. Копирование dtbo файла в /boot/overlays/
cp sc16is752.dtbo /boot/overlays/
  1. Добавление строки sc16is752 в /boot/repkaEnv.txt в строку overlays. Получаем overlays=i2c1 spi0 sc16is752

После перезагрузки ядро не стартует на device tree overlay. Просто зависает.

## Executing script at 4fc00000
Repka U-Boot started
53 bytes read in 3 ms (16.6 KiB/s)
repkaEnv.txt loaded successfully
41705 bytes read in 7 ms (5.7 MiB/s)
repka-pi.dtb loaded successfully
overlays: i2c1 spi0 sc16is752
223 bytes read in 3 ms (72.3 KiB/s)
i2c1.dtbo loaded successfully
1097 bytes read in 4 ms (267.6 KiB/s)
spi0.dtbo loaded successfully
1036 bytes read in 4 ms (252.9 KiB/s)
sc16is752.dtbo loaded successfully
failed on fdt_overlay_apply(): FDT_ERR_NOTFOUND
26058760 bytes read in 2610 ms (9.5 MiB/s)
ERROR: Did not find a cmdline Flattened Device Tree

Starting kernel ...

Если я правильно понимаю, то

root@Repka-Pi:/boot# cat /boot/config-6.12.9.4-repka-pi4 | grep "CONFIG_SERIAL_SC16IS7XX"
CONFIG_SERIAL_SC16IS7XX=m
CONFIG_SERIAL_SC16IS7XX_I2C=m
CONFIG_SERIAL_SC16IS7XX_SPI=m

Показывает, что драйвер в ядре есть, нужно только добавить device tree overlay.

Помогите, пожалуйста, понять, что делаю не так.

anme
()

Чаты/группы посвящённые программированию графики

 , ,

Никто не подскажет, есть ли где-то комьюнити чаты посвящённые программированию openGL/vulkan/directx, шейдеров и т.д.? Нахожу только 3d моделинг, геймдев(unity, unreal). Цели становится про в этой теме нет. Просто убиваю свободное время. Искать опенсорс проекты и контрибьютить не очень интересно.

anme
()

RSS подписка на новые темы