STRUCT TEMP_SENSOR_REGISTERS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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 β€” the TEMP_SENSOR_CTRL register offset πŸŽ€
  • bgap_tempsoff_mask β€” mask to temp_sensor_ctrl.tempsoff 🌸
  • bgap_soc_mask β€” mask to temp_sensor_ctrl.soc 🌸
  • bgap_eocz_mask β€” mask to temp_sensor_ctrl.eocz 🌸
  • bgap_dtemp_mask β€” mask to temp_sensor_ctrl.dtemp 🌸
  • bgap_mask_ctrl β€” the BANDGAP_MASK_CTRL register offset πŸŽ€
  • mask_hot_mask β€” mask to bandgap_mask_ctrl.mask_hot 🌸
  • mask_cold_mask β€” mask to bandgap_mask_ctrl.mask_cold 🌸
  • mask_counter_delay_mask β€” mask to bandgap_mask_ctrl.mask_counter_delay 🌸
  • mask_freeze_mask β€” mask to bandgap_mask_ctrl.mask_free 🌸
  • bgap_mode_ctrl β€” the BANDGAP_MODE_CTRL register offset πŸŽ€
  • mode_ctrl_mask β€” mask to bandgap_mode_ctrl.mode_ctrl 🌸
  • bgap_counter β€” the BANDGAP_COUNTER register offset πŸŽ€
  • counter_mask β€” mask to bandgap_counter.counter 🌸
  • bgap_threshold β€” the BANDGAP_THRESHOLD register offset (TALERT thresholds) πŸ”₯
  • threshold_thot_mask β€” mask to bandgap_threhold.thot 🌸
  • threshold_tcold_mask β€” mask to bandgap_threhold.tcold 🌸
  • tshut_threshold β€” the TSHUT_THRESHOLD register offset (TSHUT thresholds) πŸ”₯
  • tshut_hot_mask β€” mask to tshut_threhold.thot 🌸
  • tshut_cold_mask β€” mask to tshut_threhold.thot 🌸
  • bgap_status β€” the BANDGAP_STATUS register offset πŸŽ€
  • status_hot_mask β€” mask to bandgap_status.hot 🌸
  • status_cold_mask β€” mask to bandgap_status.cold 🌸
  • ctrl_dtemp_1 β€” the CTRL_DTEMP1 register offset πŸŽ€
  • ctrl_dtemp_2 β€” the CTRL_DTEMP2 register offset πŸŽ€
  • bgap_efuse β€” the BANDGAP_EFUSE register 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.h bandgap 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