17ebd8b66SMauro Carvalho ChehabKernel driver g762 27ebd8b66SMauro Carvalho Chehab================== 37ebd8b66SMauro Carvalho Chehab 47ebd8b66SMauro Carvalho ChehabThe GMT G762 Fan Speed PWM Controller is connected directly to a fan 57ebd8b66SMauro Carvalho Chehaband performs closed-loop or open-loop control of the fan speed. Two 67ebd8b66SMauro Carvalho Chehabmodes - PWM or DC - are supported by the device. 77ebd8b66SMauro Carvalho Chehab 87ebd8b66SMauro Carvalho ChehabFor additional information, a detailed datasheet is available at 97ebd8b66SMauro Carvalho Chehabhttp://natisbad.org/NAS/ref/GMT_EDS-762_763-080710-0.2.pdf. sysfs 107ebd8b66SMauro Carvalho Chehabbindings are described in Documentation/hwmon/sysfs-interface.rst. 117ebd8b66SMauro Carvalho Chehab 127ebd8b66SMauro Carvalho ChehabThe following entries are available to the user in a subdirectory of 137ebd8b66SMauro Carvalho Chehab/sys/bus/i2c/drivers/g762/ to control the operation of the device. 147ebd8b66SMauro Carvalho ChehabThis can be done manually using the following entries but is usually 157ebd8b66SMauro Carvalho Chehabdone via a userland daemon like fancontrol. 167ebd8b66SMauro Carvalho Chehab 177ebd8b66SMauro Carvalho ChehabNote that those entries do not provide ways to setup the specific 187ebd8b66SMauro Carvalho Chehabhardware characteristics of the system (reference clock, pulses per 197ebd8b66SMauro Carvalho Chehabfan revolution, ...); Those can be modified via devicetree bindings 207ebd8b66SMauro Carvalho Chehabdocumented in Documentation/devicetree/bindings/hwmon/g762.txt or 217ebd8b66SMauro Carvalho Chehabusing a specific platform_data structure in board initialization 227ebd8b66SMauro Carvalho Chehabfile (see include/linux/platform_data/g762.h). 237ebd8b66SMauro Carvalho Chehab 247ebd8b66SMauro Carvalho Chehab fan1_target: 257ebd8b66SMauro Carvalho Chehab set desired fan speed. This only makes sense in closed-loop 267ebd8b66SMauro Carvalho Chehab fan speed control (i.e. when pwm1_enable is set to 2). 277ebd8b66SMauro Carvalho Chehab 287ebd8b66SMauro Carvalho Chehab fan1_input: 297ebd8b66SMauro Carvalho Chehab provide current fan rotation value in RPM as reported by 307ebd8b66SMauro Carvalho Chehab the fan to the device. 317ebd8b66SMauro Carvalho Chehab 327ebd8b66SMauro Carvalho Chehab fan1_div: 337ebd8b66SMauro Carvalho Chehab fan clock divisor. Supported value are 1, 2, 4 and 8. 347ebd8b66SMauro Carvalho Chehab 357ebd8b66SMauro Carvalho Chehab fan1_pulses: 367ebd8b66SMauro Carvalho Chehab number of pulses per fan revolution. Supported values 377ebd8b66SMauro Carvalho Chehab are 2 and 4. 387ebd8b66SMauro Carvalho Chehab 397ebd8b66SMauro Carvalho Chehab fan1_fault: 407ebd8b66SMauro Carvalho Chehab reports fan failure, i.e. no transition on fan gear pin for 417ebd8b66SMauro Carvalho Chehab about 0.7s (if the fan is not voluntarily set off). 427ebd8b66SMauro Carvalho Chehab 437ebd8b66SMauro Carvalho Chehab fan1_alarm: 447ebd8b66SMauro Carvalho Chehab in closed-loop control mode, if fan RPM value is 25% out 457ebd8b66SMauro Carvalho Chehab of the programmed value for over 6 seconds 'fan1_alarm' is 467ebd8b66SMauro Carvalho Chehab set to 1. 477ebd8b66SMauro Carvalho Chehab 487ebd8b66SMauro Carvalho Chehab pwm1_enable: 497ebd8b66SMauro Carvalho Chehab set current fan speed control mode i.e. 1 for manual fan 507ebd8b66SMauro Carvalho Chehab speed control (open-loop) via pwm1 described below, 2 for 517ebd8b66SMauro Carvalho Chehab automatic fan speed control (closed-loop) via fan1_target 527ebd8b66SMauro Carvalho Chehab above. 537ebd8b66SMauro Carvalho Chehab 547ebd8b66SMauro Carvalho Chehab pwm1_mode: 557ebd8b66SMauro Carvalho Chehab set or get fan driving mode: 1 for PWM mode, 0 for DC mode. 567ebd8b66SMauro Carvalho Chehab 577ebd8b66SMauro Carvalho Chehab pwm1: 587ebd8b66SMauro Carvalho Chehab get or set PWM fan control value in open-loop mode. This is an 597ebd8b66SMauro Carvalho Chehab integer value between 0 and 255. 0 stops the fan, 255 makes 607ebd8b66SMauro Carvalho Chehab it run at full speed. 617ebd8b66SMauro Carvalho Chehab 627ebd8b66SMauro Carvalho ChehabBoth in PWM mode ('pwm1_mode' set to 1) and DC mode ('pwm1_mode' set to 0), 637ebd8b66SMauro Carvalho Chehabwhen current fan speed control mode is open-loop ('pwm1_enable' set to 1), 647ebd8b66SMauro Carvalho Chehabthe fan speed is programmed by setting a value between 0 and 255 via 'pwm1' 657ebd8b66SMauro Carvalho Chehabentry (0 stops the fan, 255 makes it run at full speed). In closed-loop mode 667ebd8b66SMauro Carvalho Chehab('pwm1_enable' set to 2), the expected rotation speed in RPM can be passed to 677ebd8b66SMauro Carvalho Chehabthe chip via 'fan1_target'. In closed-loop mode, the target speed is compared 687ebd8b66SMauro Carvalho Chehabwith current speed (available via 'fan1_input') by the device and a feedback 697ebd8b66SMauro Carvalho Chehabis performed to match that target value. The fan speed value is computed 707ebd8b66SMauro Carvalho Chehabbased on the parameters associated with the physical characteristics of the 717ebd8b66SMauro Carvalho Chehabsystem: a reference clock source frequency, a number of pulses per fan 727ebd8b66SMauro Carvalho Chehabrevolution, etc. 737ebd8b66SMauro Carvalho Chehab 747ebd8b66SMauro Carvalho ChehabNote that the driver will update its values at most once per second. 75