fuchsia.hardware.thermal

PROTOCOLS

Device

Defined in fuchsia.hardware.thermal/thermal.fidl

GetInfo

Get information about the device's current state.

Request

NameType

Response

NameType
status zx/status
info ThermalInfo?

GetDeviceInfo

Get information about the device's thermal capabilities and trip points.

Request

NameType

Response

NameType
status zx/status
info ThermalDeviceInfo?

GetDvfsInfo

Get the device's operating points. TODO(bradenkell): Can this be removed? GetDeviceInfo() provides the same information.

Request

NameType
power_domain PowerDomain

Response

NameType
status zx/status
info OperatingPoint?

GetTemperatureCelsius

Get the current temperature in degrees Celsius.

Request

NameType

Response

NameType
status zx/status
temp float32

GetStateChangeEvent

Get an event to get trip point notifications on. ZX_USER_SIGNAL_0 is changed when either trip point is reached. It is deasserted when the state is read via GetInfo.

Request

NameType

Response

NameType
status zx/status
handle handle<event>?

GetStateChangePort

Get a port to get trip point notification packets.

Request

NameType

Response

NameType
status zx/status
handle handle<port>?

SetTripCelsius

Sets a trip point in degrees Celsius. When the sensor reaches the trip point temperature the device will notify on an event.

Request

NameType
id uint32
temp float32

Response

NameType
status zx/status

GetDvfsOperatingPoint

Get the current operating point index.

Request

NameType
power_domain PowerDomain

Response

NameType
status zx/status
op_idx uint16

SetDvfsOperatingPoint

Set the operating point index.

Request

NameType
op_idx uint16
power_domain PowerDomain

Response

NameType
status zx/status

GetFanLevel

Get the current fan level.

Request

NameType

Response

NameType
status zx/status
fan_level uint32

SetFanLevel

Set the fan level.

Request

NameType
fan_level uint32

Response

NameType
status zx/status

STRUCTS

OperatingPoint

Defined in fuchsia.hardware.thermal/thermal.fidl

scpi_opp_t is typedef'd to this.

NameTypeDescriptionDefault
opp [16]

The device's operating points.

No default
latency uint32

In microseconds.

No default
count uint32

The number of operating points in opp.

No default

OperatingPointEntry

Defined in fuchsia.hardware.thermal/thermal.fidl

scpi_opp_entry_t is typedef'd to this.

NameTypeDescriptionDefault
freq_hz uint32

The operating point frequency in Hz.

No default
volt_uv uint32

The operating point voltage in microvolts.

No default

ThermalInfo

Defined in fuchsia.hardware.thermal/thermal.fidl

Temperature units are degrees Celsius.

NameTypeDescriptionDefault
state uint32

State is a bitmask of THERMAL_STATE_* values.

No default
passive_temp_celsius float32

The sensor temperature at which the system should activate passive cooling policy.

No default
critical_temp_celsius float32

The sensor temperature at which the system should perform critical shutdown.

No default
max_trip_count uint32

The number of trip points supported.

No default
active_trip float32[16]

The currently active trip point.

No default

ThermalTemperatureInfo

Defined in fuchsia.hardware.thermal/thermal.fidl

Temperature units are degrees Celsius.

NameTypeDescriptionDefault
up_temp_celsius float32

The temperature must rise to up_temp to get to this trip point.

No default
down_temp_celsius float32

The temperature must fall to down_temp to get to this trip point.

No default
fan_level uint32

The fan level for this trip point.

No default
big_cluster_dvfs_opp uint16

The operating point index of the big cluster.

No default
little_cluster_dvfs_opp uint16

The operating point index of the little cluster.

No default
gpu_clk_freq_source uint32

The GPU clock source index.

No default

ThermalDeviceInfo

Defined in fuchsia.hardware.thermal/thermal.fidl

NameTypeDescriptionDefault
active_cooling bool

Active cooling support.

No default
passive_cooling bool

Passive cooling support.

No default
gpu_throttling bool

GPU throttling support.

No default
num_trip_points uint32

Number of trip points.

No default
big_little bool

Big-little architecture.

No default
critical_temp_celsius float32

Critical temperature in degrees Celsius.

No default
trip_point_info [16]

Trip point information.

No default
opps [2]

Operating point information.

No default

ENUMS

PowerDomain

Type: uint32

Defined in fuchsia.hardware.thermal/thermal.fidl

Devices with big-little architecture may have different operating points for each cluster. Other devices use BIG_CLUSTER_POWER_DOMAIN for getting/setting the operating point.

NameValueDescription
BIG_CLUSTER_POWER_DOMAIN 0
LITTLE_CLUSTER_POWER_DOMAIN 1

CONSTANTS

NameValueTypeDescription
MAX_TRIP_POINTS 16 uint32

The maximum number of trip points that can be used.

MAX_DVFS_DOMAINS 2 uint32

The maximum number of DVFS domains a device can support (one for each cluster in a big-little architecture).

MAX_DVFS_OPPS 16 uint32

The maximum number of operating points that can be used.

THERMAL_STATE_NORMAL 0 uint32

Bitmask values for ThermalInfo.state.

THERMAL_STATE_TRIP_VIOLATION 1 uint32