您尚未登录。

楼主 #1 2020-12-13 12:22:03

逸俊晨晖
会员
注册时间: 2018-08-29
已发帖子: 151
积分: 137.5

如何实现spi在通过cs脚片复用来 将spidev弄到用户层上?

首先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>;
	};
};

离线

楼主 #3 2020-12-13 23:07:01

逸俊晨晖
会员
注册时间: 2018-08-29
已发帖子: 151
积分: 137.5

Re: 如何实现spi在通过cs脚片复用来 将spidev弄到用户层上?

Bosspoi 说:

flash: w25q128@0
spidev@0x00
是否应该改成试试:
flash: w25q128@0
spidev@1

宁就是 列文虎克?
这些细节我没在意 按照你的想法修改后 还是不行
不过你成功让我注意到这些细节
我对照了上面spi的帖子 发现第二个设备是 reg = <1>; 于是我把spidev里的 reg = <0>; 改成1
结果生成了设备 /dev/spidev0.1
看来是成功了 而且也明白了spidev的后缀为什么是0.0这个格式

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn