跳到主要内容

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.pdf V1.3.0
  • 瑞芯微官网:www.rock-chips.com