STRUCT TEMP_SENSOR_REGISTERS(9)
π NAME π
okay bestie, welcome to struct temp_sensor_registers(9) from the Kernel API Manual β it's literally a descriptor to access registers and bitfields β¨ like that's the whole vibe, it's a map, it tells you where stuff lives π
β¨ SYNOPSIS β¨
struct temp_sensor_registers {
u32 temp_sensor_ctrl;
u32 bgap_tempsoff_mask;
u32 bgap_soc_mask;
u32 bgap_eocz_mask;
u32 bgap_dtemp_mask;
u32 bgap_mask_ctrl;
u32 mask_hot_mask;
u32 mask_cold_mask;
u32 mask_counter_delay_mask;
u32 mask_freeze_mask;
u32 bgap_mode_ctrl;
u32 mode_ctrl_mask;
u32 bgap_counter;
u32 counter_mask;
u32 bgap_threshold;
u32 threshold_thot_mask;
u32 threshold_tcold_mask;
u32 tshut_threshold;
u32 tshut_hot_mask;
u32 tshut_cold_mask;
u32 bgap_status;
u32 status_hot_mask;
u32 status_cold_mask;
u32 ctrl_dtemp_1;
u32 ctrl_dtemp_2;
u32 bgap_efuse;
};
no cap, that's the whole squad π«Ά
π Members π
okay so every single one of these, in order, no skips π
temp_sensor_ctrlβ theTEMP_SENSOR_CTRLregister offset πbgap_tempsoff_maskβ mask totemp_sensor_ctrl.tempsoffπΈbgap_soc_maskβ mask totemp_sensor_ctrl.socπΈbgap_eocz_maskβ mask totemp_sensor_ctrl.eoczπΈbgap_dtemp_maskβ mask totemp_sensor_ctrl.dtempπΈbgap_mask_ctrlβ theBANDGAP_MASK_CTRLregister offset πmask_hot_maskβ mask tobandgap_mask_ctrl.mask_hotπΈmask_cold_maskβ mask tobandgap_mask_ctrl.mask_coldπΈmask_counter_delay_maskβ mask tobandgap_mask_ctrl.mask_counter_delayπΈmask_freeze_maskβ mask tobandgap_mask_ctrl.mask_freeπΈbgap_mode_ctrlβ theBANDGAP_MODE_CTRLregister offset πmode_ctrl_maskβ mask tobandgap_mode_ctrl.mode_ctrlπΈbgap_counterβ theBANDGAP_COUNTERregister offset πcounter_maskβ mask tobandgap_counter.counterπΈbgap_thresholdβ theBANDGAP_THRESHOLDregister offset (TALERT thresholds) π₯threshold_thot_maskβ mask tobandgap_threhold.thotπΈthreshold_tcold_maskβ mask tobandgap_threhold.tcoldπΈtshut_thresholdβ theTSHUT_THRESHOLDregister offset (TSHUT thresholds) π₯tshut_hot_maskβ mask totshut_threhold.thotπΈtshut_cold_maskβ mask totshut_threhold.thotπΈbgap_statusβ theBANDGAP_STATUSregister offset πstatus_hot_maskβ mask tobandgap_status.hotπΈstatus_cold_maskβ mask tobandgap_status.coldπΈctrl_dtemp_1β theCTRL_DTEMP1register offset πctrl_dtemp_2β theCTRL_DTEMP2register offset πbgap_efuseβ theBANDGAP_EFUSEregister offset π
πΈ Description πΈ
so here's the tea bestie β β the register offsets and bitfields might change across OMAP and variants versions. that's literally why this struct exists: it serves as a descriptor map on how to access the registers and the bitfields πΊοΈβ¨ it's giving "one map to read them all" energy, iykyk.
and like β this descriptor contains registers of all versions of bandgap chips. not every version is gonna use every register, it depends on the available features π¦ so don't come for me if some of them are just sitting there unused, okay?
π real talk though: please read TRMs for descriptive explanation on each bitfield. that's not optional, bestie, that's the assignment π
π¦ SEE ALSO π¦
- Kernel file
./drivers/thermal/ti-soc-thermal/ti-bandgap.hbandgap driver data structure(9)struct temp_sensor_data(9)struct temp_sensor_regval(9)struct ti_bandgap(9)struct ti_temp_sensor(9)ti bandgap feature types(9)struct ti_bandgap_data(9)
go read them, they're iconic, no cap π
and that's the page, bestie π«Ά this whole thing lives under ./drivers/thermal/ti-soc-thermal, dated October 2026, and it's still called struct temp_...or_registers(9) because some things never change π mwah, slay, periodt β¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms