ОС: Linux Я пишу приложение spidev в пользовательском пространстве, чтобы прочитать идентификатор EEPROM.У меня есть запись в дереве устройств:
spi0: spi@ffda4000 {
compatible = "snps,dw-apb-ssi";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xffda4000 0x100>;
interrupt-parent = <&intc>;
interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
num-cs = <2>;
cs-gpios = <&porta 7 GPIO_ACTIVE_HIGH>, <&porta 0 GPIO_ACTIVE_HIGH>;
bus-num = <0>;
tx-dma-channel = <&pdma 16>;
rx-dma-channel = <&pdma 17>;
clocks = <&spi_m_clk>;
status = "disabled";
};
, а затем:
&spi0 {
status = "okay";
m25p10_spi@0 {
compatible = "m25p10";
reg = <0>; /* chip select */
spi-max-frequency = <20000000>;
/* m25p,fast-read; */
enable-dma = <0>;
};
spidev@0 {
compatible = "rohm,dh2228fv";
reg = <0>; /* chip select */
spi-max-frequency = <20000000>;
enable-dma = <0>;
};
};
Идея состоит в том, чтобы spidev находился в том же узле, что и m25p10, чтобы при открытии приложения из пользовательского пространства открывать "/dev/spidev0.0 ", на самом деле он разговаривает с m25p10.Но я не могу загрузить Linux.Что-то не так с этим подходом?