STRUCT SYSC(9)
β¨ struct sysc(9) β Kernel API Manual vibes β¨
okay so welcome to the struct sysc(9) page from the Kernel API Manual, bestie π this is literally the whole glow-up for TI sysc interconnect target module registers and capabilities. no cap, it's giving "kernel internals but make it cute." let's get into it π«Ά
πΈ NAME πΈ
struct sysc β the TI sysc interconnect target module registers and capabilities. periodt. π
π SYNOPSIS π
like, here's the whole struct in all its main-character glory β copy it exactly, don't @ me:
struct sysc {
struct device *dev;
u64 module_pa;
u32 module_size;
void __iomem *module_va;
int offsets[SYSC_MAX_REGS];
struct ti_sysc_module_data *mdata;
struct clk **clocks;
const char **clock_roles;
int nr_clocks;
struct reset_control *rsts;
const char *legacy_mode;
const struct sysc_capabilities *cap;
struct sysc_config cfg;
struct ti_sysc_cookie cookie;
const char *name;
u32 revision;
u32 sysconfig;
unsigned int reserved:1;
unsigned int enabled:1;
unsigned int needs_resume:1;
unsigned int child_needs_resume:1;
struct delayed_work idle_work;
void (*pre_reset_quirk)(struct sysc *sysc);
void (*post_reset_quirk)(struct sysc *sysc);
void (*reset_done_quirk)(struct sysc *sysc);
void (*module_enable_quirk)(struct sysc *sysc);
void (*module_disable_quirk)(struct sysc *sysc);
void (*module_unlock_quirk)(struct sysc *sysc);
void (*module_lock_quirk)(struct sysc *sysc);
};
π Members π
okay so every single field, explained with love β no skipping, no summarizing, we list all 29 like the icons they are π
devβ thestruct devicepointer, like the main character's ID badge πͺͺmodule_paβ physical address of the interconnect target module, fr fr where it lives in memory-landmodule_sizeβ size of the interconnect target module, the literal footprint πmodule_vaβ virtual address of the interconnect target module, the vibe it presents to software β¨offsetsβ register offsets from the module base, like little GPS coordinates for registers πΊοΈmdataβ the ti-sysc to hwmod translation data for a module, the translator bestie π§clocksβ clocks used by the interconnect target module, tick tock energy β°clock_rolesβ clock role names for the found clocks, giving each clock its own little name tag π·οΈnr_clocksβ number of clocks used by the interconnect target module, the headcount π’rstsβ resets used by the interconnect target module, the reset button squad πlegacy_modeβ configured for legacy mode if set, old-school but still iconic πcapβ interconnect target module capabilities, the special skills list πcfgβ interconnect target module configuration, its settings era πcookieβ data used by legacy platform callbacks, a lil snack for the old code πͺnameβ name if available, so we know who we're dealing with πͺrevisionβ interconnect target module revision, the version tea βsysconfigβ saved sysconfig register value, a lil memory keepsake π§reservedβ target module is reserved and already in use, so don't touch, bestie π«enabledβ sysc runtime enabled status, like an "I'm awake" check βneeds_resumeβ runtime resume needed on resume from suspend, sleepyhead alarm β°π΄child_needs_resumeβ runtime resume needed for child on resume from suspend, the kid also needs waking up πΆidle_workβ work structure used to perform delayed idle on a module, the "brb going idle" scheduled task πpre_reset_quirkβ module specific pre-reset quirk, a lil something before reset πpost_reset_quirkβ module specific post-reset quirk, a lil something after reset πreset_done_quirkβ module specific reset done quirk, celebrating reset completion πmodule_enable_quirkβ module specific enable quirk, special enable behavior β¨module_disable_quirkβ module specific disable quirk, special disable behavior π€module_unlock_quirkβ module specific sysconfig unlock quirk, the "open sesame" moment πmodule_lock_quirkβ module specific sysconfig lock quirk, the "lock it down" moment π
π¦ SEE ALSO π¦
like, go look at these if you want the full lore β kernel file ./drivers/bus/ti-sysc.c and all these function besties:
sysc_init_resets(9), sysc_parse_and_check_child_range(9), sysc_check_one_child(9), sysc_parse_one(9), sysc_check_registers(9), sysc_ioremap(9), sysc_map_and_check_registers(9), sysc_show_rev(9), sysc_show_registers(9), sysc_write_sysconfig(9), sysc_context_notifier(9), sysc_add_restored(9)
ok that's the whole page, bestie β no details left behind, every field accounted for, every quirk named, every SEE ALSO reference present. you're welcome π
this iconic page lives under ./drivers/bus and it's dated October 2026 β so mark your calendar, screenshot it, send it to the group chat, and stan responsibly ππβ¨
π¦ 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