1 Kernel driver nsa320_hwmon 1 Kernel driver nsa320_hwmon 2 ========================== 2 ========================== 3 3 4 Supported chips: 4 Supported chips: 5 5 6 * Holtek HT46R065 microcontroller with onboa 6 * Holtek HT46R065 microcontroller with onboard firmware that configures 7 7 8 it to act as a hardware monitor. 8 it to act as a hardware monitor. 9 9 10 Prefix: 'nsa320' 10 Prefix: 'nsa320' 11 11 12 Addresses scanned: none 12 Addresses scanned: none 13 13 14 Datasheet: Not available, driver was rever 14 Datasheet: Not available, driver was reverse engineered based upon the 15 15 16 Zyxel kernel source 16 Zyxel kernel source 17 17 18 18 19 19 20 Author: 20 Author: 21 21 22 Adam Baker <linux@baker-net.org.uk> 22 Adam Baker <linux@baker-net.org.uk> 23 23 24 Description 24 Description 25 ----------- 25 ----------- 26 26 27 This chip is known to be used in the Zyxel NSA 27 This chip is known to be used in the Zyxel NSA320 and NSA325 NAS Units and 28 also in some variants of the NSA310 but the dr 28 also in some variants of the NSA310 but the driver has only been tested 29 on the NSA320. In all of these devices it is c 29 on the NSA320. In all of these devices it is connected to the same 3 GPIO 30 lines which are used to provide chip select, c 30 lines which are used to provide chip select, clock and data lines. The 31 interface behaves similarly to SPI but at much 31 interface behaves similarly to SPI but at much lower speeds than are normally 32 used for SPI. 32 used for SPI. 33 33 34 Following each chip select pulse the chip will 34 Following each chip select pulse the chip will generate a single 32 bit word 35 that contains 0x55 as a marker to indicate tha 35 that contains 0x55 as a marker to indicate that data is being read correctly, 36 followed by an 8 bit fan speed in 100s of RPM 36 followed by an 8 bit fan speed in 100s of RPM and a 16 bit temperature in 37 tenths of a degree. 37 tenths of a degree. 38 38 39 39 40 sysfs-Interface 40 sysfs-Interface 41 --------------- 41 --------------- 42 42 43 ============= ================= 43 ============= ================= 44 temp1_input temperature input 44 temp1_input temperature input 45 fan1_input fan speed 45 fan1_input fan speed 46 ============= ================= 46 ============= ================= 47 47 48 Notes 48 Notes 49 ----- 49 ----- 50 50 51 The access timings used in the driver are the 51 The access timings used in the driver are the same as used in the Zyxel 52 provided kernel. Testing has shown that if the 52 provided kernel. Testing has shown that if the delay between chip select and 53 the first clock pulse is reduced from 100 ms t 53 the first clock pulse is reduced from 100 ms to just under 10ms then the chip 54 will not produce any output. If the duration o 54 will not produce any output. If the duration of either phase of the clock 55 is reduced from 100 us to less than 15 us then 55 is reduced from 100 us to less than 15 us then data pulses are likely to be 56 read twice corrupting the output. The above an 56 read twice corrupting the output. The above analysis is based upon a sample 57 of one unit but suggests that the Zyxel provid 57 of one unit but suggests that the Zyxel provided delay values include a 58 reasonable tolerance. 58 reasonable tolerance. 59 59 60 The driver incorporates a limit that it will n 60 The driver incorporates a limit that it will not check for updated values 61 faster than once a second. This is because the 61 faster than once a second. This is because the hardware takes a relatively long 62 time to read the data from the device and when 62 time to read the data from the device and when it does it reads both temp and 63 fan speed. As the most likely case for two acc 63 fan speed. As the most likely case for two accesses in quick succession is 64 to read both of these values avoiding a second 64 to read both of these values avoiding a second read delay is desirable.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.