Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) Kernel driver smsc47m192
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) ========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) Supported chips:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)   * SMSC LPC47M192, LPC47M15x, LPC47M292 and LPC47M997
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)     Prefix: 'smsc47m192'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10)     Addresses scanned: I2C 0x2c - 0x2d
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12)     Datasheet: The datasheet for LPC47M192 is publicly available from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 	       http://www.smsc.com/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 	       The LPC47M15x, LPC47M292 and LPC47M997 are compatible for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 	       hardware monitoring.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) Author:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23)       - Hartmut Rick <linux@rick.claranet.de>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25)       - Special thanks to Jean Delvare for careful checking
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 	of the code and many helpful comments and suggestions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) This driver implements support for the hardware sensor capabilities
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) of the SMSC LPC47M192 and compatible Super-I/O chips.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) These chips support 3 temperature channels and 8 voltage inputs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) as well as CPU voltage VID input.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) They do also have fan monitoring and control capabilities, but the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) these features are accessed via ISA bus and are not supported by this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) driver. Use the 'smsc47m1' driver for fan monitoring and control.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) Voltages and temperatures are measured by an 8-bit ADC, the resolution
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) of the temperatures is 1 bit per degree C.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) Voltages are scaled such that the nominal voltage corresponds to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 192 counts, i.e. 3/4 of the full range. Thus the available range for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) each voltage channel is 0V ... 255/192*(nominal voltage), the resolution
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) is 1 bit per (nominal voltage)/192.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) Both voltage and temperature values are scaled by 1000, the sys files
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) show voltages in mV and temperatures in units of 0.001 degC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) The +12V analog voltage input channel (in4_input) is multiplexed with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) bit 4 of the encoded CPU voltage. This means that you either get
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) a +12V voltage measurement or a 5 bit CPU VID, but not both.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) The default setting is to use the pin as 12V input, and use only 4 bit VID.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) This driver assumes that the information in the configuration register
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) is correct, i.e. that the BIOS has updated the configuration if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) the motherboard has this input wired to VID4.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) The temperature and voltage readings are updated once every 1.5 seconds.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) Reading them more often repeats the same values.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) sysfs interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) ---------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) ===================== ==========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) in0_input	      +2.5V voltage input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) in1_input	      CPU voltage input (nominal 2.25V)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) in2_input	      +3.3V voltage input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) in3_input	      +5V voltage input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) in4_input	      +12V voltage input (may be missing if used as VID4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) in5_input	      Vcc voltage input (nominal 3.3V)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 		      This is the supply voltage of the sensor chip itself.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) in6_input	      +1.5V voltage input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) in7_input	      +1.8V voltage input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) in[0-7]_min,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) in[0-7]_max	      lower and upper alarm thresholds for in[0-7]_input reading
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 		      All voltages are read and written in mV.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) in[0-7]_alarm	      alarm flags for voltage inputs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 		      These files read '1' in case of alarm, '0' otherwise.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) temp1_input	      chip temperature measured by on-chip diode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) temp[2-3]_input	      temperature measured by external diodes (one of these
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 		      would typically be wired to the diode inside the CPU)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) temp[1-3]_min,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) temp[1-3]_max	      lower and upper alarm thresholds for temperatures
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) temp[1-3]_offset      temperature offset registers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 		      The chip adds the offsets stored in these registers to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 		      the corresponding temperature readings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 		      Note that temp1 and temp2 offsets share the same register,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 		      they cannot both be different from zero at the same time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 		      Writing a non-zero number to one of them will reset the other
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 		      offset to zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 		      All temperatures and offsets are read and written in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 		      units of 0.001 degC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) temp[1-3]_alarm       alarm flags for temperature inputs, '1' in case of alarm,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 		      '0' otherwise.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) temp[2-3]_input_fault diode fault flags for temperature inputs 2 and 3.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 		      A fault is detected if the two pins for the corresponding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 		      sensor are open or shorted, or any of the two is shorted
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 		      to ground or Vcc. '1' indicates a diode fault.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) cpu0_vid	      CPU voltage as received from the CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) vrm		      CPU VID standard used for decoding CPU voltage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) ===================== ==========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) The `*_min`, `*_max`, `*_offset` and `vrm` files can be read and written,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) all others are read-only.