# TLMM

硬件通过顶层模式复用器 (TLMM) 控制通用输入/输出 (GPIO) 和备用功能的复用。您可以使用 TLMM 的 DT 属性在引导过程中配置 GPIO。

用户可以编辑以下文件路径来更新 Linux 主机上的属性：

- `/boot_images/boot/Settings/Soc/<Chipset>/Core/SocInfra/TLMM/<Chipset>-pinctrl.dtsi`
- `/boot_images/boot/Settings/Soc/<Chipset>/Core/SocInfra/TLMM/tlmm.dtsi`

下表列出了描述如何根据 Qualcomm 参考设备要求配置 GPIO 默认值的属性。

表：TLMM DT 属性

| 属性名称 | 属性描述 | 数据类型 | 可能的值/取值范围 | 设备行为 |
| --- | --- | --- | --- | --- |
| QCOM, sleep-config | `<Chipset>-pinctrl.dtsi` 中定义了 GPIO 的配置设置。这些配置将在设备启动时应用。 | UINT32 | 引脚方向：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>GPIO_INPUT – 0x1</p></li><br>> <li><p>GPIO_OUTPUT – 0x2</p></li><br>> </ul><br><br><br><br>引脚上下拉配置：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>GPIO_PULL_DOWN – 0x4</p></li><br>> <li><p>GPIO_PULL_UP – 0x8</p></li><br>> <li><p>GPIO_NO_PULL – 0x10</p></li><br>> <li><p>GPIO_KEEPER – 0x20</p></li><br>> </ul><br><br><br><br>引脚输出：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>GPIO_OUT_LOW – 0x40</p></li><br>> <li><p>GPIO_OUT_HIGH – 0x80</p></li><br>> <li><p>GPIO_PRG_YES – 0x100</p></li><br>> <li><p>GPIO_PRG_NO – 0x000</p></li><br>> </ul> | <ul><br><li><p>默认值为 GPIO_INPUT</p><ul class="simple"><br><li><p>GPIO_INPUT：允许读取输入引脚的状态</p></li><br><li><p>GPIO_输出：控制输出引脚的状态</p></li><br></ul><br></li><br><li><p>默认值为 GPIO_PULL_DOWN。</p><ul class="simple"><br><li><p>GPIO_PULL_DOWN：逻辑 0，视为接地</p></li><br><li><p>GPIO_PULL_UP：逻辑 1，连接到 Vdd 电源</p></li><br><li><p>GPIO_NO_PULL：Float/高阻状态</p></li><br><li><p>GPIO_保持器：保持 GPIO 之前的状态。当 SoC 进入最深度省电模式时，将应用此配置。</p></li><br></ul><br></li><br><li><p>默认值为 GPIO_OUT_LOW</p><br><p>GPIO_OUT_HIGH：逻辑高电平，视为连接到 Vdd。</p><br></li><br><li><p>默认值为 GPIO_PRG_NO。</p><br><p>GPIO_PRG_YES：确保任何未使用的 GPIO 在启动后保持低功耗状态</p><br></li><br></ul><br><br>示例：<br><br><br>(GPIO\_INPUT | GPIO\_PULL\_DOWN | GPIO\_OUT\_LOW | GPIO\_PRG\_NO) /\* PIN 10 [\*](https://docs.qualcomm.com/doc/80-70017-4SC/topic/tlmm-developer-touchpoints.html#id1)/ |
| Compatible | 兼容属性包含一个指向兼容芯片组的只读字符串。 | 字符串 | – | 示例：<br><br><br>`compatible = "qcom,<chipset>-pinctrl"` |
| reg | 表示只读 GPIO 基址和大小。 | UINT32 | \_ | 在 `reg` 属性元组中，第一个索引包含基址，第二个索引包含大小。示例：reg=&lt;0xf100000 0x100000&gt;; |
| ngpios | 芯片组中只读 GPIO 引脚的数量。 | UINT32 | – | 示例：<br><br><br>ngpios = &lt;175&gt;; |
| width | 每个 GPIO 引脚均有自己的一组只读控制寄存器。宽度表示引脚到引脚的寄存器偏移量。 | – | – | 示例：<br><br><br>width = &lt;0x1000&gt;; |
| id | 只读 GPIO 接插口 ID 的硬件实例。 | UINT32 | – | 示例：<br><br><br>id = &lt;0x0&gt;; |
| version | GPIO 只读驱动程序版本。驱动程序 1.0 记为 0x1。 | UINT32 | – | 示例：<br><br><br>version = &lt;0x1&gt;; |
| gpio-controller | 标识符用于将只读连接设备表示为 GPIO 设备。 | 字符串 | – | – |
| phandles 用于引脚配置 | 用于配置 GPIO 备选功能的多路复用配置。有关详细信息，请参阅[引脚说明](https://docs.qualcomm.com/bundle/80-23889-1/resource/80-23889-1_REV_AM_QCS6490_QCS5430_Data_Sheet.pdf)。 | – | `sdc4_data_1: sdc4_data_1 { mux = <13 3>; };` | 启动时，GPIO 配置为 GPIO 的备用功能。<br><br><br>示例：<br><br><br>`sdc4_data_1: sdc4_data_1 { mux = <13 3> };`<br><br><br>在此示例中，13 指的是 GPIO 编号，3 表示备选功能选择。 |

Last Published: Jan 24, 2025

[Previous Topic
PMIC](https://docs.qualcomm.com/bundle/publicresource/80-70017-4SC/topics/pmic-developer-touchpoints.md) [Next Topic
总线](https://docs.qualcomm.com/bundle/publicresource/80-70017-4SC/topics/buses.md)