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 | pcfg_pull_up: pcfg-pull-up { |
一个 group可引用一个 config phandle;组合属性应定义独立 pcfg node。
10. 安全
错误 drive过大增加 EMI/过冲,过小导致时序失败;错误 pull会增加漏电或反向驱动。量产修改需配合原理图、IBIS/示波器和电压域验证。
正在加载留言…