STRUCT EMIF_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, welcome to struct emif_data(9) from the Kernel API Manual β€” yes we are doing kernel structs today and it's giving main character energy πŸ’…βœ¨

✨ NAME ✨

struct emif_data β€” per device static data for driver's use. That's the whole vibe: it's the static data each device keeps around for its driver. 🫢

πŸ¦‹ SYNOPSIS πŸ¦‹

The struct itself is lowkey a whole mood:

       struct emif_data {
           u8 duplicate;
           u8 temperature_level;
           u8 lpmode;
           struct list_head                node;
           void __iomem                    *base;
           struct device                   *dev;
           struct emif_regs
       *regs_cache[EMIF_MAX_NUM_FREQUENCIES];
           struct emif_regs                *curr_regs;
           struct emif_platform_data       *plat_data;
           struct dentry                   *debugfs_root;
           struct device_node              *np_ddr;
        };

πŸ’… Members πŸ’…

okay so here's the member-by-member tea, no cap:

  • duplicate β€” tells you whether the DDR devices attached to this EMIF instance are exactly same as that on EMIF1. In this case we can save some memory and processing. efficiency slay πŸŽ€
  • temperature_level β€” the maximum temperature of LPDDR2 devices attached to this EMIF, read from the MR4 register. If there are two devices attached to this EMIF, this value is the maximum of the two temperature levels. hot girl summer but make it thermal data 🌑️
  • lpmode β€” the chosen low power mode. low power, high vibes ✨
  • node β€” node in the device list. linked-list realness πŸ”—
  • base β€” base address of memory-mapped IO registers. where the registers live 🏠
  • dev β€” device pointer. the classic struct device pointer moment 🫢
  • regs_cache β€” an array of struct emif_regs that stores calculated register values for different frequencies, to avoid re-calculating them on each DVFS transition. cache it and slay πŸ’š
  • curr_regs β€” the set of register values used in the last frequency change (i.e. corresponding to the frequency in effect at the moment). current era register values πŸ‘‘
  • plat_data β€” pointer to saved platform data. platform data, preserved and cute πŸ’–
  • debugfs_root β€” dentry to the root folder for EMIF in debugfs. debugfs root folder energy πŸ¦‹
  • np_ddr β€” pointer to ddr device tree node. device tree node bestie 🌸

🌈 SEE ALSO 🌈

go look at Kernel file ./drivers/memory/emif.c β€” that's the source of truth, iykyk πŸ‘€πŸ”₯


made with love from the source/version ./drivers/memory, dated October 2026, for the struct emif_data(9) page β€” mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from