ZHCADB4A November 2023 – April 2026 AM625 , AM62L , MSPM0C1105 , MSPM0C1106 , MSPM0L1306
按照 AM62L 入门指南中提供的步骤操作。
以下实验中使用了适用于 AM62L 的处理器 SDK Linux 版本 11.0.15。
通过在 AM62L SDK 的 ti-linux-kernel 存储库中应用以下补丁,在 Linux 中设置 SPI 驱动程序。
注意:下面提供的补丁中禁用了 HDMI。这是因为在 TMDS62LEVM 上,HDMI 与扩展接头进行多路复用,一次只能使用其中一个。
diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
index 2dd056ce0538..6cf837274c6e 100644
--- a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
@@ -36,6 +36,7 @@ memory@80000000 {
hdmi0: connector-hdmi {
compatible = "hdmi-connector";
+ status = "disabled";
label = "hdmi";
type = "a";
@@ -389,6 +390,15 @@ AM62PX_IOPAD(0x0188, PIN_INPUT, 0) /* (A9) MCASP0_AXR1 */
>;
};
+ main_spi1_pins_default: main-spi1-pins-default {
+ pinctrl-single,pins = <
+ AM62LX_IOPAD(0x008c, PIN_OUTPUT, 4) /* (H22) SPI1_CLK */
+ AM62LX_IOPAD(0x0080, PIN_INPUT, 4) /* (K22) SPI1_D0 */
+ AM62LX_IOPAD(0x0084, PIN_OUTPUT, 4) /* (J23) SPI1_D1 */
+ AM62LX_IOPAD(0x0088, PIN_OUTPUT, 4) /* (K23) SPI1_CS0 */
+ >;
+ };
+
pmic_irq_pins_default: pmic-irq-default-pins {
pinctrl-single,pins = <
AM62LX_IOPAD(0x01e8, PIN_INPUT, 0) /* (C8) EXTINTn */
@@ -410,6 +420,17 @@ &main_uart0 {
bootph-all;
};
+&main_spi1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_spi1_pins_default>;
+ spidev@0 {
+ spi-max-frequency = <24000000>;
+ reg = <0>;
+ compatible = "rohm,dh2228fv";
+ };
+};
+
&main_uart1 {
pinctrl-names = "default";
pinctrl-0 = <&main_uart1_pins_default>;
@@ -488,11 +509,14 @@ exp2: gpio@23 {
sii9022: bridge-hdmi@3b {
compatible = "sil,sii9022";
+ status="disabled";
reg = <0x3b>;
interrupt-parent = <&exp1>;
interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
#sound-dai-cells = <0>;
sil,i2s-data-lanes = < 0 >;
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_dpi_pins_default>;
bootph-all;
ports {
@@ -774,8 +798,6 @@ partition@7fe0000 {
&dss {
status = "okay";
- pinctrl-names = "default";
- pinctrl-0 = <&main_dpi_pins_default>;
bootph-all;
};
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 94dfc265a61c..157d0d62fb53 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -1828,3 +1828,5 @@ CONFIG_CORESIGHT_STM=m
CONFIG_CORESIGHT_CPU_DEBUG=m
CONFIG_CORESIGHT_CTI=m
CONFIG_MEMTEST=y
+CONFIG_UHID=y
+CONFIG_SPI_SPIDEV=y
\ No newline at end of file
重新编译 Linux 并在 SD/eMMC 上安装镜像、dtb 和模块。
在 Linux 用户空间中使用并编译此处链接的 C 文件
对于多字节示例,有 2 种在控制器端接收数据的方法。一种方法是以 2 个时钟(每个时钟 8 位,来自 MSPM0)发送数据。另一种方法是在双持续时间的单个时钟突发中发送整个数据。这两种方法都已经过测试,可以从此处链接的 C 文件实现。
注意:如果在 Linux 用户空间中难以在更高的 SPI 频率下运行 SPI 脚本,请连接 MSPM0 和 AM62L 的接地引脚。