STRUCT EMIF_PLATFORM_DATA(9)
π struct emif_platform_data(9) π
okay so first things first: this is a page from the Kernel API Manual, section 9, and it's all about struct emif_platform_data β bestie, it's the little bundle of info you hand over when an EMIF platform device gets created, and it's literally what the driver reads from. no cap.
β¨ NAME β¨
struct emif_platform_data β the platform data you pass along when an EMIF platform device is created. the driver is the one using it, so don't give it junk π
πΈ SYNOPSIS πΈ
struct emif_platform_data {
u32 hw_caps;
struct ddr_device_info *device_info;
const struct lpddr2_timings *timings;
u32 timings_arr_size;
const struct lpddr2_min_tck *min_tck;
struct emif_custom_configs *custom_configs;
u32 ip_rev;
u32 phy_type;
};
that's the whole squad, right there π (yes, the closing brace in the original has a lil extra space before it β we keep our faves exactly as they are π«Ά)
π Members π
hw_capsβ the hardware capabilities of the EMIF IP inside whichever SoC you're on. it's giving "know your own specs before you flex" β¨device_infoβ a pointer to the device info structure, packed with the good stuff: type, bus width, density, etc. the whole vibe check on the memory device πΈtimingsβ the timings info straight from the device datasheet, passed as an array ofstruct lpddr2_timings. it can beNULLif the default timings are fine for you β lowkey liberating tbh π¦timings_arr_sizeβ the size of thetimingsarray. it depends on how many different frequencies you're providing timings data for. number goes up, array goes up, iykyk π₯min_tckβ the minimum value of some timing parameters, expressed in number of cycles. alsoNULL-able if the default values are okay. icon behaviour honestly πcustom_configsβ the custom configurations requested by SoC or board code, plus the data for them. can beNULLif the default configurations that the driver does are fine. for the extra detail, the page says to see the documentation forstruct emif_custom_configsβ go read that one too bestie, it's worth it πip_revβ au32field in the struct. (the page itself doesn't describe it, so i'm not gonna make something up β mystery main character energy π΅οΈββοΈ)phy_typeβ anotheru32field. same situation, no description in the source. it's giving silent but present π
also worth saying: the Members list in the source is declared right inside this struct page, so everything above lives in the struct in the SYNOPSIS. no new fields, no missing fields. periodt.
π SEE ALSO π
- the kernel file
./include/linux/platform_data/emif_plat.h struct ddr_device_info(9)struct emif_custom_configs(9)
and that's the whole page! π little sign-off for you: this one lives under ./include/linux/platform_data, and the date on it is October 2026. go forth and pass your platform data correctly, bestie β slay π
β¨π
π¦ 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