Селективное отключение SPIDEV от определенных выборок микросхем

Я пытаюсь отключить SPIDEV от определенного выбора микросхемы, поэтому я могу привязать конкретный драйвер к устройству на этом чип-select (без rmmod'ing SPIDEV полностью).

У меня есть плата с процессором AM335X, загрузка основного ядра (+ Renesas DT overlay configfs patch) с помощью настраиваемого дерева устройств.

У меня есть SPIDEV, встроенный в ядро, чтобы позволить некоторым драйверам SPI для пользовательского пространства работать, однако я бы хотел использовать драйвер ядра для некоторых других устройств на шине.

На данный момент я тестирую (для проверки конфигурации оборудования) на Beaglebone Green.

  1. Возможно ли иметь SPIDEV для выбора микросхем на шине при использовании драйверов ядра для других чипов?

  2. Как отключить SPIDEV через оверлей дерева устройств?

Я уже тестировал конфигурацию оборудования на несколько более дешевом Beaglebone Green, прежде чем я в конце концов перейду на пользовательскую плату.

Мое базовое устройство-дерево определяет узлы SPI как: [применяется после включения am33xx-bone / bonegreen dts]

&spi1 { status = "okay"; channel@0 { #address-cells = <1>; #size-cells = <0>; compatible = "ti,omap24xx-spi"; reg = <0>; spi-max-frequency = <16000000>; spi-cpha; }; channel@1 { #address-cells = <1>; #size-cells = <0>; compatible = "ti,omap24xx-spi"; reg = <1>; spi-max-frequency = <16000000>; }; }; 

На данный момент я тестировал плату Adafruit BMP280, используя следующий DT-оверлей:

 /dts-v1/; /plugin/; / { compatible = "ti,am335x-bone-green", "ti,am335x-bone", "ti,am33xx"; fragment@0 { target-path = "/ocp/spi0/channel@0"; __overlay__ { #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; }; fragment@1 { target = <&spi0>; __overlay__ { #address-cells = <1>; #size-cells = <0>; bmp280_spi: bmp280@0 { compatible = "bosch,bmp280", "bosch,bme280"; reg = <0>; spi-max-frequency = <500000>; default-oversampling = <1>; status = "okay"; }; }; }; }; 

Я также попытался spi0 и spi0 a /delete-node/' for канал @ 0`, но оба они приводят к тому, что драйвер SPI жалуется на конфликты выбора чипов при попытке применить наложение. Это говорит мне о том, что у меня нет несвязанного SPIDEV от этого чипа.

Извините, если это не на том сайте, но поскольку Device Tree является агностиком OS / платформы, это показалось лучшим местом.

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