Pinconf 通用参数与电气属性

Pinconf 通用参数与电气属性

1. 通用参数

  • bias-disable;
  • bias-pull-up/down;
  • bias-pull-pin-default;
  • drive-strength;
  • input-enable/disable;
  • input-schmitt-enable/disable;
  • output-high/low;
  • drive-open-drain/source;
  • slew-rate;
  • power-source;
  • debounce等。

具体 controller只实现子集。

2. 打包

Core用 pinconf_to_config_packed(param, argument)把参数和数值打包为 unsigned long,再传给 pin/group config set。

3. Pin vs Group

  • pin_config_set:单 pin;
  • pin_config_group_set:组;

generic helper可把 group config展开到每个 pin。部分硬件属性按 bank共享,driver需处理冲突。

4. Bias

Pull-up/down给浮空输入稳定默认电平。不能用内部弱 pull替代外部高速/关键总线电阻。I2C必须有符合电压和阻值的外部上拉。

5. Drive strength

通用 binding把 drive-strength定义为 mA,但控制器只支持离散档,通常由driver查表匹配。

本厂商树是重要例外:rockchip_set_drive_perpin()对 RK3588直接把 drive-strength参数作为4-bit寄存器值写入,而不是查 mA表;读取路径又没有对 RK3588做同样的4-bit特判。因而其属性语义和 get/set对称性值得警惕,不能仅按上游通用 mA语义配置,必须对照本树 rk3588s-pinconf.dtsi、TRM和实测。

6. Schmitt

Schmitt trigger改善慢边沿/噪声输入抗扰度。适合按键、低速输入;高速接口应按硬件规范。

7. Output

output-high/low可在 state选择时设置方向和值,减少 reset/enable等控制线切换毛刺。Active-low语义属于 GPIO consumer flags,不应混淆 raw pad电平。

8. Power source

IO domain电压通常由 io-domain/regulator driver配置,不仅是 pinconf。Drive和输入阈值必须与 VCCIO一致。

9. DT配置节点

1
2
3
4
5
6
7
pcfg_pull_up: pcfg-pull-up {
bias-pull-up;
};

pcfg_drv_8ma: pcfg-drv-8ma {
drive-strength = <8>;
};

一个 group可引用一个 config phandle;组合属性应定义独立 pcfg node。

10. 安全

错误 drive过大增加 EMI/过冲,过小导致时序失败;错误 pull会增加漏电或反向驱动。量产修改需配合原理图、IBIS/示波器和电压域验证。

文章互动

阅读 --

留言

0 条留言

正在加载留言…