Блок «Оверлей дерева устройств» уведомляет и загружает детей дважды

У меня есть следующий фрагмент оверлей дерева устройств, и когда он загружен, spidev добавляется дважды:

 fragment@0 { target = <&fpga>; __overlay__ { #address-cells = <1>; #size-cells = <1>; spi2@600 { status = "okay"; compatible = "opencores,spiocv2"; #address-cells = <1>; #size-cells = <0>; reg = <0 0x800>; cell-index = <2>; // bus number spidev0 { spi-max-frequency = <25000000>; reg = <0>; compatible = "spidev"; }; }; }; }; 
  1. сначала через of_overlay_create -> ... -> notifier_call_chain -> of_platform_notify -> ... -> device_attach -> ... -> spioc_driver_probe -> spi_register_master -> of_register_spi_devices -> of_register_spi_device -> spi_add_device
  2. затем снова через of_overlay_create -> ... -> notifier_call_chain -> of_spi_notify -> of_register_spi_device -> spi_add_device

Поскольку он загружен правильно, /dev/spidev2.0 доступен и работает нормально, но второй вызов приводит к уродливым ошибкам:

 [ 1.814623] opencores_spi 13e0000f3300000.spi2: chipselect 0 already in use [ 1.836491] spi_master spi2: spi_device register error /fpga/spi2@600/spidev0 [ 1.857652] of_spi_notify: failed to create for '/fpga/spi2@600/spidev0' [ 1.877495] __of_changeset_entry_notify: notifier error @/fpga/spi2@600/spidev0 

Что такое чистый и правильный способ предотвратить его загрузку дважды? Или как я могу предотвратить уведомитель от уведомления платформы и SPI?

Interesting Posts

Разделить одну и ту же конфигурацию виртуального хоста для нескольких файлов

Как получить имя программы, которая синхронизировала аппаратные часы с системными часами во время перезагрузки

rsync: не удалось установить разрешения на «/path/to/file.txt»: операция не разрешена (1)

Как найти каталоги, в которых ни один из файлов внутри не был доступен через год?

Почему что-то за $ PS3 показано, даже когда $ PS3 пуст?

Изменение размера облачного жесткого диска

как я могу построить более старую версию gcc?

Что я должен установить в данный установочный префикс

Владелец не может читать / proc / $ pid / io

Есть ли хороший инструмент тестирования пыток на диске?

Как узнать, поддерживается ли сторонний репозиторий?

Запустить оболочку текстового терминала из Linux DM?

Загрузка EFI и RAID6

Что vim считает словом?

Как отредактировать файл на удаленной машине с помощью текстового редактора?

Linux и Unix - лучшая ОС в мире.