brintos

brintos / linux-shallow public Read only

0
0
Text · 4.9 KiB · cbb0c06 Raw
118 lines · plain
1.. SPDX-License-Identifier: GPL-2.0-only2 3Kernel driver bt1-pvt4=====================5 6Supported chips:7 8  * Baikal-T1 PVT sensor (in SoC)9 10    Prefix: 'bt1-pvt'11 12    Addresses scanned: -13 14    Datasheet: Provided by BAIKAL ELECTRONICS upon request and under NDA15 16Authors:17    Maxim Kaurkin <maxim.kaurkin@baikalelectronics.ru>18    Serge Semin <Sergey.Semin@baikalelectronics.ru>19 20Description21-----------22 23This driver implements support for the hardware monitoring capabilities of the24embedded into Baikal-T1 process, voltage and temperature sensors. PVT IP-core25consists of one temperature and four voltage sensors, which can be used to26monitor the chip internal environment like heating, supply voltage and27transistors performance. The driver can optionally provide the hwmon alarms28for each sensor the PVT controller supports. The alarms functionality is made29compile-time configurable due to the hardware interface implementation30peculiarity, which is connected with an ability to convert data from only one31sensor at a time. Additional limitation is that the controller performs the32thresholds checking synchronously with the data conversion procedure. Due to33these in order to have the hwmon alarms automatically detected the driver code34must switch from one sensor to another, read converted data and manually check35the threshold status bits. Depending on the measurements timeout settings36(update_interval sysfs node value) this design may cause additional burden on37the system performance. So in case if alarms are unnecessary in your system38design it's recommended to have them disabled to prevent the PVT IRQs being39periodically raised to get the data cache/alarms status up to date. By default40in alarm-less configuration the data conversion is performed by the driver41on demand when read operation is requested via corresponding _input-file.42 43Temperature Monitoring44----------------------45 46Temperature is measured with 10-bit resolution and reported in millidegree47Celsius. The driver performs all the scaling by itself therefore reports true48temperatures that don't need any user-space adjustments. While the data49translation formulae isn't linear, which gives us non-linear discreteness,50it's close to one, but giving a bit better accuracy for higher temperatures.51The temperature input is mapped as follows (the last column indicates the input52ranges)::53 54	temp1: CPU embedded diode	-48.38C - +147.438C55 56In case if the alarms kernel config is enabled in the driver the temperature input57has associated min and max limits which trigger an alarm when crossed.58 59Voltage Monitoring60------------------61 62The voltage inputs are also sampled with 10-bit resolution and reported in63millivolts. But in this case the data translation formulae is linear, which64provides a constant measurements discreteness. The data scaling is also65performed by the driver, so returning true millivolts. The voltage inputs are66mapped as follows (the last column indicates the input ranges)::67 68	in0: VDD		(processor core)		0.62V - 1.168V69	in1: Low-Vt		(low voltage threshold)		0.62V - 1.168V70	in2: High-Vt		(high voltage threshold)	0.62V - 1.168V71	in3: Standard-Vt	(standard voltage threshold)	0.62V - 1.168V72 73In case if the alarms config is enabled in the driver the voltage inputs74have associated min and max limits which trigger an alarm when crossed.75 76Sysfs Attributes77----------------78 79Following is a list of all sysfs attributes that the driver provides, their80permissions and a short description:81 82=============================== ======= =======================================83Name				Perm	Description84=============================== ======= =======================================85update_interval			RW	Measurements update interval per86					sensor.87temp1_type			RO	Sensor type (always 1 as CPU embedded88					diode).89temp1_label			RO	CPU Core Temperature sensor.90temp1_input			RO	Measured temperature in millidegree91					Celsius.92temp1_min			RW	Low limit for temp input.93temp1_max			RW	High limit for temp input.94temp1_min_alarm			RO	Temperature input alarm. Returns 1 if95					temperature input went below min limit,96					0 otherwise.97temp1_max_alarm			RO	Temperature input alarm. Returns 1 if98					temperature input went above max limit,99					0 otherwise.100temp1_offset			RW	Temperature offset in millidegree101					Celsius which is added to the102					temperature reading by the chip. It can103					be used to manually adjust the104					temperature measurements within 7.130105					degrees Celsius.106in[0-3]_label			RO	CPU Voltage sensor (either core or107					low/high/standard thresholds).108in[0-3]_input			RO	Measured voltage in millivolts.109in[0-3]_min			RW	Low limit for voltage input.110in[0-3]_max			RW	High limit for voltage input.111in[0-3]_min_alarm		RO	Voltage input alarm. Returns 1 if112					voltage input went below min limit,113					0 otherwise.114in[0-3]_max_alarm		RO	Voltage input alarm. Returns 1 if115					voltage input went above max limit,116					0 otherwise.117=============================== ======= =======================================118