drivers/mfd/cs47l85-tables.c
Source file repositories/reference/linux-study-clean/drivers/mfd/cs47l85-tables.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/mfd/cs47l85-tables.c- Extension
.c- Size
- 139886 bytes
- Lines
- 2894
- 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 cs47l85_patchfunction cs47l85_is_adsp_memoryfunction cs47l85_16bit_readable_registerfunction cs47l85_16bit_volatile_registerfunction cs47l85_32bit_readable_registerfunction cs47l85_32bit_volatile_registerexport cs47l85_patchexport cs47l85_16bit_spi_regmapexport cs47l85_16bit_i2c_regmapexport cs47l85_32bit_spi_regmapexport cs47l85_32bit_i2c_regmap
Annotated Snippet
// SPDX-License-Identifier: GPL-2.0-only
/*
* Regmap tables for CS47L85 codec
*
* Copyright (C) 2015-2017 Cirrus Logic
*/
#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 cs47l85_reva_16_patch[] = {
{ 0x80, 0x0003 },
{ 0x213, 0x03E4 },
{ 0x177, 0x0281 },
{ 0x197, 0x0281 },
{ 0x1B7, 0x0281 },
{ 0x4B1, 0x010A },
{ 0x4CF, 0x0933 },
{ 0x36C, 0x011B },
{ 0x4B8, 0x1120 },
{ 0x4A0, 0x3280 },
{ 0x4A1, 0x3200 },
{ 0x4A2, 0x3200 },
{ 0x441, 0xC050 },
{ 0x4A4, 0x000B },
{ 0x4A5, 0x000B },
{ 0x4A6, 0x000B },
{ 0x4E2, 0x1E1D },
{ 0x4E3, 0x1E1D },
{ 0x4E4, 0x1E1D },
{ 0x293, 0x0080 },
{ 0x17D, 0x0303 },
{ 0x19D, 0x0303 },
{ 0x27E, 0x0000 },
{ 0x80, 0x0000 },
{ 0x80, 0x0000 },
{ 0x448, 0x003f },
};
static const struct reg_sequence cs47l85_revc_16_patch[] = {
{ 0x27E, 0x0000 },
{ 0x2C2, 0x0005 },
{ 0x448, 0x003f },
};
static const struct reg_sequence cs47l85_reva_32_patch[] = {
{ 0x3000, 0xC2253632 },
{ 0x3002, 0xC2300001 },
{ 0x3004, 0x8225100E },
{ 0x3006, 0x22251803 },
{ 0x3008, 0x82310B00 },
{ 0x300A, 0xE231023B },
{ 0x300C, 0x02313B01 },
{ 0x300E, 0x62300000 },
{ 0x3010, 0xE2314288 },
{ 0x3012, 0x02310B00 },
{ 0x3014, 0x02310B00 },
{ 0x3016, 0x04050100 },
{ 0x3018, 0x42310C02 },
{ 0x301A, 0xE2310227 },
{ 0x301C, 0x02313B01 },
{ 0x301E, 0xE2314266 },
{ 0x3020, 0xE2315294 },
{ 0x3022, 0x02310B00 },
{ 0x3024, 0x02310B00 },
{ 0x3026, 0x02251100 },
{ 0x3028, 0x02251401 },
{ 0x302A, 0x02250200 },
{ 0x302C, 0x02251001 },
{ 0x302E, 0x02250200 },
{ 0x3030, 0xE2310266 },
{ 0x3032, 0x82314B15 },
{ 0x3034, 0x82310B15 },
{ 0x3036, 0xE2315294 },
{ 0x3038, 0x02310B00 },
{ 0x303A, 0x8225160D },
{ 0x303C, 0x0225F501 },
{ 0x303E, 0x8225061C },
{ 0x3040, 0x02251000 },
{ 0x3042, 0x04051101 },
{ 0x3044, 0x02251800 },
{ 0x3046, 0x42251203 },
{ 0x3048, 0x02251101 },
{ 0x304A, 0xC2251300 },
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 cs47l85_patch`, `function cs47l85_is_adsp_memory`, `function cs47l85_16bit_readable_register`, `function cs47l85_16bit_volatile_register`, `function cs47l85_32bit_readable_register`, `function cs47l85_32bit_volatile_register`, `export cs47l85_patch`, `export cs47l85_16bit_spi_regmap`, `export cs47l85_16bit_i2c_regmap`, `export cs47l85_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.