From: "Yaoze Wang (Yunyun)" <wangyaoze999@gmail.com>
To: alexs@kernel.org, si.yanteng@linux.dev
Cc: dzm91@hust.edu.cn, corbet@lwn.net, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org,
"Yaoze Wang (Yunyun)" <wangyaoze999@gmail.com>
Subject: [PATCH] docs/zh_CN: Add i3c Chinese translation
Date: Sun, 15 Nov 2026 11:43:07 +0800 [thread overview]
Message-ID: <20261115034307.15-1-wangyaoze999@gmail.com> (raw)
Translate .../driver-api/i3c/index.rst, protocol.rst,
device-driver-api.rst and master-driver-api.rst into Chinese.
Update the translation through commit 395107a7c91a ("docs:
driver-api: fix spelling of "buses".")
Signed-off-by: Yaoze Wang (Yunyun) <wangyaoze999@gmail.com>
---
.../driver-api/i3c/device-driver-api.rst | 17 ++
.../zh_CN/driver-api/i3c/index.rst | 19 ++
.../driver-api/i3c/master-driver-api.rst | 17 ++
.../zh_CN/driver-api/i3c/protocol.rst | 183 ++++++++++++++++++
.../translations/zh_CN/driver-api/index.rst | 2 +-
5 files changed, 237 insertions(+), 1 deletion(-)
create mode 100644 Documentation/translations/zh_CN/driver-api/i3c/device-driver-api.rst
create mode 100644 Documentation/translations/zh_CN/driver-api/i3c/index.rst
create mode 100644 Documentation/translations/zh_CN/driver-api/i3c/master-driver-api.rst
create mode 100644 Documentation/translations/zh_CN/driver-api/i3c/protocol.rst
diff --git a/Documentation/translations/zh_CN/driver-api/i3c/device-driver-api.rst b/Documentation/translations/zh_CN/driver-api/i3c/device-driver-api.rst
new file mode 100644
index 000000000..eedf61d1a
--- /dev/null
+++ b/Documentation/translations/zh_CN/driver-api/i3c/device-driver-api.rst
@@ -0,0 +1,17 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+.. include:: ../../disclaimer-zh_CN.rst
+
+:Original: Documentation/driver-api/i3c/device-driver-api.rst
+
+:翻译:
+
+ Yaoze Wang (Yunyun) <yunyun@caellab.com>
+
+================
+I3C 设备驱动 API
+================
+
+.. kernel-doc:: include/linux/i3c/device.h
+
+.. kernel-doc:: drivers/i3c/device.c
diff --git a/Documentation/translations/zh_CN/driver-api/i3c/index.rst b/Documentation/translations/zh_CN/driver-api/i3c/index.rst
new file mode 100644
index 000000000..5113e1a99
--- /dev/null
+++ b/Documentation/translations/zh_CN/driver-api/i3c/index.rst
@@ -0,0 +1,19 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+.. include:: ../../disclaimer-zh_CN.rst
+
+:Original: Documentation/driver-api/i3c/index.rst
+
+:翻译:
+
+ Yaoze Wang (Yunyun) <yunyun@caellab.com>
+
+==========
+I3C 子系统
+==========
+
+.. toctree::
+
+ protocol
+ device-driver-api
+ master-driver-api
diff --git a/Documentation/translations/zh_CN/driver-api/i3c/master-driver-api.rst b/Documentation/translations/zh_CN/driver-api/i3c/master-driver-api.rst
new file mode 100644
index 000000000..4006650e6
--- /dev/null
+++ b/Documentation/translations/zh_CN/driver-api/i3c/master-driver-api.rst
@@ -0,0 +1,17 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+.. include:: ../../disclaimer-zh_CN.rst
+
+:Original: Documentation/driver-api/i3c/master-driver-api.rst
+
+:翻译:
+
+ Yaoze Wang (Yunyun) <yunyun@caellab.com>
+
+====================
+I3C 主控制器驱动 API
+====================
+
+.. kernel-doc:: drivers/i3c/master.c
+
+.. kernel-doc:: include/linux/i3c/master.h
diff --git a/Documentation/translations/zh_CN/driver-api/i3c/protocol.rst b/Documentation/translations/zh_CN/driver-api/i3c/protocol.rst
new file mode 100644
index 000000000..3a1b2ebcc
--- /dev/null
+++ b/Documentation/translations/zh_CN/driver-api/i3c/protocol.rst
@@ -0,0 +1,183 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+.. include:: ../../disclaimer-zh_CN.rst
+
+:Original: Documentation/driver-api/i3c/protocol.rst
+
+:翻译:
+
+ Yaoze Wang (Yunyun) <yunyun@caellab.com>
+
+========
+I3C 协议
+========
+
+免责声明
+========
+
+本章重点关注与软件开发人员相关的内容。至于所有与硬件相关的内容(例如数据
+在总线上如何传输、冲突如何避免等),请参阅 I3C 规范。
+
+本文档只是对 I3C 协议及其概念的简要介绍。如果需要更多信息,请
+参阅 MIPI I3C 规范(可在此处下载
+https://resources.mipi.org/mipi-i3c-v1-download)。
+
+简介
+====
+
+I3C(读作 'eye-three-see')是由 MIPI 标准化的协议,目的是克服 I2C 的局限
+(速度有限、中断需要额外的外部信号、无法自动检测总线上连接的设备等),同时
+保持低功耗。
+
+I3C 总线
+========
+
+一条 I3C 总线由若干 I3C 设备构成,也可能包含一些 I2C 设备,但这里先只讨论
+I3C 设备。
+
+I3C 总线上的 I3C 设备可以扮演以下角色之一:
+
+* 主设备(Master):该设备掌控总线。它负责发起事务,或者决定谁可以在总线上
+ 发送(I3C 中允许从设备产生事件,见下文)。
+* 从设备(Slave):该设备作为从设备工作,不能向总线上的另一个从设备发送帧。
+ 如果主设备允许,它仍可以主动向主设备发送事件。
+
+I3C 是多主协议,因此一条总线上可能存在多个主设备,但在任一时刻只能有一个
+设备充当主设备。主设备要获得总线所有权,必须遵循特定的流程。
+
+I3C 总线上的每个设备都必须分配一个动态地址才能通信。在此之前,设备只应响应
+有限的一组命令。如果设备有静态地址(也称为传统 I2C 地址),它可以响应 I2C
+传输。
+
+除了这些每设备地址之外,协议还定义了一个广播地址,用于寻址总线上的所有设备。
+
+一旦为设备分配了动态地址,与该设备的任何直接通信都将使用该地址。需要注意的
+是,即使已经分配了动态地址,设备仍应处理广播消息。
+
+I3C 设备发现
+============
+
+I3C 协议定义了一种机制,用于自动发现总线上存在的设备、它们的能力以及它们
+提供的功能。在这方面,I3C 更接近 USB 这样的可发现总线,而不是 I2C 或 SPI。
+
+这种发现机制称为 DAA(动态地址分配,Dynamic Address Assignment),因为它
+不仅发现设备,还为它们分配动态地址。
+
+在 DAA 期间,每个 I3C 设备会上报三项重要信息:
+
+* BCR:总线特性寄存器(Bus Characteristic Register)。这个 8 位寄存器描述
+ 设备与总线相关的能力
+* DCR:设备特性寄存器(Device Characteristic Register)。这个 8 位寄存器
+ 描述设备提供的功能
+* Provisioned ID(预配置 ID):一个 48 位唯一标识符。在同一条总线上不应出现
+ Provisioned ID 冲突,否则发现机制可能失败。
+
+I3C 从设备事件
+==============
+
+I3C 协议允许从设备自行产生事件,从而允许它们临时接管总线。
+
+这种机制称为 IBI(带内中断,In Band Interrupts)。顾名思义,它允许设备在
+没有外部信号的情况下产生中断。
+
+在 DAA 期间,总线上的每个设备都会被分配一个地址,这个地址将作为优先级标识,
+用于在两个不同设备同时于总线上产生中断时决定谁获胜(动态地址越小,优先级
+越高)。
+
+主设备可以根据需要禁止中断。这种禁止请求可以广播(对所有设备生效),也可以
+发送给特定设备。
+
+I3C 热加入
+==========
+
+热加入(Hot-Join)机制类似于 USB 热插拔。该机制允许从设备在主设备完成总线
+初始化之后加入总线。
+
+这涵盖以下使用场景:
+
+* 总线探测时设备未上电
+* 设备通过扩展板热插拔到总线上
+
+该机制依赖从设备事件来通知主设备:有新设备加入了总线,正在等待动态地址。
+
+随后主设备可以自行决定如何处理该请求:忽略它,或者为该从设备分配动态地址。
+
+I3C 传输类型
+============
+
+如果略去 SMBus(它只是对访问 I2C 设备寄存器方式的一种标准化),那么 I2C 只有
+一种传输类型。
+
+I3C 除了为向后兼容 I2C 设备而保留的 I2C 传输之外,还定义了 3 种不同的传输
+类别。
+
+I3C CCC 命令
+------------
+
+CCC(通用命令码,Common Command Code)命令用于所有与总线管理相关的事务,
+以及若干设备共有的一切特性。
+
+CCC 命令包含一个 8 位的 CCC ID,用于描述所执行的命令。该 ID 的最高位
+(bit7)指定这是广播命令(bit7 = 0)还是单播命令(bit7 = 1)。
+
+命令 ID 之后可以跟随一个负载。取决于具体命令,该负载要么由发送命令的主设备
+发送(写 CCC 命令),要么由接收命令的从设备发送(读 CCC 命令)。当然,读
+访问只适用于单播命令。
+注意,向特定设备发送 CCC 命令时,设备地址放在负载的第一个字节中。
+
+负载长度不会显式地在总线上传递,应当从 CCC ID 中解析出来。
+
+注意,厂商可以使用一段专用的 CCC ID 范围来定义自己的命令
+(0x61-0x7f 和 0xe0-0xef)。
+
+I3C 私有 SDR 传输
+-----------------
+
+私有 SDR(单数据速率,Single Data Rate)传输用于设备特有、且不需要高传输
+速率的一切事务。
+
+它相当于 I3C 世界中的 I2C 传输。每次传输都会携带设备地址(DAA 期间分配的
+动态地址)、一个负载和一个方向。
+
+与 I2C 的唯一区别是传输速度快得多(典型时钟频率为 12.5MHz)。
+
+I3C HDR 命令
+------------
+
+HDR 命令用于设备特有、且需要高传输速率的一切事务。
+
+HDR 命令首先附带的是 HDR 模式。I3C 规范目前定义了 3 种不同的模式(详情请
+参阅规范):
+
+* HDR-DDR:双数据速率(Double Data Rate)模式
+* HDR-TSP:纯三进制符号(Ternary Symbol Pure)。只能用于没有 I2C 设备的
+ 总线
+* HDR-TSL:传统三进制符号(Ternary Symbol Legacy)。可用于带有 I2C 设备
+ 的总线
+
+发送 HDR 命令时,整条总线必须进入 HDR 模式,这通过一条广播 CCC 命令完成。
+一旦总线进入特定的 HDR 模式,主设备便发送 HDR 命令。一条 HDR 命令由以下
+部分组成:
+
+* 一个 16 位的命令字(大端序)
+* N 个 16 位的数据字(大端序)
+
+这些字可能会被特定的前导码/后导码包裹,具体取决于所选的 HDR 模式,详情见
+规范。
+
+16 位命令字由以下部分组成:
+
+* bit[15]:方向位,读为 1,写为 0
+* bit[14:8]:命令码。标识所执行的命令、数据字的数量及其含义
+* bit[7:1]:该命令所寻址设备的 I3C 地址
+* bit[0]:保留位/奇偶校验位
+
+与 I2C 设备的向后兼容性
+=======================
+
+I3C 协议在设计上向后兼容 I2C 设备。这种向后兼容性允许在同一条总线上混接 I2C
+和 I3C 设备;不过,为了真正高效,I2C 设备应配备 50 ns 的尖峰滤波器。
+
+I2C 设备无法像 I3C 设备那样被自动发现,必须通过静态声明添加。为了让主设备
+了解这些设备的能力(包括总线相关限制和功能两方面),软件必须提供一些信息,
+这通过 LVR(传统 I2C 虚拟寄存器,Legacy I2C Virtual Register)完成。
diff --git a/Documentation/translations/zh_CN/driver-api/index.rst b/Documentation/translations/zh_CN/driver-api/index.rst
index 4050a2fb5..00dab29c4 100644
--- a/Documentation/translations/zh_CN/driver-api/index.rst
+++ b/Documentation/translations/zh_CN/driver-api/index.rst
@@ -22,6 +22,7 @@ Linux驱动实现者的API指南
:maxdepth: 2
gpio/index
+ i3c/index
io_ordering
phy/index
@@ -54,7 +55,6 @@ Todolist:
* i2c
* ipmb
* ipmi
-* i3c/index
* interconnect
* devfreq
* hsi
--
2.43.0
reply other threads:[~2026-11-15 3:43 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261115034307.15-1-wangyaoze999@gmail.com \
--to=wangyaoze999@gmail.com \
--cc=alexs@kernel.org \
--cc=corbet@lwn.net \
--cc=dzm91@hust.edu.cn \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=si.yanteng@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox