GPIO 输出时钟(Gpio Output Clocks)
本文档基于瑞芯微官方文档 Rockchip_Developer_Guide_Gpio_Output_Clocks_CN.pdf(V1.3.0, 2024-04-27)整理,介绍 Rockchip 平台使用 GPIO 引脚输出时钟的方法。
适用范围
- 芯片平台:RK3399 / RK1808 / RK3328 / RK3308 / RV1126 / PX30 / RK3566/8 / RK3588 / RK3528 / RK3576 / RK2118
- 内核版本:Linux 4.4 及以上 / RTT
- 读者对象:技术支持工程师、软件开发工程师
概念介绍
概念解释
随着外围设备增加以及成本约束,很多外设希望使用 SOC 的 IO 输出某些特定时钟频率来替代外部晶振,从而减少外围电路成本。
主要配置
SOC 上 IO 输出 CLK 的前提是该 IO 的 IOMUX 有 CLK 输出功能。
1. IOMUX 配置
IO 的 IOMUX 必须配置成 CLK 输出功能。
2. CLK 频率配置
需要配置 CLK 频率。因为是替代外部晶振的:
- 如果输出 24M 且从 SOC 晶振 bypass → 信号质量最好
- 如果从 PLL 分频下来 → 信号质量稍差,是否满足外设需求看外设参考文档
3. IO 驱动能力
有的 IO 上波形不好看,可能需要调整 IO 的驱动能力。
GPIO 和 CLK 硬件对应关系
各芯片的 GPIO 与 CLK 输出的硬件对应关系请参考对应芯片的 TRM 手册,查找以下内容:
- 支持 CLK 输出的 GPIO 引脚
- 对应的 IOMUX function 配置
- 可选的时钟源和分频方式
下面列出各芯片的配置示例。
芯片示例
以下给出各芯片使用 io 命令配置 GPIO 输出时钟的示例。实际使用时请根据芯片 TRM 确认寄存器地址和位定义。
RK3288
略(详见原文档)
RK3328
略(详见原文档)
PX30
略(详见原文档)
RK3308
略(详见原文档)
RV1108
略(详见原文档)
RV1126
略(详见原文档)
RK3368
略(详见原文档)
RK3399
略(详见原文档)
RK3566 / RK3568
略(详见原文档)
RK3588
略(详见原文档)
RK3528
略(详见原文档)
RK3576
略(详见原文档)
RK2118
略(详见原文档)
软件示例
各芯片的软件配置示例(U-Boot 或 Kernel 驱动中的配置方法)请参考原文档对应章节。
参考资料
- 原始文档:
Rockchip_Developer_Guide_Gpio_Output_Clocks_CN.pdfV1.3.0 - 瑞芯微官网:www.rock-chips.com