spidev 读取 eeprom id
spidev to read eeprom id
OS: Linux
我正在 userspace 中编写一个 spidev 应用程序来读取 EEPROM id。我的设备树条目如下:
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 在同一节点,这样当用户 space 应用程序打开句柄到“/dev/spidev0.0”时,它实际上是在与 m25p10 对话。但是我无法 linux 启动。这种做法有什么问题吗?
这行不通。一台设备 - 一个设备标识符中的定义。
另外,为什么需要 spidev
设备?您已经有 m25p10_spi
,它应该显示为 MTD 设备(类似于 /dev/mtd0
),并且从用户 space.
访问它应该没有问题
更新:
看来OP是想通过RDID命令来保持MTD和读取设备唯一ID,目前的m25p10驱动不支持
我可能错了,但对我来说最简单的解决方案是扩展驱动程序以创建 sysfs
带有 RDID 数据的条目,该数据在探测期间读取。
一些有价值的资源:
OS: Linux 我正在 userspace 中编写一个 spidev 应用程序来读取 EEPROM id。我的设备树条目如下:
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 在同一节点,这样当用户 space 应用程序打开句柄到“/dev/spidev0.0”时,它实际上是在与 m25p10 对话。但是我无法 linux 启动。这种做法有什么问题吗?
这行不通。一台设备 - 一个设备标识符中的定义。
另外,为什么需要 spidev
设备?您已经有 m25p10_spi
,它应该显示为 MTD 设备(类似于 /dev/mtd0
),并且从用户 space.
更新:
看来OP是想通过RDID命令来保持MTD和读取设备唯一ID,目前的m25p10驱动不支持
我可能错了,但对我来说最简单的解决方案是扩展驱动程序以创建 sysfs
带有 RDID 数据的条目,该数据在探测期间读取。
一些有价值的资源: