112 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * wm8960.h -- WM8960 Soc Audio driver4 */5 6#ifndef _WM8960_H7#define _WM8960_H8 9/* WM8960 register space */10 11 12#define WM8960_CACHEREGNUM 5613 14#define WM8960_LINVOL 0x015#define WM8960_RINVOL 0x116#define WM8960_LOUT1 0x217#define WM8960_ROUT1 0x318#define WM8960_CLOCK1 0x419#define WM8960_DACCTL1 0x520#define WM8960_DACCTL2 0x621#define WM8960_IFACE1 0x722#define WM8960_CLOCK2 0x823#define WM8960_IFACE2 0x924#define WM8960_LDAC 0xa25#define WM8960_RDAC 0xb26 27#define WM8960_RESET 0xf28#define WM8960_3D 0x1029#define WM8960_ALC1 0x1130#define WM8960_ALC2 0x1231#define WM8960_ALC3 0x1332#define WM8960_NOISEG 0x1433#define WM8960_LADC 0x1534#define WM8960_RADC 0x1635#define WM8960_ADDCTL1 0x1736#define WM8960_ADDCTL2 0x1837#define WM8960_POWER1 0x1938#define WM8960_POWER2 0x1a39#define WM8960_ADDCTL3 0x1b40#define WM8960_APOP1 0x1c41#define WM8960_APOP2 0x1d42 43#define WM8960_LINPATH 0x2044#define WM8960_RINPATH 0x2145#define WM8960_LOUTMIX 0x2246 47#define WM8960_ROUTMIX 0x2548#define WM8960_MONOMIX1 0x2649#define WM8960_MONOMIX2 0x2750#define WM8960_LOUT2 0x2851#define WM8960_ROUT2 0x2952#define WM8960_MONO 0x2a53#define WM8960_INBMIX1 0x2b54#define WM8960_INBMIX2 0x2c55#define WM8960_BYPASS1 0x2d56#define WM8960_BYPASS2 0x2e57#define WM8960_POWER3 0x2f58#define WM8960_ADDCTL4 0x3059#define WM8960_CLASSD1 0x3160 61#define WM8960_CLASSD3 0x3362#define WM8960_PLL1 0x3463#define WM8960_PLL2 0x3564#define WM8960_PLL3 0x3665#define WM8960_PLL4 0x3766 67 68/*69 * WM8960 Clock dividers70 */71#define WM8960_SYSCLKDIV 072#define WM8960_DACDIV 173#define WM8960_OPCLKDIV 274#define WM8960_DCLKDIV 375#define WM8960_TOCLKSEL 476 77#define WM8960_SYSCLK_DIV_1 (0 << 1)78#define WM8960_SYSCLK_DIV_2 (2 << 1)79 80#define WM8960_SYSCLK_AUTO (0 << 0)81#define WM8960_SYSCLK_PLL (1 << 0)82#define WM8960_SYSCLK_MCLK (2 << 0)83 84#define WM8960_DAC_DIV_1 (0 << 3)85#define WM8960_DAC_DIV_1_5 (1 << 3)86#define WM8960_DAC_DIV_2 (2 << 3)87#define WM8960_DAC_DIV_3 (3 << 3)88#define WM8960_DAC_DIV_4 (4 << 3)89#define WM8960_DAC_DIV_5_5 (5 << 3)90#define WM8960_DAC_DIV_6 (6 << 3)91 92#define WM8960_DCLK_DIV_1_5 (0 << 6)93#define WM8960_DCLK_DIV_2 (1 << 6)94#define WM8960_DCLK_DIV_3 (2 << 6)95#define WM8960_DCLK_DIV_4 (3 << 6)96#define WM8960_DCLK_DIV_6 (4 << 6)97#define WM8960_DCLK_DIV_8 (5 << 6)98#define WM8960_DCLK_DIV_12 (6 << 6)99#define WM8960_DCLK_DIV_16 (7 << 6)100 101#define WM8960_TOCLK_F19 (0 << 1)102#define WM8960_TOCLK_F21 (1 << 1)103 104#define WM8960_OPCLK_DIV_1 (0 << 0)105#define WM8960_OPCLK_DIV_2 (1 << 0)106#define WM8960_OPCLK_DIV_3 (2 << 0)107#define WM8960_OPCLK_DIV_4 (3 << 0)108#define WM8960_OPCLK_DIV_5_5 (4 << 0)109#define WM8960_OPCLK_DIV_6 (5 << 0)110 111#endif112