drivers/mfd/cs47l92-tables.c
Source file repositories/reference/linux-study-clean/drivers/mfd/cs47l92-tables.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/mfd/cs47l92-tables.c- Extension
.c- Size
- 97752 bytes
- Lines
- 1948
- Domain
- Driver Families
- Bucket
- drivers/mfd
- Inferred role
- Driver Families: exported/initcall integration point
- Status
- integration implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/device.hlinux/module.hlinux/regmap.hlinux/mfd/madera/core.hlinux/mfd/madera/registers.hmadera.h
Detected Declarations
function cs47l92_patchfunction cs47l92_is_adsp_memoryfunction cs47l92_16bit_readable_registerfunction cs47l92_16bit_volatile_registerfunction cs47l92_32bit_readable_registerfunction cs47l92_32bit_volatile_registerexport cs47l92_patchexport cs47l92_16bit_spi_regmapexport cs47l92_16bit_i2c_regmapexport cs47l92_32bit_spi_regmapexport cs47l92_32bit_i2c_regmap
Annotated Snippet
// SPDX-License-Identifier: GPL-2.0-only
/*
* Regmap tables for CS47L92 codec
*
* Copyright (C) 2016-2019 Cirrus Logic, Inc. and
* Cirrus Logic International Semiconductor Ltd.
*
* Author: Stuart Henderson <stuarth@opensource.cirrus.com>
*/
#include <linux/device.h>
#include <linux/module.h>
#include <linux/regmap.h>
#include <linux/mfd/madera/core.h>
#include <linux/mfd/madera/registers.h>
#include "madera.h"
static const struct reg_sequence cs47l92_reva_16_patch[] = {
{ 0x3A2, 0x2C29 },
{ 0x3A3, 0x0E00 },
{ 0x281, 0x0000 },
{ 0x282, 0x0000 },
{ 0x4EA, 0x0100 },
{ 0x22B, 0x0000 },
{ 0x4A0, 0x0080 },
{ 0x4A1, 0x0000 },
{ 0x4A2, 0x0000 },
{ 0x180B, 0x033F },
{ 0x190B, 0x033F },
{ 0x442, 0x0304 },
{ 0x34C, 0x0003 },
{ 0x124, 0x0C49 },
{ 0x120, 0x0345 },
{ 0x120, 0x0305 },
{ 0x4FA, 0x5064 },
{ 0x1300, 0x050E },
{ 0x1302, 0x0101 },
{ 0x1380, 0x02E0 },
{ 0x1381, 0xF942 },
{ 0x1382, 0x04CE },
{ 0x1383, 0xFF06 },
{ 0x1390, 0x0304 },
{ 0x1391, 0xF8FF },
{ 0x1392, 0x04F3 },
{ 0x1393, 0xFF00 },
{ 0x13A0, 0x02E0 },
{ 0x13A1, 0xF942 },
{ 0x13A2, 0x04CE },
{ 0x13A3, 0xFF06 },
{ 0x13B0, 0x0304 },
{ 0x13B1, 0xF8FF },
{ 0x13B2, 0x04F3 },
{ 0x13B3, 0xFF00 },
{ 0x412, 0x0005 },
{ 0x41A, 0x0005 },
{ 0x422, 0x0005 },
};
static const struct reg_sequence cs47l92_reva_32_patch[] = {
{ 0x3030, 0x04A00C01 },
{ 0x3032, 0x0225F501 },
{ 0x3044, 0x04A00C00 },
{ 0x3046, 0x0225FF01 },
{ 0x3080, 0x04A00C01 },
{ 0x3082, 0x0226F501 },
{ 0x3094, 0x04A00C00 },
{ 0x3096, 0x0226FF01 },
{ 0x30D1, 0x04A10C01 },
{ 0x30D2, 0x0227F501 },
{ 0x30E4, 0x04A10C00 },
{ 0x30E6, 0x0227FF01 },
{ 0x3120, 0x04A10C01 },
{ 0x3122, 0x0228F501 },
{ 0x3134, 0x04A10C00 },
{ 0x3136, 0x0228FF01 },
{ 0x3170, 0x04A20C01 },
{ 0x3172, 0x022B0101 },
{ 0x3174, 0x0229F501 },
{ 0x3184, 0x04A20C00 },
{ 0x3186, 0x022B0100 },
{ 0x3188, 0x0229FF01 },
{ 0x31C0, 0x04A20C01 },
{ 0x31C2, 0x022B0001 },
{ 0x31C4, 0x022AF501 },
{ 0x31D4, 0x04A20C00 },
{ 0x31D6, 0x022B0000 },
{ 0x31D8, 0x022AFF01 },
};
Annotation
- Immediate include surface: `linux/device.h`, `linux/module.h`, `linux/regmap.h`, `linux/mfd/madera/core.h`, `linux/mfd/madera/registers.h`, `madera.h`.
- Detected declarations: `function cs47l92_patch`, `function cs47l92_is_adsp_memory`, `function cs47l92_16bit_readable_register`, `function cs47l92_16bit_volatile_register`, `function cs47l92_32bit_readable_register`, `function cs47l92_32bit_volatile_register`, `export cs47l92_patch`, `export cs47l92_16bit_spi_regmap`, `export cs47l92_16bit_i2c_regmap`, `export cs47l92_32bit_spi_regmap`.
- Atlas domain: Driver Families / drivers/mfd.
- Implementation status: integration 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.