QRB2210 SPI设备在qupv3_se0_SPI上的漏洞问题

码上好不好 2024-09-13 16:11:43

QRB2210 SPI设备在qupv3_se0_SPI上的漏洞问题
我试图使用对下面的设备树所做的修改在QRB2210上启动SPI设备,但在dmesg中遇到以下错误,并且在/dev目录中找不到可用的spidev设备:
/ # dmesg | grep spi
[ 10.610471] scuba-pinctrl 500000.pinctrl: pin-0 (4a80000.spi) status -22
[ 10.627878] spi_geni 4a80000.spi: Error applying setting, reverse things back
[ 10.635143] spi_geni: probe of 4a80000.spi failed with error -22
/ #
您能帮助描述这些错误消息并提供建议,以帮助我们使用qupv3_se0_SPI接口初始化QRB2210 devkit上的SPI设备吗?
以下是我们的DTS:
qupv3_se0_spi: spi@4a80000 {
               compatible = "qcom,spi-geni";
               reg = <0x4a80000 0x4000>;
               #address-cells = <1>;
               #size-cells = <0>;
               reg-names = "se_phys";
               interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
               clock-names = "se-clk", "m-ahb", "s-ahb";
               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>,
                       <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
                       <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
               pinctrl-names = "default", "sleep";
               pinctrl-0 = <&qupv3_se0_spi_active>;
               pinctrl-1 = <&qupv3_se0_spi_sleep>;
               dmas = <&gpi_dma0 0 0 1 64 0>,
                       <&gpi_dma0 1 0 1 64 0>;
               dma-names = "tx", "rx";
               spi-max-frequency = <50000000>;
               qcom,wrapper-core = <&qupv3_0>;
               status = "okay";

spidev@0 {
                       status = "okay";
                       compatible = "qcom,spidev"; // Defined in SPIDEV compatible array by Qualcomm in this kernel
                       reg = <0>;
                       spi-max-frequency = <50000000>;  // SPI clock frequency (50MHz)
                       spi-cpha; // Define this, we are CPHA=1
                       spi-lsb-first; // Define this, we are sending data Least Significant Bit First.
               };
       };

qupv3_se0_spi_pins: qupv3_se0_spi_pins {
                       qupv3_se0_spi_active: qupv3_se0_spi_active {
                               mux {
                                       pins = "gpio0", "gpio1",
                                                       "gpio2", "gpio3";
                                       function = "qup0";
                               };

config {
                                       pins = "gpio0", "gpio1",
                                                       "gpio2", "gpio3";
                                       drive-strength = <8>;
                                       bias-pull-up;
                               };
                       };

qupv3_se0_spi_sleep: qupv3_se0_spi_sleep {
                               mux {
                                       pins = "gpio0", "gpio1",
                                                       "gpio2", "gpio3";
                                       function = "gpio";
                               };

config {
                                       pins = "gpio0", "gpio1",
                                                       "gpio2", "gpio3";
                                       drive-strength = <6>;
                                       bias-disable;
                               };
                       };
               };

...全文
1102 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38498942 2024-09-14
  • 打赏
  • 举报
回复

需要修改device-tree的代码:
apps_proc/src/vendor/qcom/proprietary/devicetree/qcom/scuba.dtsi 中添加

&qupv3_se0_spi {
    status = "ok";
};

需要修改的kernel的代码:
drivers/pinctrl/qcom/pinctrl-scuba.c 改为

static const int scuba_reserved_gpios[] = {
//    0, 1, 2, 3, 14, 15, 16, 17, -1
    14, 15, 16, 17, -1
};
/*
static const struct msm_gpio_wakeirq_map scuba_mpm_map[] = {

2,851

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧