WhyCan Forum(哇酷开发者社区)

我们能随心所欲"有问题百度(谷歌)一下", 这得感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

#1 2020-06-20 17:23:42

piyush
会员
所在地: India
注册时间: 2019-12-09
累计积分: 19

f1c100s spi cs gpios无效,如何设置具有多个cs的多个spi设备。

Hello All,

我尝试如下设置设备树,但CS信号仅在默认硬件引脚上

&spi1 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi1_pins_a>;
	status = "okay";
	num_chipselect = <2>;

	cs_gpios = 	<&pio 3 2 GPIO_ACTIVE_LOW>,
			<&pio 3 14 GPIO_ACTIVE_LOW>, 
	
	gpio1: gpio@0x00 {
		compatible = "fairchild,74hc595";
		reg = <0>;
		gpio-controller;
		#gpio-cells = <2>;
		registers-number = <2>;
		spi-max-frequency = <1000000>;
        };

	gpio2: gpio@0x01 {
		compatible = "ti,sn65hvs882", "pisosr-gpio";
		gpio-controller;
		#gpio-cells = <1>;
		reg = <1>;
		spi-max-frequency = <1000000>;
	};
};

我注意到spi设备驱动程序未从设备树中读取任何现成的解决方案来支持多个CS?

离线

#2 2020-06-20 17:31:58

哇酷小二
管理员
注册时间: 2020-04-22
累计积分: 1,616

Re: f1c100s spi cs gpios无效,如何设置具有多个cs的多个spi设备。

离线

#3 2020-06-21 09:14:23

piyush
会员
所在地: India
注册时间: 2019-12-09
累计积分: 19

Re: f1c100s spi cs gpios无效,如何设置具有多个cs的多个spi设备。

非常感谢您提供宝贵的信息,
但这对我的情况不起作用。

&spi1 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi1_pins_a &spi1_pins_cs>;
	status = "okay";
	num_chipselect = <4>;

	cs_gpios = 	<&pio 3 2 GPIO_ACTIVE_LOW>, /*PD2 main lcd*/ 
			<&pio 3 14 GPIO_ACTIVE_LOW>, /*PD14 SR Latch*/
			<&pio 3 21 GPIO_ACTIVE_LOW>, /*PD21 rtc*/
			<0>;			     /*lcd2*/
	
	gpio1: gpio@0x01 {
		compatible = "fairchild,74hc595";
		reg = <1>;
		gpio-controller;
		#gpio-cells = <2>;
		registers-number = <1>;
		spi-max-frequency = <1000000>;
        };
};

			spi1_pins_a: spi1-pins-pc {
				pins = "PA0", "PA1", "PA2", "A3";
				function = "spi1";
			};

			spi1_pins_cs: spi1_pins_cs {
				pins = "PD2", "D14", "PD21";
				function = "gpio_out";
			};

CS信号仍在默认端口PA0上

我检查了驱动程序代码,未找到此行devm_gpio_request

离线

#4 2020-07-02 16:43:30

哇酷小二
管理员
注册时间: 2020-04-22
累计积分: 1,616

Re: f1c100s spi cs gpios无效,如何设置具有多个cs的多个spi设备。

&pio {
        spi0_cs_pins: spi0_cs_pins {
                pins = "PC3", "PH6";
                function = "gpio_out";
        };
};

&spi0 {
        status ="okay";

        pinctrl-names = "default";
        pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
        cs-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>, <&pio 7 6 GPIO_ACTIVE_HIGH>;

        mx25l25635e:mx25l25635e@0 {
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                spi-max-frequency = <50000000>;
                #address-cells = <1>;
                #size-cells = <1>;
        };


    panel@0 {
            compatible = "sitronix,st7789v";
            reg = <1>;
            reset-gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>;//PC4
            dc-gpios = <&pio 2 7 GPIO_ACTIVE_LOW>;//PC7
            /*backlight = <&pwm_bl>;*/
            led-gpios = <&pio 7 0 GPIO_ACTIVE_LOW>;//PH0
            spi-max-frequency = <50000000>;
            spi-cpol;
            spi-cpha;
            buswidth = <8>;
            rotate = <270>;
            rgb;
            fps = <30>;
            debug = <1>;
    };

亲测可用。

离线

#5 2020-07-05 10:30:46

piyush
会员
所在地: India
注册时间: 2019-12-09
累计积分: 19

Re: f1c100s spi cs gpios无效,如何设置具有多个cs的多个spi设备。

非常感谢,它对我有用

主要更改是cs_gpios更改为cs-gpios

离线

#6 2020-07-05 10:45:45

didi
会员
注册时间: 2017-10-15
累计积分: 56

Re: f1c100s spi cs gpios无效,如何设置具有多个cs的多个spi设备。

piyush 说:

非常感谢,它对我有用

主要更改是cs_gpios更改为cs-gpios

咦,好像是噢,居然能通过编译?

离线

#7 2020-07-05 10:46:12

smartcar
会员
注册时间: 2018-02-19
累计积分: 656

Re: f1c100s spi cs gpios无效,如何设置具有多个cs的多个spi设备。

piyush 说:

非常感谢,它对我有用

主要更改是cs_gpios更改为cs-gpios

现在可以了吗?

离线

#8 2020-07-05 10:52:33

piyush
会员
所在地: India
注册时间: 2019-12-09
累计积分: 19

Re: f1c100s spi cs gpios无效,如何设置具有多个cs的多个spi设备。

smartcar 说:

现在可以了吗?

Yes, Now it's working

离线

#9 2020-07-09 22:45:07

wwkkww1983
会员
注册时间: 2019-10-29
累计积分: 4

Re: f1c100s spi cs gpios无效,如何设置具有多个cs的多个spi设备。

记录一下,后面会用到这个

离线

#10 2020-07-25 04:36:01

羽剑天涯
会员
注册时间: 2019-10-22
累计积分: 13

Re: f1c100s spi cs gpios无效,如何设置具有多个cs的多个spi设备。

哇酷小二 说:
&pio {
        spi0_cs_pins: spi0_cs_pins {
                pins = "PC3", "PH6";
                function = "gpio_out";
        };
};

&spi0 {
        status ="okay";

        pinctrl-names = "default";
        pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
        cs-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>, <&pio 7 6 GPIO_ACTIVE_HIGH>;

        mx25l25635e:mx25l25635e@0 {
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                spi-max-frequency = <50000000>;
                #address-cells = <1>;
                #size-cells = <1>;
        };


    panel@0 {
            compatible = "sitronix,st7789v";
            reg = <1>;
            reset-gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>;//PC4
            dc-gpios = <&pio 2 7 GPIO_ACTIVE_LOW>;//PC7
            /*backlight = <&pwm_bl>;*/
            led-gpios = <&pio 7 0 GPIO_ACTIVE_LOW>;//PH0
            spi-max-frequency = <50000000>;
            spi-cpol;
            spi-cpha;
            buswidth = <8>;
            rotate = <270>;
            rgb;
            fps = <30>;
            debug = <1>;
    };

亲测可用。

对于f1c100s的spi0的cs应该默认为PC1

离线

页脚

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