include/linux/mfd/twl6040.h
Source file repositories/reference/linux-study-clean/include/linux/mfd/twl6040.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/mfd/twl6040.h- Extension
.h- Size
- 5979 bytes
- Lines
- 230
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/interrupt.hlinux/mfd/core.hlinux/regulator/consumer.hlinux/clk.h
Detected Declarations
struct gpio_descstruct regmapstruct regmap_irq_chips_datastruct twl6040function twl6040_get_revid
Annotated Snippet
struct twl6040 {
struct device *dev;
struct regmap *regmap;
struct regmap_irq_chip_data *irq_data;
struct regulator_bulk_data supplies[2]; /* supplies for vio, v2v1 */
struct clk *clk32k;
struct clk *mclk;
struct mutex mutex;
struct mutex irq_mutex;
struct mfd_cell cells[TWL6040_CELLS];
struct completion ready;
struct gpio_desc *audpwron;
int power_count;
int rev;
/* PLL configuration */
int pll;
unsigned int sysclk_rate;
unsigned int mclk_rate;
unsigned int irq;
unsigned int irq_ready;
unsigned int irq_th;
};
int twl6040_reg_read(struct twl6040 *twl6040, unsigned int reg);
int twl6040_reg_write(struct twl6040 *twl6040, unsigned int reg,
u8 val);
int twl6040_set_bits(struct twl6040 *twl6040, unsigned int reg,
u8 mask);
int twl6040_clear_bits(struct twl6040 *twl6040, unsigned int reg,
u8 mask);
int twl6040_power(struct twl6040 *twl6040, int on);
int twl6040_set_pll(struct twl6040 *twl6040, int pll_id,
unsigned int freq_in, unsigned int freq_out);
int twl6040_get_pll(struct twl6040 *twl6040);
unsigned int twl6040_get_sysclk(struct twl6040 *twl6040);
/* Get the combined status of the vibra control register */
int twl6040_get_vibralr_status(struct twl6040 *twl6040);
static inline int twl6040_get_revid(struct twl6040 *twl6040)
{
return twl6040->rev;
}
#endif /* End of __TWL6040_CODEC_H__ */
Annotation
- Immediate include surface: `linux/interrupt.h`, `linux/mfd/core.h`, `linux/regulator/consumer.h`, `linux/clk.h`.
- Detected declarations: `struct gpio_desc`, `struct regmap`, `struct regmap_irq_chips_data`, `struct twl6040`, `function twl6040_get_revid`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.