# Samsung HIDL thermal HAL The HAL uses the standard linux thermal interface and can be configured by adding thermal zones and cooling devices present on the device in a `thermal_info_config.json` file. To probe them, just connect the phone via ADB and check the nodes available under `/sys/class/thermal/`. The name of each thermal zone and cooling device can be found in the type node, e.g. /sys/class/thermal/thermal_zone0/type /sys/class/thermal/cooling_device0/type For each thermal device it is possible to configure a "Sensor" node in `thermal_info_config.json`, and setting up to 7 throttling levels, from NONE to SHUTDOWN. At each severity level, the hal send signals to throttle the device to the framework, according to : https://source.android.com/devices/architecture/hidl/thermal-mitigation In order to set temperature curve for the desired component you can took as a refererence the kernel trip points temperatures, for the specific devices, available in the thermal_zoneX sysfs. Each sensor can be classified as *CPU*, *GPU*, *USB_PORT* or *BATTERY* type. If you have a thermal monitor which does not belong to any of this categories you can classify it as *UNKNOWN*. You can specify hysteresis as well as if the interface should be monitored. If you monitor the interface, the HAL takes action when the specifc treshold is passed. You should not enable monitor if your kernel already implement thermal mitigatoin for the specified component. Since each device reports temperatures multiplied by different factor of 10, you should set the Multipler field such as `/sys/class/thermal/thermal_zoneX/temp` is reported in Celusis degrees (e.g. 25100 reported by sysfs, multiplied by 0.001 is 25.1). The same can be said for cooling devices. For each cooling devices can be created a CoolingDevices node in `thermal_info_config.json`. Each cooling interface can be classified as *CPU*, *GPU* or *BATTERY* type. If you have a cooling device which does not belong to any of this categories you can classify it as *COMPONENT*. The `thermal_info_config.json` should be copied under /vendor/etc. For more details, refer on the sample config schema.