1
0
Fork 0
forked from len0rd/rockbox
foxbox/firmware/export/cs42l55.h
Michael Sevakis 0c7b787398 Straighten out the mad twisted state of sound.c and related areas.
This is going right in since it's long overdue. If anything is goofed,
drop me a line or just tweak it yourself if you know what's wrong. :-)

Make HW/SW codec interface more uniform when emulating HW functionality
on SWCODEC for functions such as "audiohw_set_pitch". The firmware-to-
DSP plumbing is in firmware/drivers/audiohw-swcodec.c. "sound_XXX"
APIs are all in sound.c with none in DSP code any longer.

Reduce number of settings definitions needed by each codec by providing
defaults for common ones like balance, channels and SW tone controls.

Remove need for separate SIM code and tables and add virtual codec header
for hosted targets.

Change-Id: I3f23702bca054fc9bda40f49824ce681bb7f777b
2013-04-15 12:02:05 -04:00

485 lines
17 KiB
C

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id: wm8975.h 28159 2010-09-24 22:42:06Z Buschel $
*
* Copyright (C) 2010 by Michael Sparmann
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef __CS42L55_H__
#define __CS42L55_H__
/* volume/balance/treble/bass interdependency */
#define VOLUME_MIN -580
#define VOLUME_MAX 120
#define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | BASS_CUTOFF_CAP | \
TREBLE_CUTOFF_CAP | PRESCALER_CAP | LINEOUT_CAP)
AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -60, 12, -25)
AUDIOHW_SETTING(BASS, "dB", 1, 15,-105, 120, 0)
AUDIOHW_SETTING(TREBLE, "dB", 1, 15,-105, 120, 0)
AUDIOHW_SETTING(BASS_CUTOFF, "", 0, 1, 1, 4, 2)
AUDIOHW_SETTING(TREBLE_CUTOFF, "", 0, 1, 1, 4, 1)
void audiohw_enable_lineout(bool enable);
/* Register addresses and bits */
#define HIDDENCTL 0x00
#define HIDDENCTL_LOCK 0x00
#define HIDDENCTL_UNLOCK 0x99
#define CHIPVERSION 0x01
#define PWRCTL1 0x02
#define PWRCTL1_PDN_CODEC (1 << 0)
#define PWRCTL1_PDN_ADCA (1 << 1)
#define PWRCTL1_PDN_ADCB (1 << 2)
#define PWRCTL1_PDN_CHRG (1 << 3)
#define PWRCTL2 0x03
#define PWRCTL2_PDN_LINA_MASK (3 << 0)
#define PWRCTL2_PDN_LINA_HIGH (0 << 0)
#define PWRCTL2_PDN_LINA_LOW (1 << 0)
#define PWRCTL2_PDN_LINA_NEVER (2 << 0)
#define PWRCTL2_PDN_LINA_ALWAYS (3 << 0)
#define PWRCTL2_PDN_LINB_MASK (3 << 2)
#define PWRCTL2_PDN_LINB_HIGH (0 << 2)
#define PWRCTL2_PDN_LINB_LOW (1 << 2)
#define PWRCTL2_PDN_LINB_NEVER (2 << 2)
#define PWRCTL2_PDN_LINB_ALWAYS (3 << 2)
#define PWRCTL2_PDN_HPA_MASK (3 << 4)
#define PWRCTL2_PDN_HPA_HIGH (0 << 4)
#define PWRCTL2_PDN_HPA_LOW (1 << 4)
#define PWRCTL2_PDN_HPA_NEVER (2 << 4)
#define PWRCTL2_PDN_HPA_ALWAYS (3 << 4)
#define PWRCTL2_PDN_HPB_MASK (3 << 6)
#define PWRCTL2_PDN_HPB_HIGH (0 << 6)
#define PWRCTL2_PDN_HPB_LOW (1 << 6)
#define PWRCTL2_PDN_HPB_NEVER (2 << 6)
#define PWRCTL2_PDN_HPB_ALWAYS (3 << 6)
#define CLKCTL1 0x04
#define CLKCTL1_MCLKDIS (1 << 0)
#define CLKCTL1_MCLKDIV2 (1 << 1)
#define CLKCTL1_SCLKMCLK_MASK (3 << 2)
#define CLKCTL1_SCLKMCLK_BURST (0 << 2)
#define CLKCTL1_SCLKMCLK_AFTER (2 << 2)
#define CLKCTL1_SCLKMCLK_BEFORE (3 << 2)
#define CLKCTL1_INV_SCLK (1 << 4)
#define CLKCTL1_MASTER (1 << 5)
#define CLKCTL2 0x05
#define CLKCTL2_MCLKLRCK_MASK (3 << 0)
#define CLKCTL2_MCLKLRCK_125 (1 << 0)
#define CLKCTL2_MCLKLRCK_136 (3 << 0)
#define CLKCTL2_32KGROUP (1 << 2)
#define CLKCTL2_SPEED_MASK (3 << 3)
#define CLKCTL2_SPEED_SINGLE (1 << 3)
#define CLKCTL2_SPEED_HALF (2 << 3)
#define CLKCTL2_SPEED_QUARTER (3 << 3)
#define CLKCTL2_8000HZ 0x1d
#define CLKCTL2_11025HZ 0x1b
#define CLKCTL2_12000HZ 0x19
#define CLKCTL2_16000HZ 0x15
#define CLKCTL2_22050HZ 0x13
#define CLKCTL2_24000HZ 0x11
#define CLKCTL2_32000HZ 0x0d
#define CLKCTL2_44100HZ 0x0b
#define CLKCTL2_48000HZ 0x09
#define CLSHCTL 0x06
#define CLSHCTL_ADPTPWR_MASK (3 << 4)
#define CLSHCTL_ADPTPWR_VOLUME (0 << 4)
#define CLSHCTL_ADPTPWR_HALF (1 << 4)
#define CLSHCTL_ADPTPWR_FULL (2 << 4)
#define CLSHCTL_ADPTPWR_SIGNAL (3 << 4)
#define MISCCTL 0x07
#define MISCCTL_FREEZE (1 << 0)
#define MISCCTL_DIGSFT (1 << 2)
#define MISCCTL_ANLGZC (1 << 3)
#define MISCCTL_UNDOC4 (1 << 4)
#define MISCCTL_DIGMUX (1 << 7)
#define ALHMUX 0x08
#define ALHMUX_HPAMUX_MASK (1 << 0)
#define ALHMUX_HPAMUX_DACA (0 << 0)
#define ALHMUX_HPAMUX_PGAA (1 << 0)
#define ALHMUX_HPBMUX_MASK (1 << 1)
#define ALHMUX_HPBMUX_DACB (0 << 1)
#define ALHMUX_HPBMUX_PGAB (1 << 1)
#define ALHMUX_LINEAMUX_MASK (1 << 2)
#define ALHMUX_LINEAMUX_DACA (0 << 2)
#define ALHMUX_LINEAMUX_PGAA (1 << 2)
#define ALHMUX_LINEBMUX_MASK (1 << 3)
#define ALHMUX_LINEBMUX_DACB (0 << 3)
#define ALHMUX_LINEBMUX_PGAB (1 << 3)
#define ALHMUX_ADCAMUX_MASK (3 << 4)
#define ALHMUX_ADCAMUX_PGAA (0 << 4)
#define ALHMUX_ADCAMUX_AIN1A (1 << 4)
#define ALHMUX_ADCAMUX_AIN2A (2 << 4)
#define ALHMUX_ADCBMUX_MASK (3 << 4)
#define ALHMUX_ADCBMUX_PGAB (0 << 6)
#define ALHMUX_ADCBMUX_AIN1B (1 << 6)
#define ALHMUX_ADCBMUX_AIN2B (2 << 6)
#define HPFCTL 0x09
#define HPFCTL_HPFA_CF_MASK (3 << 0)
#define HPFCTL_HPFA_CF_1_8 (0 << 0)
#define HPFCTL_HPFA_CF_119 (1 << 0)
#define HPFCTL_HPFA_CF_236 (2 << 0)
#define HPFCTL_HPFA_CF_464 (3 << 0)
#define HPFCTL_HPFB_CF_MASK (3 << 2)
#define HPFCTL_HPFB_CF_1_8 (0 << 2)
#define HPFCTL_HPFB_CF_119 (1 << 2)
#define HPFCTL_HPFB_CF_236 (2 << 2)
#define HPFCTL_HPFB_CF_464 (3 << 2)
#define HPFCTL_HPFRZA (1 << 4)
#define HPFCTL_HPFA (1 << 5)
#define HPFCTL_HPFRZB (1 << 6)
#define HPFCTL_HPFB (1 << 7)
#define ADCCTL 0x0a
#define ADCCTL_ADCAMUTE (1 << 0)
#define ADCCTL_ADCBMUTE (1 << 1)
#define ADCCTL_INV_ADCA (1 << 2)
#define ADCCTL_INV_ADCB (1 << 3)
#define ADCCTL_DIGSUM_MASK (3 << 4)
#define ADCCTL_DIGSUM_NORMAL (0 << 4)
#define ADCCTL_DIGSUM_HALFSUM (1 << 4)
#define ADCCTL_DIGSUM_HALFDIFF (2 << 4)
#define ADCCTL_DIGSUM_SWAPPED (3 << 4)
#define ADCCTL_PGA_VOLUME_GROUP (1 << 6)
#define ADCCTL_ADC_VOLUME_GROUP (1 << 7)
#define PGAACTL 0x0b
#define PGAACTL_VOLUME_MASK (0x3f << 0)
#define PGAACTL_VOLUME_SHIFT 0
#define PGAACTL_MUX_MASK (1 << 6)
#define PGAACTL_MUX_AIN1A (0 << 6)
#define PGAACTL_MUX_AIN2A (1 << 6)
#define PGAACTL_BOOST (1 << 7)
#define PGABCTL 0x0c
#define PGABCTL_VOLUME_MASK (0x3f << 0)
#define PGABCTL_VOLUME_SHIFT 0
#define PGABCTL_MUX_MASK (1 << 6)
#define PGABCTL_MUX_AIN1B (0 << 6)
#define PGABCTL_MUX_AIN2B (1 << 6)
#define PGABCTL_BOOST (1 << 7)
#define ADCAATT 0x0d
#define ADCAATT_VOLUME_MASK (0xff << 0)
#define ADCAATT_VOLUME_SHIFT 0
#define ADCBATT 0x0e
#define ADCBATT_VOLUME_MASK (0xff << 0)
#define ADCBATT_VOLUME_SHIFT 0
#define PLAYCTL 0x0f
#define PLAYCTL_MSTAMUTE (1 << 0)
#define PLAYCTL_MSTBMUTE (1 << 1)
#define PLAYCTL_INV_PCMA (1 << 2)
#define PLAYCTL_INV_PCMB (1 << 3)
#define PLAYCTL_PB_VOLUME_GROUP (1 << 4)
#define PLAYCTL_DEEMPH (1 << 6)
#define PLAYCTL_PDN_DSP (1 << 7)
#define AMIXACTL 0x10
#define AMIXACTL_AMIXAVOL_MASK (0x7f << 0)
#define AMIXACTL_AMIXAVOL_SHIFT 0
#define AMIXACTL_AMIXAMUTE (1 << 7)
#define AMIXBCTL 0x11
#define AMIXBCTL_AMIXBVOL_MASK (0x7f << 0)
#define AMIXBCTL_AMIXBVOL_SHIFT 0
#define AMIXBCTL_AMIXBMUTE (1 << 7)
#define PMIXACTL 0x12
#define PMIXACTL_PMIXAVOL_MASK (0x7f << 0)
#define PMIXACTL_PMIXAVOL_SHIFT 0
#define PMIXACTL_PMIXAMUTE (1 << 7)
#define PMIXBCTL 0x13
#define PMIXBCTL_PMIXBVOL_MASK (0x7f << 0)
#define PMIXBCTL_PMIXBVOL_SHIFT 0
#define PMIXBCTL_PMIXBMUTE (1 << 7)
#define BEEPFO 0x14
#define BEEPFO_ONTIME_MASK (0xf << 0)
#define BEEPFO_ONTIME_86 (0x0 << 0)
#define BEEPFO_ONTIME_430 (0x1 << 0)
#define BEEPFO_ONTIME_780 (0x2 << 0)
#define BEEPFO_ONTIME_1200 (0x3 << 0)
#define BEEPFO_ONTIME_1500 (0x4 << 0)
#define BEEPFO_ONTIME_1800 (0x5 << 0)
#define BEEPFO_ONTIME_2200 (0x6 << 0)
#define BEEPFO_ONTIME_2500 (0x7 << 0)
#define BEEPFO_ONTIME_2800 (0x8 << 0)
#define BEEPFO_ONTIME_3200 (0x9 << 0)
#define BEEPFO_ONTIME_3500 (0xa << 0)
#define BEEPFO_ONTIME_3800 (0xb << 0)
#define BEEPFO_ONTIME_4200 (0xc << 0)
#define BEEPFO_ONTIME_4500 (0xd << 0)
#define BEEPFO_ONTIME_4800 (0xe << 0)
#define BEEPFO_ONTIME_5200 (0xf << 0)
#define BEEPFO_FREQ_MASK (0xf << 4)
#define BEEPFO_FREQ_254_76 (0x0 << 4)
#define BEEPFO_FREQ_509_51 (0x1 << 4)
#define BEEPFO_FREQ_571_65 (0x2 << 4)
#define BEEPFO_FREQ_651_04 (0x3 << 4)
#define BEEPFO_FREQ_689_34 (0x4 << 4)
#define BEEPFO_FREQ_756_04 (0x5 << 4)
#define BEEPFO_FREQ_869_45 (0x6 << 4)
#define BEEPFO_FREQ_976_56 (0x7 << 4)
#define BEEPFO_FREQ_1019_02 (0x8 << 4)
#define BEEPFO_FREQ_1171_88 (0x9 << 4)
#define BEEPFO_FREQ_1302_08 (0xa << 4)
#define BEEPFO_FREQ_1378_67 (0xb << 4)
#define BEEPFO_FREQ_1562_50 (0xc << 4)
#define BEEPFO_FREQ_1674_11 (0xd << 4)
#define BEEPFO_FREQ_1953_13 (0xe << 4)
#define BEEPFO_FREQ_2130_68 (0xf << 4)
#define BEEPVO 0x15
#define BEEPVO_VOLUME_MASK (0x1f << 0)
#define BEEPVO_VOLUME_SHIFT 0
#define BEEPVO_OFFTIME_MASK (7 << 5)
#define BEEPVO_OFFTIME_1230 (0 << 5)
#define BEEPVO_OFFTIME_2580 (1 << 5)
#define BEEPVO_OFFTIME_3900 (2 << 5)
#define BEEPVO_OFFTIME_5200 (3 << 5)
#define BEEPVO_OFFTIME_6600 (4 << 5)
#define BEEPVO_OFFTIME_8050 (5 << 5)
#define BEEPVO_OFFTIME_9350 (6 << 5)
#define BEEPVO_OFFTIME_10800 (7 << 5)
#define BTCTL 0x16
#define BTCTL_TCEN (1 << 0)
#define BTCTL_BASSCF_MASK (3 << 1)
#define BTCTL_BASSCF_SHIFT 1
#define BTCTL_BASSCF_50 (0 << 1)
#define BTCTL_BASSCF_100 (1 << 1)
#define BTCTL_BASSCF_200 (2 << 1)
#define BTCTL_BASSCF_250 (3 << 1)
#define BTCTL_TREBCF_MASK (3 << 3)
#define BTCTL_TREBCF_SHIFT 3
#define BTCTL_TREBCF_5000 (0 << 3)
#define BTCTL_TREBCF_7000 (1 << 3)
#define BTCTL_TREBCF_10000 (2 << 3)
#define BTCTL_TREBCF_15000 (3 << 3)
#define BTCTL_BEEP_MASK (0 << 6)
#define BTCTL_BEEP_OFF (0 << 6)
#define BTCTL_BEEP_SINGLE (1 << 6)
#define BTCTL_BEEP_MULTIPLE (2 << 6)
#define BTCTL_BEEP_CONTINUOUS (3 << 6)
#define TONECTL 0x17
#define TONECTL_BASS_MASK (0xf << 0)
#define TONECTL_BASS_SHIFT 0
#define TONECTL_TREB_MASK (0xf << 4)
#define TONECTL_TREB_SHIFT 4
#define MSTAVOL 0x18
#define MSTAVOL_VOLUME_MASK (0xff << 0)
#define MSTAVOL_VOLUME_SHIFT 0
#define MSTBVOL 0x19
#define MSTBVOL_VOLUME_MASK (0xff << 0)
#define MSTBVOL_VOLUME_SHIFT 0
#define HPACTL 0x1a
#define HPACTL_HPAVOL_MASK (0x7f << 0)
#define HPACTL_HPAVOL_SHIFT 0
#define HPACTL_HPAMUTE (1 << 7)
#define HPBCTL 0x1b
#define HPBCTL_HPBVOL_MASK (0x7f << 0)
#define HPBCTL_HPBVOL_SHIFT 0
#define HPBCTL_HPBMUTE (1 << 7)
#define LINEACTL 0x1c
#define LINEACTL_LINEAVOL_MASK (0x7f << 0)
#define LINEACTL_LINEAVOL_SHIFT 0
#define LINEACTL_LINEAMUTE (1 << 7)
#define LINEBCTL 0x1d
#define LINEBCTL_LINEBVOL_MASK (0x7f << 0)
#define LINEBCTL_LINEBVOL_SHIFT 0
#define LINEBCTL_LINEBMUTE (1 << 7)
#define AINADV 0x1e
#define AINADV_VOLUME_MASK (0xff << 0)
#define AINADV_VOLUME_SHIFT 0
#define DINADV 0x1f
#define DINADV_VOLUME_MASK (0xff << 0)
#define DINADV_VOLUME_SHIFT 0
#define MIXCTL 0x20
#define MIXCTL_ADCASWP_MASK (3 << 0)
#define MIXCTL_ADCASWP_NORMAL (0 << 0)
#define MIXCTL_ADCASWP_HALFSUM (1 << 0)
#define MIXCTL_ADCASWP_HALFSUM2 (2 << 0)
#define MIXCTL_ADCASWP_SWAPPED (3 << 0)
#define MIXCTL_ADCBSWP_MASK (3 << 2)
#define MIXCTL_ADCBSWP_NORMAL (0 << 2)
#define MIXCTL_ADCBSWP_HALFSUM (1 << 2)
#define MIXCTL_ADCBSWP_HALFSUM2 (2 << 2)
#define MIXCTL_ADCBSWP_SWAPPED (3 << 2)
#define MIXCTL_PCMASWP_MASK (3 << 4)
#define MIXCTL_PCMASWP_NORMAL (0 << 4)
#define MIXCTL_PCMASWP_HALFSUM (1 << 4)
#define MIXCTL_PCMASWP_HALFSUM2 (2 << 4)
#define MIXCTL_PCMASWP_SWAPPED (3 << 4)
#define MIXCTL_PCMBSWP_MASK (3 << 6)
#define MIXCTL_PCMBSWP_NORMAL (0 << 6)
#define MIXCTL_PCMBSWP_HALFSUM (1 << 6)
#define MIXCTL_PCMBSWP_HALFSUM2 (2 << 6)
#define MIXCTL_PCMBSWP_SWAPPED (3 << 6)
#define LIMCTL1 0x21
#define LIMCTL1_CUSH_MASK (7 << 2)
#define LIMCTL1_CUSH_0 (0 << 2)
#define LIMCTL1_CUSH_3 (1 << 2)
#define LIMCTL1_CUSH_6 (2 << 2)
#define LIMCTL1_CUSH_9 (3 << 2)
#define LIMCTL1_CUSH_12 (4 << 2)
#define LIMCTL1_CUSH_18 (5 << 2)
#define LIMCTL1_CUSH_24 (6 << 2)
#define LIMCTL1_CUSH_30 (7 << 2)
#define LIMCTL1_LMAX_MASK (7 << 5)
#define LIMCTL1_LMAX_0 (0 << 5)
#define LIMCTL1_LMAX_3 (1 << 5)
#define LIMCTL1_LMAX_6 (2 << 5)
#define LIMCTL1_LMAX_9 (3 << 5)
#define LIMCTL1_LMAX_12 (4 << 5)
#define LIMCTL1_LMAX_18 (5 << 5)
#define LIMCTL1_LMAX_24 (6 << 5)
#define LIMCTL1_LMAX_30 (7 << 5)
#define LIMCTL2 0x22
#define LIMCTL2_LIMRRATE_MASK (0x3f << 0)
#define LIMCTL2_LIMRRATE_SHIFT 0
#define LIMCTL2_LIMIT_ALL (1 << 6)
#define LIMCTL2_LIMIT (1 << 7)
#define LIMCTL3 0x23
#define LIMCTL3_LIMARATE_MASK (0x3f << 0)
#define LIMCTL3_LIMARATE_SHIFT 0
#define ALCCTL1 0x24
#define ALCCTL1_ALCARATE_MASK (0x3f << 0)
#define ALCCTL1_ALCARATE_SHIFT 0
#define ALCCTL1_ALCA (1 << 6)
#define ALCCTL1_ALCB (1 << 7)
#define ALCCTL2 0x25
#define ALCCTL2_ALCRRATE_MASK (0x3f << 0)
#define ALCCTL2_ALCRRATE_SHIFT 0
#define ALCCTL3 0x26
#define ALCCTL3_ALCMIN_MASK (7 << 2)
#define ALCCTL3_ALCMIN_0 (0 << 2)
#define ALCCTL3_ALCMIN_3 (1 << 2)
#define ALCCTL3_ALCMIN_6 (2 << 2)
#define ALCCTL3_ALCMIN_9 (3 << 2)
#define ALCCTL3_ALCMIN_12 (4 << 2)
#define ALCCTL3_ALCMIN_18 (5 << 2)
#define ALCCTL3_ALCMIN_24 (6 << 2)
#define ALCCTL3_ALCMIN_30 (7 << 2)
#define ALCCTL3_ALCMAX_MASK (7 << 5)
#define ALCCTL3_ALCMAX_0 (0 << 5)
#define ALCCTL3_ALCMAX_3 (1 << 5)
#define ALCCTL3_ALCMAX_6 (2 << 5)
#define ALCCTL3_ALCMAX_9 (3 << 5)
#define ALCCTL3_ALCMAX_12 (4 << 5)
#define ALCCTL3_ALCMAX_18 (5 << 5)
#define ALCCTL3_ALCMAX_24 (6 << 5)
#define ALCCTL3_ALCMAX_30 (7 << 5)
#define NGCTL 0x27
#define NGCTL_NGDELEAY_MASK (3 << 0)
#define NGCTL_NGDELEAY_50 (0 << 0)
#define NGCTL_NGDELEAY_100 (1 << 0)
#define NGCTL_NGDELEAY_150 (2 << 0)
#define NGCTL_NGDELEAY_200 (3 << 0)
#define NGCTL_THRESH_MASK (7 << 2)
#define NGCTL_THRESH_SHIFT 2
#define NGCTL_NG_BOOST30 (1 << 5)
#define NGCTL_NG (1 << 6)
#define NGCTL_NGALL (1 << 7)
#define ALSZDIS 0x28
#define ALSZDIS_LIMSRDIS (1 << 3)
#define ALSZDIS_ALCAZCDIS (1 << 4)
#define ALSZDIS_ALCASRDIS (1 << 5)
#define ALSZDIS_ALCBZCDIS (1 << 6)
#define ALSZDIS_ALCBSRDIS (1 << 7)
#define STATUS 0x29
#define STATUS_ADCAOVFL (1 << 0)
#define STATUS_ADCBOVFL (1 << 1)
#define STATUS_MIXAOVFL (1 << 2)
#define STATUS_MIXBOVFL (1 << 3)
#define STATUS_DSPAOVFL (1 << 4)
#define STATUS_DSPBOVFL (1 << 5)
#define STATUS_SPCLKERR (1 << 6)
#define STATUS_HPDETECT (1 << 7)
#define CPCTL 0x2a
#define CPCTL_CHGFREQ_MASK (0xf << 0)
#define CPCTL_CHGFREQ_SHIFT 0
#define HIDDEN2E 0x2e
#define HIDDEN2E_DEFAULT 0x30
#define HIDDEN32 0x32
#define HIDDEN32_DEFAULT 0x07
#define HIDDEN33 0x33
#define HIDDEN33_DEFAULT 0xff
#define HIDDEN34 0x34
#define HIDDEN34_DEFAULT 0xf8
#define HIDDEN35 0x35
#define HIDDEN35_DEFAULT 0xdc
#define HIDDEN36 0x36
#define HIDDEN36_DEFAULT 0xfc
#define HIDDEN37 0x37
#define HIDDEN37_DEFAULT 0xac
#define HIDDEN3A 0x3a
#define HIDDEN3A_DEFAULT 0xf8
#define HIDDEN3C 0x3c
#define HIDDEN3C_DEFAULT 0xd3
#define HIDDEN3D 0x3d
#define HIDDEN3D_DEFAULT 0x23
#define HIDDEN3E 0x3e
#define HIDDEN3E_DEFAULT 0x81
#define HIDDEN3F 0x3f
#define HIDDEN3F_DEFAULT 0x46
#endif /* __CS42L55_H__ */