include/sound/tas2x20-tlv.h
Source file repositories/reference/linux-study-clean/include/sound/tas2x20-tlv.h
File Facts
- System
- Linux kernel
- Corpus path
include/sound/tas2x20-tlv.h- Extension
.h- Size
- 10776 bytes
- Lines
- 260
- Domain
- Driver Families
- Bucket
- include/sound
- Inferred role
- Driver Families: implementation source
- Status
- source 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.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
//
// ALSA SoC Texas Instruments TAS2x20/TAS2118 Audio Smart Amplifier
//
// Copyright (C) 2025 Texas Instruments Incorporated
// https://www.ti.com
//
// The TAS2x20/TAS2118 hda driver implements for one, two, or even multiple
// TAS2x20/TAS2118 chips.
//
// Author: Baojun Xu <baojun.xu@ti.com>
//
#ifndef __TAS2X20_TLV_H__
#define __TAS2X20_TLV_H__
#define TAS2X20_DVC_LEVEL TASDEVICE_REG(0x0, 0x2, 0x0c)
#define TAS2X20_AMP_LEVEL TASDEVICE_REG(0x0, 0x0, 0x07)
static const __maybe_unused DECLARE_TLV_DB_SCALE(tas2x20_dvc_tlv, 1650, 50, 0);
static const __maybe_unused DECLARE_TLV_DB_SCALE(tas2x20_amp_tlv, 2100, 50, 0);
/* pow(10, db/20) * pow(2,22) */
static const __maybe_unused unsigned char tas2x20_dvc_table[][4] = {
{ 0X00, 0X00, 0X0D, 0X00 }, /* -110.0db */
{ 0X00, 0X00, 0X0E, 0X00 }, /* -109.5db */
{ 0X00, 0X00, 0X0E, 0X00 }, /* -109.0db */
{ 0X00, 0X00, 0X0F, 0X00 }, /* -108.5db */
{ 0X00, 0X00, 0X10, 0X00 }, /* -108.0db */
{ 0X00, 0X00, 0X11, 0X00 }, /* -107.5db */
{ 0X00, 0X00, 0X12, 0X00 }, /* -107.0db */
{ 0X00, 0X00, 0X13, 0X00 }, /* -106.5db */
{ 0X00, 0X00, 0X15, 0X00 }, /* -106.0db */
{ 0X00, 0X00, 0X16, 0X00 }, /* -105.5db */
{ 0X00, 0X00, 0X17, 0X00 }, /* -105.0db */
{ 0X00, 0X00, 0X18, 0X00 }, /* -104.5db */
{ 0X00, 0X00, 0X1A, 0X00 }, /* -104.0db */
{ 0X00, 0X00, 0X1C, 0X00 }, /* -103.5db */
{ 0X00, 0X00, 0X1D, 0X00 }, /* -103.0db */
{ 0X00, 0X00, 0X1F, 0X00 }, /* -102.5db */
{ 0X00, 0X00, 0X21, 0X00 }, /* -102.0db */
{ 0X00, 0X00, 0X23, 0X00 }, /* -101.5db */
{ 0X00, 0X00, 0X25, 0X00 }, /* -101.0db */
{ 0X00, 0X00, 0X27, 0X00 }, /* -100.5db */
{ 0X00, 0X00, 0X29, 0X00 }, /* -100.0db */
{ 0X00, 0X00, 0X2C, 0X00 }, /* -99.5db */
{ 0X00, 0X00, 0X2F, 0X00 }, /* -99.0db */
{ 0X00, 0X00, 0X31, 0X00 }, /* -98.5db */
{ 0X00, 0X00, 0X34, 0X00 }, /* -98.0db */
{ 0X00, 0X00, 0X37, 0X00 }, /* -97.5db */
{ 0X00, 0X00, 0X3B, 0X00 }, /* -97.0db */
{ 0X00, 0X00, 0X3E, 0X00 }, /* -96.5db */
{ 0X00, 0X00, 0X42, 0X00 }, /* -96.0db */
{ 0X00, 0X00, 0X46, 0X00 }, /* -95.5db */
{ 0X00, 0X00, 0X4A, 0X00 }, /* -95.0db */
{ 0X00, 0X00, 0X4F, 0X00 }, /* -94.5db */
{ 0X00, 0X00, 0X53, 0X00 }, /* -94.0db */
{ 0X00, 0X00, 0X58, 0X00 }, /* -93.5db */
{ 0X00, 0X00, 0X5D, 0X00 }, /* -93.0db */
{ 0X00, 0X00, 0X63, 0X00 }, /* -92.5db */
{ 0X00, 0X00, 0X69, 0X00 }, /* -92.0db */
{ 0X00, 0X00, 0X6F, 0X00 }, /* -91.5db */
{ 0X00, 0X00, 0X76, 0X00 }, /* -91.0db */
{ 0X00, 0X00, 0X7D, 0X00 }, /* -90.5db */
{ 0X00, 0X00, 0X84, 0X00 }, /* -90.0db */
{ 0X00, 0X00, 0X8C, 0X00 }, /* -89.5db */
{ 0X00, 0X00, 0X94, 0X00 }, /* -89.0db */
{ 0X00, 0X00, 0X9D, 0X00 }, /* -88.5db */
{ 0X00, 0X00, 0XA6, 0X00 }, /* -88.0db */
{ 0X00, 0X00, 0XB0, 0X00 }, /* -87.5db */
{ 0X00, 0X00, 0XBB, 0X00 }, /* -87.0db */
{ 0X00, 0X00, 0XC6, 0X00 }, /* -86.5db */
{ 0X00, 0X00, 0XD2, 0X00 }, /* -86.0db */
{ 0X00, 0X00, 0XDE, 0X00 }, /* -85.5db */
{ 0X00, 0X00, 0XEB, 0X00 }, /* -85.0db */
{ 0X00, 0X00, 0XF9, 0X00 }, /* -84.5db */
{ 0X00, 0X01, 0X08, 0X00 }, /* -84.0db */
{ 0X00, 0X01, 0X18, 0X00 }, /* -83.5db */
{ 0X00, 0X01, 0X28, 0X00 }, /* -83.0db */
{ 0X00, 0X01, 0X3A, 0X00 }, /* -82.5db */
{ 0X00, 0X01, 0X4D, 0X00 }, /* -82.0db */
{ 0X00, 0X01, 0X60, 0X00 }, /* -81.5db */
{ 0X00, 0X01, 0X75, 0X00 }, /* -81.0db */
{ 0X00, 0X01, 0X8B, 0X00 }, /* -80.5db */
{ 0X00, 0X01, 0XA3, 0X00 }, /* -80.0db */
{ 0X00, 0X01, 0XBC, 0X00 }, /* -79.5db */
{ 0X00, 0X01, 0XD6, 0X00 }, /* -79.0db */
{ 0X00, 0X01, 0XF2, 0X00 }, /* -78.5db */
{ 0X00, 0X02, 0X10, 0X00 }, /* -78.0db */
{ 0X00, 0X02, 0X2F, 0X00 }, /* -77.5db */
{ 0X00, 0X02, 0X50, 0X00 }, /* -77.0db */
Annotation
- Atlas domain: Driver Families / include/sound.
- 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.