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.

Dependency Surface

Detected Declarations

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

Implementation Notes