STRUCT EMIF_CUSTOM_CONFIGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct emif_custom_configs (9) β€” Kernel API Manual πŸ’–

okay bestie, gather round, because this is the little struct that lets the platform layer hand down its own custom configuration parameters and policies to the EMIF driver πŸŽ€ like, it's the messenger, it's the vibe-bringer, it's giving "I come bearing settings." ✨


🌸 NAME 🌸

struct emif_custom_configs β€” custom configuration parameters/policies passed from the platform layer 🫢


✨ SYNOPSIS ✨

struct emif_custom_configs {
    u32 mask;
    u32 lpmode;
    u32 lpmode_timeout_performance;
    u32 lpmode_timeout_power;
    u32 lpmode_freq_threshold;
    u32 temp_alert_poll_interval_ms;
 };

no cap, that's the whole shape of it πŸ’… keep scrolling for the member-by-member breakdown, iykyk πŸ‘‘


πŸ¦‹ Members πŸ¦‹

πŸ’œ the fields, one by one πŸ’œ

  • mask β€” the mask that tells everyone which configs are actually being requested πŸ‘€ like a little guest list for your settings.
  • lpmode β€” the LPMODE to be used in the PWR_MGMT_CTRL register πŸ”₯ that's the one, that's the register.
  • lpmode_timeout_performance β€” the timeout before LPMODE entry when you want higher performance and you're willing to pay for it in power 😭 (typically at higher OPPs).
  • lpmode_timeout_power β€” the timeout before LPMODE entry when better power savings is the moment and performance is simply not the priority πŸ“ (typically at lower loads, which show up as lower OPPs).
  • lpmode_freq_threshold β€” the DDR frequency threshold that sorts the two cases above apart. fr fr, here's the whole decision in one line:
timeout = (freq >= lpmode_freq_threshold) ? lpmode_timeout_performance : lpmode_timeout_power;

literally that's it, that's the whole vibe check 🧚

  • temp_alert_poll_interval_ms β€” the LPDDR2 MR4 polling interval at nominal temperature, in milliseconds ⏱️ and when the temperature gets high? polling happens 4 times as frequently πŸ”₯ not me stressing about thermals πŸ’€

🌈 SEE ALSO 🌈

Kernel file ./include/linux/platform_data/emif_plat.h, struct ddr_device_info(9), struct emif_platform_data(9) πŸ’– go read those next, bestie, they're iconic πŸ‘‘


πŸ’… reminder: the mask is what decides which of these configs are actually requested β€” don't set fields and forget to ask for them, that's giving chaos.

alright that's the whole page 🫢 this came from ./include/linux/platform_data, dated October 2026, and honestly? slay ⭐ bye bestie πŸ’œ

πŸ“¦ where this page comes from