首先spi可以通过配置spidev 出现/dev/spidev 给用户层操作 ( https://whycan.com/t_3754.html )
然后spi可以通过配置cs脚实现spi复用 挂载多个spi设备( https://whycan.com/t_2418.html )
那么如何将这两个结合在一起?
比如我f1c100s的spi0已经挂载了flash 怎么通过cs复用脚 再配置出一个spidev设备来
我试了下这样配置 发现是无效的 flash使用正常 但是没有出现/dev/spidev
&pio {
spi0_cs_pins: spi0_cs_pins {
pins = "PC1", "PE3";
function = "gpio_out";
};
};
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins_a &spi0_cs_pins>;
cs-gpios = <&pio 2 1 GPIO_ACTIVE_HIGH>, <&pio 5 3 GPIO_ACTIVE_HIGH>;//PC1 PE3
status = "okay";
flash: w25q128@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "winbond,w25q128", "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;
partitions{
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
lable = "u-boot";
reg = <0x000000 0x100000>;
read-only;
};
partition@100000 {
lable = "dtb";
reg = <0x100000 0x10000>;
read-only;
};
partition@110000 {
label = "kernel";
reg = <0x110000 0x400000>;
read-only;
};
partition@510000 {
label = "rootfs";
reg = <0x510000 0xAF0000>;
};
};
};
spidev@0x00 {
compatible = "spidev";
spi-max-frequency = <100000000>;
reg = <0>;
};
};
离线
flash: w25q128@0
spidev@0x00
是否应该改成试试:
flash: w25q128@0
spidev@1
宁就是 列文虎克?
这些细节我没在意 按照你的想法修改后 还是不行
不过你成功让我注意到这些细节
我对照了上面spi的帖子 发现第二个设备是 reg = <1>; 于是我把spidev里的 reg = <0>; 改成1
结果生成了设备 /dev/spidev0.1
看来是成功了 而且也明白了spidev的后缀为什么是0.0这个格式
离线