概述

T153派开发板是全志 T153 芯片,共启用了 3 路 I2C (TWI) 总线。其中 1 路为板载专用,2 路引出供用户扩展。为了方便用户进行二次开发,主板通过 40Pin 排针引出了两路空闲的 I2C 接口(TWI0 和 TWI5),供用户连接外部传感器或模块。本文将以此为例,指导用户如何在 TWI0 接口上适配外部 I2C 设备。

硬件资源分配表

总线名称 芯片引脚 物理接口位置 状态 当前挂载设备 备注
TWI2 PB2 (SCK) / PB3 (SDA) 板载 (CTP接口/RTC电路) 已占用 GT911 (触摸屏) / PCF8563 (RTC) / ES8388 (音频) 供板载使用,总线频率100kHz。触摸屏使用PA21(Reset)和PA22(IRQ)
TWI5 PD20 (SCK) / PD21 (SDA) 板载 已禁用 无 (空闲) 用户扩展

修改方法

TWi驱动配置

在初次配置内核时,直接搜索 AW_TWI 可能会显示 [=n] 且无法选中,或者在菜单中找不到 TWI Drivers 选项。这是因为 TWI 驱动存在前置依赖。请严格按照以下步骤,逐级开启依赖项

实际目录是:Allwinner BSP -> Device Drivers -> TWI Drivers

第一步:开启全志平台基础支持 (AW_BSP)

在 SDK 根目录执行 ./build.sh menuconfig 进入配置界面。

按 / 键(搜索功能),输入 AW_BSP 并回车。

在搜索结果中,根据提示的数字编号(如 (1)),按下对应数字键直接跳转至 Allwinner BSP -> Platform Information。

找到 [ ] Allwinner Platform(即 AW_BSP),按空格键将其设置为 <*>。
(系统可能会提示自动开启依赖项(如 ARCH_SUNXI、PINCTRL 等),一律按 Y 允许即可。)

第二步:开启 DMA 控制器驱动 (AW_DMA)

AW_BSP 开启后,按 Esc 退至主界面,再次按 / 键搜索 AW_DMA。

根据提示的数字编号跳转至 Allwinner BSP -> Device Drivers -> DMA Drivers。

找到 [ ] DMA Support for Allwinner SoCs,按空格键将其设置为 (或 <>,视具体依赖状态而定,若无法选 <>,选 即可满足依赖)。

若提示开启 DMADEVICES 等依赖项,按 Y 允许。

第三步:开启 TWI 驱动 (AW_TWI)

此时 AW_BSP 已为 [=y],AW_DMA 已为 [=m],TWI 的前置依赖条件已全部满足。

按 / 键搜索 AW_TWI,根据提示跳转至 Allwinner BSP -> Device Drivers -> TWI Drivers。

找到 [ ] I2C Support for Allwinner SoCs,按空格键将其设置为 (该选项为 tristate 类型,循环切换空白 / / <*>。受底层依赖为 的影响,此处通常只能选到 。 即为有效的开启状态,系统启动时会自动加载该模块)。

该选项下方的 SUNXI TWI hardware init delay 等调试选项保持默认 [ ] 即可,无需开启。

第四步:保存并退出
连续按 Esc 返回主界面,选择 < Save > 保存配置,然后选择 < Exit > 退出 menuconfig。


TWI配置设备树

查看配置信息

如上图所示,本主板 TWI2 默认使用 PB2 (SCK) 和 PB3 (SDA) 引脚。该总线为板载核心总线,已挂载 RTC (PCF8563)、触摸屏 (GT911)、音频 (ES8388) 等外设。TWI5 默认使用 PD20 (SCK) 和 PD21 (SDA) 引脚,目前处于禁用状态。用户通常无需修改引脚定义,只需在对应的 &twiX 节点中挂载自己的设备即可。

查看路径为:device/config/chips/t153/configs/t153_nand_base/linux-5.10-origin/board.dts

配置注意事项

clock-frequency:当前配置为 100000(即 100kHz),属于标准模式。
pinctrl-0 / pinctrl-1:分别引用了默认状态和休眠状态的引脚配置(即 PB2 和 PB3),系统默认已配置好
twi_drv_used:全志平台推荐的兼容性配置,保持为 <1> 即可。
status:必须设置为 “okay”,若您要使用 TWI5,需将其 status 修改为 “okay”。

添加外部设备:
若要在此总线上挂载外部 I2C 传感器,只需在 status = “okay”; 下方添加对应的设备子节点即可。
注意,挂在同一总线上的设备,其 I2C 地址(reg 属性)不能冲突。

⚠️ 注意事项:
本主板 TWI2(引脚 PB2/PB3) 为板载专用总线,已连接 RTC、触摸屏、音频和 HDMI 桥接芯片。请勿随意修改 &twi2 节点中已有设备的配置,以免导致板载功能失效。

测试与验证

1.确认I2C设备节点:进入系统终端,输入以下命令查看系统生成的 I2C 适配器:
ls /dev/i2c-
通常会看到 /dev/i2c-0(对应 TWI0)以及其他 I2C 节点。具体编号可能因系统加载顺序而偏移,建议配合 i2cdetect -l 命令确认。
2.扫描总线上的设备:使用 i2cdetect 工具扫描 TWI0总线上挂载的设备。假设 TWI2 映射为 /dev/i2c-0:
i2cdetect -y 2
预期结果:如果您的设备成功挂载且驱动正常,会在对应的 I2C 地址位置显示设备的十六进制地址

作者:林晓燕  创建时间:2026-10-14 17:59
最后编辑:林晓燕  更新时间:2026-10-15 15:11