1 .. SPDX-License-Identifier: GPL-2.0-only 1 .. SPDX-License-Identifier: GPL-2.0-only 2 2 3 Kernel driver bt1-pvt 3 Kernel driver bt1-pvt 4 ===================== 4 ===================== 5 5 6 Supported chips: 6 Supported chips: 7 7 8 * Baikal-T1 PVT sensor (in SoC) 8 * Baikal-T1 PVT sensor (in SoC) 9 9 10 Prefix: 'bt1-pvt' 10 Prefix: 'bt1-pvt' 11 11 12 Addresses scanned: - 12 Addresses scanned: - 13 13 14 Datasheet: Provided by BAIKAL ELECTRONICS 14 Datasheet: Provided by BAIKAL ELECTRONICS upon request and under NDA 15 15 16 Authors: 16 Authors: 17 Maxim Kaurkin <maxim.kaurkin@baikalelectron 17 Maxim Kaurkin <maxim.kaurkin@baikalelectronics.ru> 18 Serge Semin <Sergey.Semin@baikalelectronics 18 Serge Semin <Sergey.Semin@baikalelectronics.ru> 19 19 20 Description 20 Description 21 ----------- 21 ----------- 22 22 23 This driver implements support for the hardwar 23 This driver implements support for the hardware monitoring capabilities of the 24 embedded into Baikal-T1 process, voltage and t 24 embedded into Baikal-T1 process, voltage and temperature sensors. PVT IP-core 25 consists of one temperature and four voltage s 25 consists of one temperature and four voltage sensors, which can be used to 26 monitor the chip internal environment like hea 26 monitor the chip internal environment like heating, supply voltage and 27 transistors performance. The driver can option 27 transistors performance. The driver can optionally provide the hwmon alarms 28 for each sensor the PVT controller supports. T 28 for each sensor the PVT controller supports. The alarms functionality is made 29 compile-time configurable due to the hardware 29 compile-time configurable due to the hardware interface implementation 30 peculiarity, which is connected with an abilit 30 peculiarity, which is connected with an ability to convert data from only one 31 sensor at a time. Additional limitation is tha 31 sensor at a time. Additional limitation is that the controller performs the 32 thresholds checking synchronously with the dat 32 thresholds checking synchronously with the data conversion procedure. Due to 33 these in order to have the hwmon alarms automa 33 these in order to have the hwmon alarms automatically detected the driver code 34 must switch from one sensor to another, read c 34 must switch from one sensor to another, read converted data and manually check 35 the threshold status bits. Depending on the me 35 the threshold status bits. Depending on the measurements timeout settings 36 (update_interval sysfs node value) this design 36 (update_interval sysfs node value) this design may cause additional burden on 37 the system performance. So in case if alarms a 37 the system performance. So in case if alarms are unnecessary in your system 38 design it's recommended to have them disabled 38 design it's recommended to have them disabled to prevent the PVT IRQs being 39 periodically raised to get the data cache/alar 39 periodically raised to get the data cache/alarms status up to date. By default 40 in alarm-less configuration the data conversio 40 in alarm-less configuration the data conversion is performed by the driver 41 on demand when read operation is requested via 41 on demand when read operation is requested via corresponding _input-file. 42 42 43 Temperature Monitoring 43 Temperature Monitoring 44 ---------------------- 44 ---------------------- 45 45 46 Temperature is measured with 10-bit resolution 46 Temperature is measured with 10-bit resolution and reported in millidegree 47 Celsius. The driver performs all the scaling b 47 Celsius. The driver performs all the scaling by itself therefore reports true 48 temperatures that don't need any user-space ad 48 temperatures that don't need any user-space adjustments. While the data 49 translation formulae isn't linear, which gives 49 translation formulae isn't linear, which gives us non-linear discreteness, 50 it's close to one, but giving a bit better acc 50 it's close to one, but giving a bit better accuracy for higher temperatures. 51 The temperature input is mapped as follows (th 51 The temperature input is mapped as follows (the last column indicates the input 52 ranges):: 52 ranges):: 53 53 54 temp1: CPU embedded diode -48.38 54 temp1: CPU embedded diode -48.38C - +147.438C 55 55 56 In case if the alarms kernel config is enabled 56 In case if the alarms kernel config is enabled in the driver the temperature input 57 has associated min and max limits which trigge 57 has associated min and max limits which trigger an alarm when crossed. 58 58 59 Voltage Monitoring 59 Voltage Monitoring 60 ------------------ 60 ------------------ 61 61 62 The voltage inputs are also sampled with 10-bi 62 The voltage inputs are also sampled with 10-bit resolution and reported in 63 millivolts. But in this case the data translat 63 millivolts. But in this case the data translation formulae is linear, which 64 provides a constant measurements discreteness. 64 provides a constant measurements discreteness. The data scaling is also 65 performed by the driver, so returning true mil 65 performed by the driver, so returning true millivolts. The voltage inputs are 66 mapped as follows (the last column indicates t 66 mapped as follows (the last column indicates the input ranges):: 67 67 68 in0: VDD (processor cor 68 in0: VDD (processor core) 0.62V - 1.168V 69 in1: Low-Vt (low voltage t 69 in1: Low-Vt (low voltage threshold) 0.62V - 1.168V 70 in2: High-Vt (high voltage 70 in2: High-Vt (high voltage threshold) 0.62V - 1.168V 71 in3: Standard-Vt (standard volt 71 in3: Standard-Vt (standard voltage threshold) 0.62V - 1.168V 72 72 73 In case if the alarms config is enabled in the 73 In case if the alarms config is enabled in the driver the voltage inputs 74 have associated min and max limits which trigg 74 have associated min and max limits which trigger an alarm when crossed. 75 75 76 Sysfs Attributes 76 Sysfs Attributes 77 ---------------- 77 ---------------- 78 78 79 Following is a list of all sysfs attributes th 79 Following is a list of all sysfs attributes that the driver provides, their 80 permissions and a short description: 80 permissions and a short description: 81 81 82 =============================== ======= ====== 82 =============================== ======= ======================================= 83 Name Perm Descri 83 Name Perm Description 84 =============================== ======= ====== 84 =============================== ======= ======================================= 85 update_interval RW Measur 85 update_interval RW Measurements update interval per 86 sensor 86 sensor. 87 temp1_type RO Sensor 87 temp1_type RO Sensor type (always 1 as CPU embedded 88 diode) 88 diode). 89 temp1_label RO CPU Co 89 temp1_label RO CPU Core Temperature sensor. 90 temp1_input RO Measur 90 temp1_input RO Measured temperature in millidegree 91 Celsiu 91 Celsius. 92 temp1_min RW Low li 92 temp1_min RW Low limit for temp input. 93 temp1_max RW High l 93 temp1_max RW High limit for temp input. 94 temp1_min_alarm RO Temper 94 temp1_min_alarm RO Temperature input alarm. Returns 1 if 95 temper 95 temperature input went below min limit, 96 0 othe 96 0 otherwise. 97 temp1_max_alarm RO Temper 97 temp1_max_alarm RO Temperature input alarm. Returns 1 if 98 temper 98 temperature input went above max limit, 99 0 othe 99 0 otherwise. 100 temp1_offset RW Temper 100 temp1_offset RW Temperature offset in millidegree 101 Celsiu 101 Celsius which is added to the 102 temper 102 temperature reading by the chip. It can 103 be use 103 be used to manually adjust the 104 temper 104 temperature measurements within 7.130 105 degree 105 degrees Celsius. 106 in[0-3]_label RO CPU Vo 106 in[0-3]_label RO CPU Voltage sensor (either core or 107 low/hi 107 low/high/standard thresholds). 108 in[0-3]_input RO Measur 108 in[0-3]_input RO Measured voltage in millivolts. 109 in[0-3]_min RW Low li 109 in[0-3]_min RW Low limit for voltage input. 110 in[0-3]_max RW High l 110 in[0-3]_max RW High limit for voltage input. 111 in[0-3]_min_alarm RO Voltag 111 in[0-3]_min_alarm RO Voltage input alarm. Returns 1 if 112 voltag 112 voltage input went below min limit, 113 0 othe 113 0 otherwise. 114 in[0-3]_max_alarm RO Voltag 114 in[0-3]_max_alarm RO Voltage input alarm. Returns 1 if 115 voltag 115 voltage input went above max limit, 116 0 othe 116 0 otherwise. 117 =============================== ======= ====== 117 =============================== ======= =======================================
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.