Я разрабатываю драйвер Linux spi для обработки связи через порт SPI. My So C предлагает три spi-модуля (которые я понимаю под портами), называемые ecspi1 / ecspi2 / ecspi3. Мне нужно отправить два вида данных, используя ecspi1 и ecspi2.
Я реализовал драйвер, который зарегистрирован в spi-драйвере и уже успешно обработал ecspi1, добавив ниже dts и driver:
[dts]
&ecspi1 {
status = "okay";
fpga1: lfe5u12f6bg256i@0 {
reg = <0>;
compatible = "lattice,lfe5u12f6bg256i";
spi-max-frequency = <10000000>;
};
};
[драйвер]
static const struct of_device_id fpga_spi_of_match[] = {
{ .compatible = "lattice,lfe5u12f6bg256i", },
{},
};
Я пытался добавить ecspi2 в драйвер с приведенными ниже модификациями. Тем не менее, драйвер дважды проверяется при загрузке и завершается неудачей во время второго периода проверки.
[dts]
&ecspi1 {
status = "okay";
fpga1: lfe5u12f6bg256i@0 {
reg = <0>;
compatible = "lattice,lfe5u12f6bg256i";
spi-max-frequency = <10000000>;
};
};
+&ecspi2 {
+ status = "okay";
+
+ fpga0: fpga_fw@0 {
+ reg = <0>;
+ compatible = "fpga_fw,lfe5u12f6bg256i";
+ spi-max-frequency = <10000000>;
+ };
+};
[driver]
static const struct of_device_id fpga_spi_of_match[] = {
{ .compatible = "fpga_fw,lfe5u12f6bg256i", },
+ { .compatible = "lattice,lfe5u12f6bg256i", },
{},
};
Кто-нибудь знает, как обрабатывать несколько портов (устройств) SPI в одном драйвере?