STRUCT OMAP_HWMOD_CLASS_SYSCONFIG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct omap_hwmod_class_sysconfig(9) πŸ’…

okay bestie, welcome to the Kernel API Manual entry for this struct β€” and yes, it’s giving hwmod class OCP_SYS* data main character energy. no cap, let’s get into it ✨

🌸 NAME 🌸

struct omap_hwmod_class_sysconfig β€” hwmod class OCP_SYS* data, periodt. 🫢

✨ SYNOPSIS ✨

the whole struct, exactly as it is, bestie:

       struct omap_hwmod_class_sysconfig {
           s32 rev_offs;
           s32 sysc_offs;
           s32 syss_offs;
           u16 sysc_flags;
           struct sysc_regbits *sysc_fields;
           u8 srst_udelay;
           u8 idlemodes;
        };

πŸŽ€ Members πŸŽ€

vibe check on the members, one by one πŸ’…

  • rev_offs β€” IP block revision register offset (from module base addr). yes, from module base addr, keep that in mind 🫢
  • sysc_offs β€” OCP_SYSCONFIG register offset (from module base addr). iconic little offset.
  • syss_offs β€” OCP_SYSSTATUS register offset (from module base addr). not me being obsessed with base addr, but here we are 😭
  • sysc_flags β€” SYS{C,S}_HAS* flags indicating SYSCONFIG bits supported. fr fr, these flags tell you which bits are supported.
  • sysc_fields β€” structure containing the offset positions of various bits in SYSCONFIG register. This can be populated using omap_hwmod_sysc_type1 or omap_hwmod_sysc_type2 defined in omap_hwmod_common_data.c depending on whether the device ip is compliant with the original PRCM protocol defined for OMAP2420 or the new PRCM protocol for new OMAP4 IPs. If the device follows a different scheme for the sysconfig register , then this field has to be populated with the correct offset structure. iykyk, this one is doing the most πŸ’€
  • srst_udelay β€” Delay needed after doing a softreset in usecs. lowkey important, don’t skip it.
  • idlemodes β€” One or more of {SIDLE,MSTANDBY}_{OFF,FORCE,SMART}. literally one or more, bestie.

πŸ¦‹ Description πŸ¦‹

okay so clockact describes to the module which clocks are likely to be disabled when the PRCM issues its idle request to the module. Some modules have separate clockdomains for the interface clock and main functional clock, and can check whether they should acknowledge the idle request based on the internal module functionality that has been associated with the clocks marked in clockact. This field is only used if HWMOD_SET_DEFAULT_CLOCKACT is set (see below). that’s the whole lore, no cap 🫢

πŸ’œ SEE ALSO πŸ’œ

  • Kernel file ./arch/arm/mach-omap2/omap_hwmod.h
  • struct omap_hwmod_rst_info(9)
  • struct omap_hwmod_opt_clk(9)
  • struct omap_hwmod_omap2_firewall(9)
  • struct omap_hwmod_ocp_if(9)
  • struct omap_hwmod_omap2_prcm(9)
  • struct omap_hwmod_omap4_prcm(9)
  • struct omap_hwmod_class(9)
  • struct omap_hwmod(9)

xoxo, your Kernel API Manual bestie πŸ’– β€” source ./arch/arm/mach-omap2, dated October 2026, still serving struct manual realness. periodt 🫢

πŸ“¦ where this page comes from