xref: /linux/Documentation/driver-api/thermal/x86_pkg_temperature_thermal.rst (revision eaf7b46083a7e341a23ab3d6042e0ccc115b0914) !
16bbe6f57SMauro Carvalho Chehab===================================
223be63f4SSrinivas PandruvadaKernel driver: x86_pkg_temp_thermal
36bbe6f57SMauro Carvalho Chehab===================================
423be63f4SSrinivas Pandruvada
523be63f4SSrinivas PandruvadaSupported chips:
66bbe6f57SMauro Carvalho Chehab
723be63f4SSrinivas Pandruvada* x86: with package level thermal management
86bbe6f57SMauro Carvalho Chehab
923be63f4SSrinivas Pandruvada(Verify using: CPUID.06H:EAX[bit 6] =1)
1023be63f4SSrinivas Pandruvada
1123be63f4SSrinivas PandruvadaAuthors: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
1223be63f4SSrinivas Pandruvada
1323be63f4SSrinivas PandruvadaReference
146bbe6f57SMauro Carvalho Chehab---------
156bbe6f57SMauro Carvalho Chehab
1623be63f4SSrinivas PandruvadaIntel® 64 and IA-32 Architectures Software Developer’s Manual (Jan, 2013):
1723be63f4SSrinivas PandruvadaChapter 14.6: PACKAGE LEVEL THERMAL MANAGEMENT
1823be63f4SSrinivas Pandruvada
1923be63f4SSrinivas PandruvadaDescription
206bbe6f57SMauro Carvalho Chehab-----------
2123be63f4SSrinivas Pandruvada
2223be63f4SSrinivas PandruvadaThis driver register CPU digital temperature package level sensor as a thermal
2323be63f4SSrinivas Pandruvadazone with maximum two user mode configurable trip points. Number of trip points
2423be63f4SSrinivas Pandruvadadepends on the capability of the package. Once the trip point is violated,
2523be63f4SSrinivas Pandruvadauser mode can receive notification via thermal notification mechanism and can
2623be63f4SSrinivas Pandruvadatake any action to control temperature.
2723be63f4SSrinivas Pandruvada
2823be63f4SSrinivas Pandruvada
2923be63f4SSrinivas PandruvadaThreshold management
3023be63f4SSrinivas Pandruvada--------------------
3123be63f4SSrinivas PandruvadaEach package will register as a thermal zone under /sys/class/thermal.
326bbe6f57SMauro Carvalho Chehab
336bbe6f57SMauro Carvalho ChehabExample::
346bbe6f57SMauro Carvalho Chehab
3523be63f4SSrinivas Pandruvada	/sys/class/thermal/thermal_zone1
3623be63f4SSrinivas Pandruvada
3723be63f4SSrinivas PandruvadaThis contains two trip points:
386bbe6f57SMauro Carvalho Chehab
3923be63f4SSrinivas Pandruvada- trip_point_0_temp
4023be63f4SSrinivas Pandruvada- trip_point_1_temp
4123be63f4SSrinivas Pandruvada
4223be63f4SSrinivas PandruvadaUser can set any temperature between 0 to TJ-Max temperature. Temperature units
43*eaf7b460SMauro Carvalho Chehabare in milli-degree Celsius. Refer to "Documentation/driver-api/thermal/sysfs-api.rst" for
4423be63f4SSrinivas Pandruvadathermal sys-fs details.
4523be63f4SSrinivas Pandruvada
4623be63f4SSrinivas PandruvadaAny value other than 0 in these trip points, can trigger thermal notifications.
4723be63f4SSrinivas PandruvadaSetting 0, stops sending thermal notifications.
4823be63f4SSrinivas Pandruvada
496bbe6f57SMauro Carvalho ChehabThermal notifications:
506bbe6f57SMauro Carvalho ChehabTo get kobject-uevent notifications, set the thermal zone
516bbe6f57SMauro Carvalho Chehabpolicy to "user_space".
5223be63f4SSrinivas Pandruvada
536bbe6f57SMauro Carvalho ChehabFor example::
5423be63f4SSrinivas Pandruvada
556bbe6f57SMauro Carvalho Chehab	echo -n "user_space" > policy
56