This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM625:使用 TI SDK 映像在 BeaglePlay 中启用 SPI 支持

Guru**** 2893300 points

Other Parts Discussed in Thread: TPS65912, TPS6594-Q1, PCM3060, PCM3168A, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1642572/am625-enabling-spi-support-in-beagleplay-using-ti-sdk-image

器件型号: AM625
主题中讨论的其他器件: TPS65912PCM3060PCM3168ASysConfig

您好团队:

我正在使用图像 tisdk-default-image-rt-beagleplay-ti-12.00.00.07.04.rootfs.wic 、并可以成功引导我的 BeaglePlay 板。 我相信 UART、以太网和 I2C 接口都是启用且正常运行的。

但是、未启用 SPI。 它未列在下 /dev、在检查 dtb 文件时、我发现 SPI 节点似乎处于禁用状态。

我尝试将 DTB 转换为 DTS 并修改它以启用 SPI、但无法成功完成该过程。

您能否建议如何在此图中启用 SPI 支持?

 

 

谢谢、此致

Aparna C Nair

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Aparna:
    在 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts?h=ti-linux-6.18.y#n841 中、MAIN_SPI2 似乎已启用。

    您能否尝试将 spidev 节点添加到 MAIN_SPI2 中、并在内核配置中启用 McSPI、如 https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/latest/exports/docs/linux/Foundational_Components McSPI/Kernel/McSPI/SPI.html 中所示 Kernel_Drivers 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    我在 k3-am625-beagleplate.dtb 的 MAIN_SPI2 下添加了 spidev 节点。

    我对这一变化是否会反映在未来的时代有疑问。 我注意到 fitimage 出现在 boot 目录下、我担心如果 fitimage 使用单独的嵌入式设备树、修改 DTB 可能不会生效。

    您能否确认直接在 k3-am625-beagleplate.dtb 中所做的更改是否会自动被 FITIMAGE 接收,或者是否需要单独重建 FITIMAGE 才能使更改生效?

    此外、您能否建议使用正确的方法在 tisdk-default-image-rt-beagleplay-ti-12.00.00.00.07.04.rootfs.wic 映像中启用 SPI?

    请在下面找到我所做的随附修改、以供您参考

    SPI@20120000{

                                                  兼容=“ti、am654-mcspi\0ti、OMAP4-mcspi“;

                                                  REG =<0x00 0x20120000 0x00 0x400>;

                                                  中断=<0x00 0xae 0x04>;

                                                  #address-cells =<1>;

                                                  #size-cells =<0>;

                                                  电源域=<0x03 0x8F 0x01>;

                                                  时钟=<0x02 0x8F 0x00>;

     

                                                  状态=“正常“;

     

                                                  pinctrl-names =“default“;

                                                  pinctrl-0 =<0x1d>;

     

                                                  TI、spi-num-cs =<1>;  //

     

                                                  spidev@0{

                                                  compatible =“linux、spidev“;

                                                                  reg =<0>;

                                                  SPI-max-frequency =<1000000>;  //先使用较低值

                                                                  };

                                   };

    这 仅供参考

    MAIN_spi0 =“/bus@f0000/SPI@2010000“;

    MAIN_SPI1 =“/BUS@f0000/SPI@20110000“;

    MAIN_SPI2 =“/BUS@f0000/SPI@20120000“;

     

    谢谢、此致

    Aparna C Nair

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我认为内核中启用了 SPI 驱动程序。 请检查。

    root@beagleplay-ti:~# zcat /proc/config.gz | grep spi
    CONFIG_UNINLINE_SPIN_UNLOCK=y
    config_mutex_spin_on_owner=y
    CONFIG_RWSEM_SPIN_ON_OWNER=y
    CONFIG_LOCK_SPIN_ON_OWNER=y
    CONFIG_ARCH_USE_QUIVED_SPINLOCKS=y
    CONFIG_QUIEND_SPINLOCKS=y
    # CONFIG_NFC_NCI_SPI 未设置
    # CONFIG_NFC_ST_NCI_SPI 未设置
    CONFIG_REGMAP_SPI=y
    CONFIG_MTD_SPI_NAND=y
    CONFIG_MTD_SPI_NOR=y
    #未设置 CONFIG_MTD_SPI_NOR_USE_4K_SECTORS
    未设置# CONFIG_MTD_SPI_NOR_SWP_DISABLE
    CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_Volatile=y
    未设置# CONFIG_MTD_SPI_NOR_SWP_KEEP
    # CONFIG_SENSOR_LIS3_SPI 未设置
    #未设置 CONFIG_SCSI_SPI_ATTRS
    # CONFIG_NET_DSA_Vitesse_VSC73XX_SPI 未设置
    # CAN SPI 接口
    # CAN SPI 接口结束
    # CONFIG_WILC1000_SPI 未设置
    # CONFIG_CC33XX_SPI 未设置
    #未设置 CONFIG_WLCORE_SPI
    CONFIG_TOUCCH_GOODIX_Berlin_SPI=m
    #未设置 CONFIG_TIBCH_SURFACE3_SPI
    CONFIG_TCG_TIS_SPI=m
    CONFIG_TCG_TIS_SPI_CR50=y
    #未设置 CONFIG_TCG_TIS_ST33ZP24_SPI
    CONFIG_SPI=y
    # CONFIG_SPI_DEBUG 未设置
    CONFIG_SPI_MASTER=y
    CONFIG_SPI_MEM=y
    # SPI 主控制器驱动程序
    # CONFIG_SPI_Altera 未设置
    # CONFIG_SPI_AXI_SPI_ENGINE 未设置
    # CONFIG_SPI_BITBANG 未设置
    # CONFIG_SPI_Cadence 未设置
    CONFIG_SPI_Cadence_QUADSPI=y
    # CONFIG_SPI_Cadence 未设置
    # CONFIG_SPI_CH341 未设置
    # CONFIG_SPI_DESIGNWARE 未设置
    # CONFIG_SPI_GPIO 未设置
    # CONFIG_SPI_FSL_SPI 未设置
    未设置# CONFIG_SPI_Microchip_CORE_QSPI
    # CONFIG_SPI_OC_Tiny 未设置
    CONFIG_SPI_OMAP24xx=m
    # CONFIG_SPI_PCI1XXXX 未设置
    未设置# CONFIG_SPI_PL022
    # CONFIG_SPI_SC18IS602 未设置
    未设置# CONFIG_SPI_SIFIVE
    # CONFIG_SPI_SN_F_OSPI 未设置
    未设置# CONFIG_SPI_SG2044_NOR
    # CONFIG_SPI_MXIC 未设置
    # CONFIG_SPI_THUNDERX 未设置
    # CONFIG_SPI_VIRTIO 未设置
    未设置# CONFIG_SPI_XCOMM
    # CONFIG_SPI_Xilinx 未设置
    #未设置 CONFIG_SPI_ZYNQMP_GQSPI
    # CONFIG_SPI_AMD 未设置
    # SPI 多路复用器支持
    #未设置 CONFIG_SPI_MUX
    # SPI 协议主站
    CONFIG_SPI_SPIDEV=m
    # CONFIG_SPI_LOOPBACK_TEST 未设置
    # CONFIG_SPI_TLE62X0 未设置
    # CONFIG_SPI_SLAVE 未设置
    CONFIG_SPI_DYNAMIC_y
    # CONFIG_ZL3073X_SPI 未设置
    # SPI GPIO 扩展器
    # SPI GPIO 扩展器结束
    #未设置 CONFIG_SENSOR_LTC2947_SPI
    #未设置 CONFIG_MFD_CS40L50_SPI
    #未设置 CONFIG_MFD_DA9052_SPI
    #未设置 CONFIG_MFD_MC13XXX_SPI
    CONFIG_MFD_RK8XX_SPI=y
    #未设置 CONFIG_MFD_TPS65912_SPI
    # CONFIG_MFD_TPS6594-Q1 未设置
    # CONFIG_MFD_Arizona_SPI 未设置
    #未设置 CONFIG_MFD_WM831X_SPI
    #未设置 CONFIG_MFD_INTEL_M10_MBMC_SPI
    # CONFIG_MFD_RSMU_SPI 未设置
    #媒体 SPI 适配器
    未设置# CONFIG_CXD2880_SPI_DRV
    #介质结束 SPI 适配器
    # config_snd_SPI 未设置
    config_snd_SOC_I2C_AND_SPI=m
    未设置# config_snd_SOC_ADAPU1372_SPI
    # CONFIG_SND_SOC_ADAPU1761_SPI 未设置
    未设置# config_snd_SOC_CS35L41_SPI
    # CONFIG_SND_SOC_CS35L45_SPI 未设置
    # CONFIG_SND_SOC_CS35L56_SPI 未设置
    # CONFIG_SND_SOC_CS4271_SPI 未设置
    未设置# config_snd_SOC_ES8328_SPI
    #未设置 config_snd_SOC_PCM179X_SPI
    # CONFIG_SND_SOC_PCM186X_SPI 未设置
    #未设置 config_snd_SOC_PCM3060_SPI
    未设置# config_snd_SOC_PCM3168A_SPI
    未设置# config_snd_SOC_PCM512x_SPI
    未设置# config_snd_SOC_SSM2602_SPI
    #未设置 config_snd_SOC_TLV320AIC23_SPI
    #未设置 config_snd_SOC_TLV320AIC32X4_SPI
    #未设置 CONFIG_SND_SOC_TLV320AIC3X_SPI
    #未设置 config_snd_SOC_WM8731_SPI
    # config_snd_SOC_WM8804_SPI 未设置
    #未设置 CONFIG_HID_GOODIX_SPI
    CONFIG_MMC_SPI=y
    # CONFIG_LEDS_SPI_BYTE 未设置
    # SPI RTC 驱动程序
    CONFIG_RTC_I2C_AND_SPI=y
    # SPI 和 I2C RTC 驱动器
    CONFIG_HWSPINLOCK=y
    CONFIG_HWSPINLOCK_OMAP=m
    未设置# CONFIG_ADXL313_SPI
    # CONFIG_ADXL345_SPI 未设置
    未设置# CONFIG_ADXL355_SPI
    # CONFIG_ADXL367_SPI 未设置
    未设置# CONFIG_ADXL372_SPI
    # CONFIG_ADXL380_SPI 未设置
    # CONFIG_FXLS8962AF_SPI 未设置
    # CONFIG_IIO_KX02AA_SPI 未设置
    # CONFIG_MMA7455_SPI 未设置
    # CONFIG_AD7606_iface_SPI 未设置
    CONFIG_IIO_ST_SENSOR_SPI=m
    # CONFIG_AD5624R_SPI 未设置
    未设置# CONFIG_AD5686_SPI
    未设置# CONFIG_BMI160_SPI
    # CONFIG_BMI270_SPI 未设置
    # CONFIG_BMI323_SPI 未设置
    # CONFIG_FXOS8700_SPI 未设置
    # CONFIG_INV_ICM42600_SPI 未设置
    # CONFIG_INV_MPU6050_SPI 未设置
    CONFIG_IIO_ST_LSM6DSX_SPI=m
    #未设置 CONFIG_BMC150_MAGN_SPI
    CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
    #未设置 CONFIG_SENSOR_HMC5843_SPI
    #未设置 CONFIG_SENSOR_RM3100_SPI
    # CONFIG_MPL115_SPI 未设置
    #未设置 CONFIG_FPGA_Mgr_Altera_PS_SPI
    #未设置 CONFIG_FPGA_Mgr_Xilinx _SPI
    #未设置 CONFIG_FPGA_Mgr_ICE40_SPI
    #未设置 CONFIG_FPGA_Mgr_MACHXO2_SPI
    #未设置 CONFIG_FPGA_Mgr_Microchip_SPI
    #未设置 CONFIG_FPGA_Mgr_lattice_sysconfig_SPI
    # CONFIG_DEBUG_SPINLOCK 未设置

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    I 启用了 SPI。 比您更好!


    root@beagleplay-ti:/dev# ls /dev/spidev *
    /dev/spidev0.0

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我观察到 /dev 包含从 ttyS0 到的设备 ttyS11。 我想确定其中哪些串行端口映射到 mikroBUS UART。

    在设备树中、从 serial@2800000 到列出了 UART 节点 serial@2860000。 您能否解释一下如何识别 ttySx 与 mikroBUS UART 接口相对应的设备?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Aparna:
    通常、一般来说、识别此类物体的正确方法是首先转到电路板原理图、并检查将哪个 UART 实例定向到您所需的端口。 然后、在电路板 DTS 文件中、检查 定义了哪个节点以及定义了引脚多路复用节点的外设实例。

    对于这种情况、有一个合理的快捷方式、因为 beagleplay dts 文件提到`mikrobus_uart_pins_default`在`main_uart5`中定义。
     `m、您需要找到 Δ V ain_uart5`的定义位置。 在跟踪包含在 beagleplay DTS 中,你会发现以下:
    k3-am625-beagleplay.dts -> k3-am625.dtsi  -> k3-am62.dtsi -> k3-am62-main.dtsi  

    上面的最后一个文件定义了 main_uart5、这将回答您的问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢。 我会检查一下。