嵌入式爱好者

查看: 8276|回复: 8

[Linux] 配置管脚外部中断的问题

[复制链接]

12

主题

26

帖子

78

积分

A40i/T3/T507/T527通行证AM335x通行证

扫一扫,手机访问本帖
发表于 2021-8-2 17:03:12 | 显示全部楼层 |阅读模式
我想移植一个芯片的驱动。需要设置一个管脚(PD22)为外部中断,但是在下载的资料包里面没有芯片相关的寄存器资料,所以不知道对应的中断号是什么,如何配置。开发板为T507
回复

使用道具 举报

0

主题

1173

帖子

2194

积分

发表于 2021-8-2 17:46:29 | 显示全部楼层
您可以参考这个(kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi),您参考这个例子写中断
twi4: twi@0x05003000{
                        clock-frequency = <200000>;
                        status = "okay";

                        gt911: gt911_ts@5d {
                                compatible = "goodix,gt911";
                                reg = <0x5D>;
                                goodix,irq-gpio = <&pio PE 13 6 0xffffffff 0xffffffff 0>;
                                goodix,rst-gpio = <&pio PE 14 1 0xffffffff 0xffffffff 1>;
                                goodix,panel-width = <1024>;
                                status = "okay";
                        };

                        gt928: gt928_ts@14 {
                                compatible = "goodix,gt928";
                                reg = <0x14>;
                                goodix,irq-gpio = <&pio PE 13 6 0xffffffff 0xffffffff 0>;
                                goodix,rst-gpio = <&pio PE 14 1 0xffffffff 0xffffffff 1>;
                                status = "disabled";
                        };

                        tsc2007: tsc2007@48 {
                                compatible = "ti,tsc2007";
                                reg = <0x48>;
                                interrupt-parent = <&pio>;
                                interrupts = <PE 12 IRQ_TYPE_LEVEL_LOW>;
                                gpios = <&pio PE 12 6 0xffffffff 0xffffffff 0>;
                                ti,x-plate-ohms = <180>;
                                status = "disabled";
                        };
                };

点评

你好,我想使用SPI1设备,在设备树上面将修改了,status也改为okay了,但是在运行的系统中找到不对应的SPI1设备。我新增的其他设备可以在/proc/devices-tree中找到,spi相关的设备都找不到,请问要怎么解决?  详情 回复 发表于 2021-8-3 13:50
点评回复 支持 反对

使用道具 举报

12

主题

26

帖子

78

积分

A40i/T3/T507/T527通行证AM335x通行证

 楼主| 发表于 2021-8-3 13:50:21 | 显示全部楼层
zhichao 发表于 2021-8-2 17:46
您可以参考这个(kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi),您参考这个例子写 ...

你好,我想使用SPI1设备,在设备树上面将修改了,status也改为okay了,但是在运行的系统中找到不对应的SPI1设备。我新增的其他设备可以在/proc/devices-tree中找到,spi相关的设备都找不到,请问要怎么解决?
点评回复 支持 反对

使用道具 举报

0

主题

1173

帖子

2194

积分

发表于 2021-8-3 14:24:26 | 显示全部楼层
kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi里边参考spi0添加spi1,状态是okay
名称复制kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi里的内容

点评

我在board.dts中的修改如下: spi1: spi@05011000 { pinctrl-0 = ; pinctrl-1 = ; spi_slave_mode = ; status = "okay"; spi_board1 { device_type = "spi_board1"; compatible =  详情 回复 发表于 2021-8-3 14:41
点评回复 支持 反对

使用道具 举报

12

主题

26

帖子

78

积分

A40i/T3/T507/T527通行证AM335x通行证

 楼主| 发表于 2021-8-3 14:41:01 | 显示全部楼层
zhichao 发表于 2021-8-3 14:24
kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi里边参考spi0添加spi1,状态是okay
名 ...

我在board.dts中的修改如下:
                spi1: spi@05011000 {
                        pinctrl-0 = <&spi1_pins_a &spi1_pins_b>;
                        pinctrl-1 = <&spi1_pins_c>;
                        spi_slave_mode = <1>;
                        status = "okay";
                        spi_board1 {
                                device_type = "spi_board1";
                                compatible = "rohm,dh2228fv";
                                spi-max-frequency = <0x5f5e100>;
                                reg = <0x0>;
                                spi-rx-bus-width = <0x1>;
                                spi-tx-bus-width = <0x1>;
                                status = "okay";
                        };
            spi_test{
                                compatible = "wkmic,wk2124spi_cs0";
                                reg = <0x0>;
                                spi-max-frequency = <10000000>;
                                irq_gpio = <&pio PD 22 6 0xffffffff 0xffffffff 0>;

                                status = "okay";
                        };
                };

在/sys/bus/spi/drivers里面能找到新增的驱动,但是没有在/dev出现SPI相关的设备是什么导致的?还是配置有别的问题?
点评回复 支持 反对

使用道具 举报

0

主题

1173

帖子

2194

积分

发表于 2021-8-3 16:16:59 | 显示全部楼层
您在spi里应该注册类似spidev1_cs0的设备吧,您写的设备调的是什么驱动啊
这个是A40i上的例子,参考一下吧
spidev1_cs0:spi1_cs0@0{
                 #address-cells=<1>;
                 #size-cells=<1>;
                 compatible = "spidev";
                 spi-max-frequency = <33000000>;
                 reg               = <0>;
                 mode=<0>;
      };

点评

我这里是移植一个SPI扩展串口的芯片。匹配了compatible字符串也还是没有出现对应的TTY设备。而且我内核中开启了spidev,/dev中也没有spidev设备  详情 回复 发表于 2021-8-3 16:45
点评回复 支持 反对

使用道具 举报

12

主题

26

帖子

78

积分

A40i/T3/T507/T527通行证AM335x通行证

 楼主| 发表于 2021-8-3 16:45:21 | 显示全部楼层
zhichao 发表于 2021-8-3 16:16
您在spi里应该注册类似spidev1_cs0的设备吧,您写的设备调的是什么驱动啊
这个是A40i上的例子,参考一下吧 ...

我这里是移植一个SPI扩展串口的芯片。匹配了compatible字符串也还是没有出现对应的TTY设备。而且我内核中开启了spidev,/dev中也没有spidev设备
点评回复 支持 反对

使用道具 举报

0

主题

1173

帖子

2194

积分

发表于 2021-8-3 16:50:28 | 显示全部楼层
您改错设备树了吧,不是改的我说的设备树吧

点评

我改的是board.dts里面的。我改OKT507-C-Common.dtsi的再试试。应该是有导入OKT507-C-Common.dtsi的。所以我觉得应该是没有什么区别的。  详情 回复 发表于 2021-8-3 17:01
点评回复 支持 反对

使用道具 举报

12

主题

26

帖子

78

积分

A40i/T3/T507/T527通行证AM335x通行证

 楼主| 发表于 2021-8-3 17:01:33 | 显示全部楼层
zhichao 发表于 2021-8-3 16:50
您改错设备树了吧,不是改的我说的设备树吧

我改的是board.dts里面的。我改OKT507-C-Common.dtsi的再试试。应该是有导入OKT507-C-Common.dtsi的。所以我觉得应该是没有什么区别的。
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-4-20 17:45

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表