gpmc_cs_program_settings(9)
β¨ gpmc_cs_program_settings π
okay so real talk, this is a page from the Kernel API Manual, section 9, and the function is gpmc_cs_program_settings. she does exactly what her name says and we love her for it π«Ά
πΈ NAME πΈ
gpmc_cs_program_settings β programs non-timing related settings β¨
like literally. the non-timing ones. timing is a whole other girl's job (we'll get to her, don't worry π).
π¦ SYNOPSIS π¦
int gpmc_cs_program_settings (int cs , struct gpmc_settings *p );
two args, one int, one pointer, returns an int. short and iconic, no notes π
π ARGUMENTS π
csβ the GPMC chip-select you're programming. that's the one, bestie. pick your chip-select π―pβ pointer to the GPMC settingsstruct. this is where all your settings live, she's just reading what you put in there π
π DESCRIPTION π
so what does she actually do? she programs the non-timing related settings for a GPMC chip-select β stuff like bus-width, burst configuration, etc. the vibes-y settings, not the clock-y ones β¨
the way you have to use her is very specific and i need you to hear me on this:
- call her once for each chip-select that is being used β one call per chip-select, no sharing, no cutting corners π
- she must be called before you call
gpmc_cs_set_timingsβ οΈ like genuinely, this is not optional
π¨ and why, you ask? because the timing parameters in theCONFIG1register will be initialised to zero by this function. she zeroes them. all of them. so if you go callinggpmc_cs_set_timingsfirst and then her, you've just yeeted your own timings into the void. don't do that to yourself π
returns 0 on success and an appropriate negative error code on failure. classic. good girl, honest girl π
π₯ SEE ALSO π₯
go read the kernel file ./drivers/memory/omap-gpmc.c (yes, the whole file, she's worth it), plus her whole friend group:
gpmc_get_clk_period(9)get_gpmc_timing_reg(9)set_gpmc_timing_reg(9)gpmc_calc_waitmonitoring_divider(9)gpmc_calc_divider(9)gpmc_cs_set_timings(9)gpmc_configure(9)gpmc_omap_get_nand_ops(9)gpmc_cs_remap(9)gpmc_read_settings_dt(9)gpmc_probe_generic_child(9)
and that's the page!! π this one lives in ./drivers/memory, dated October 2026, and she's filed under gpmc_cs_program_settings(9) β that's the version, that's the date, that's the whole footer, mwah π iykyk π
π¦ 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