内核驱动 nsa320_hwmon¶
支持的芯片
Holtek HT46R065 微控制器,带有板载固件,配置为充当硬件监控器。
配置为充当硬件监控器。
前缀:“nsa320”
扫描地址:无
数据手册:不可用,驱动程序是根据 Zyxel 内核源代码进行逆向工程的。
Zyxel 内核源代码
作者
Adam Baker <linux@baker-net.org.uk>
描述¶
已知此芯片用于 Zyxel NSA320 和 NSA325 NAS 设备,以及 NSA310 的某些变体,但该驱动程序仅在 NSA320 上进行了测试。在所有这些设备中,它都连接到相同的 3 条 GPIO 线,这些线用于提供芯片选择、时钟和数据线。该接口的行为类似于 SPI,但速度远低于通常用于 SPI 的速度。
在每个芯片选择脉冲之后,芯片将生成一个 32 位字,其中包含 0x55 作为标记,指示数据正在正确读取,然后是一个 8 位风扇速度(以 100 RPM 为单位)和一个 16 位温度(以十分之一度为单位)。
sysfs 接口¶
temp1_input |
温度输入 |
fan1_input |
风扇速度 |
注释¶
驱动程序中使用的访问时序与 Zyxel 提供的内核中使用的相同。测试表明,如果芯片选择和第一个时钟脉冲之间的延迟从 100 毫秒减少到略低于 10 毫秒,则芯片将不会产生任何输出。如果时钟的任一阶段的持续时间从 100 微秒减少到小于 15 微秒,则数据脉冲很可能被读取两次,从而损坏输出。以上分析基于一个单元的样本,但表明 Zyxel 提供的延迟值包含合理的容差。
该驱动程序包含一个限制,即它不会以快于每秒一次的速度检查更新的值。这是因为硬件读取设备中的数据需要相对较长的时间,并且在读取时会同时读取温度和风扇速度。由于两次快速访问最可能的情况是读取这两个值,因此避免第二次读取延迟是可取的。