Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Apple Onboard Audio driver for Onyx codec (header)
0004  *
0005  * Copyright 2006 Johannes Berg <johannes@sipsolutions.net>
0006  */
0007 #ifndef __SND_AOA_CODEC_ONYX_H
0008 #define __SND_AOA_CODEC_ONYX_H
0009 #include <linux/i2c.h>
0010 #include <asm/pmac_low_i2c.h>
0011 #include <asm/prom.h>
0012 
0013 /* PCM3052 register definitions */
0014 
0015 /* the attenuation registers take values from
0016  * -1 (0dB) to -127 (-63.0 dB) or others (muted) */
0017 #define ONYX_REG_DAC_ATTEN_LEFT     65
0018 #define FIRSTREGISTER           ONYX_REG_DAC_ATTEN_LEFT
0019 #define ONYX_REG_DAC_ATTEN_RIGHT    66
0020 
0021 #define ONYX_REG_CONTROL        67
0022 #   define ONYX_MRST        (1<<7)
0023 #   define ONYX_SRST        (1<<6)
0024 #   define ONYX_ADPSV       (1<<5)
0025 #   define ONYX_DAPSV       (1<<4)
0026 #   define ONYX_SILICONVERSION  (1<<0)
0027 /* all others reserved */
0028 
0029 #define ONYX_REG_DAC_CONTROL        68
0030 #   define ONYX_OVR1        (1<<6)
0031 #   define ONYX_MUTE_RIGHT      (1<<1)
0032 #   define ONYX_MUTE_LEFT       (1<<0)
0033 
0034 #define ONYX_REG_DAC_DEEMPH     69
0035 #   define ONYX_DIGDEEMPH_SHIFT 5
0036 #   define ONYX_DIGDEEMPH_MASK  (3<<ONYX_DIGDEEMPH_SHIFT)
0037 #   define ONYX_DIGDEEMPH_CTRL  (1<<4)
0038 
0039 #define ONYX_REG_DAC_FILTER     70
0040 #   define ONYX_ROLLOFF_FAST    (1<<5)
0041 #   define ONYX_DAC_FILTER_ALWAYS   (1<<2)
0042 
0043 #define ONYX_REG_DAC_OUTPHASE       71
0044 #   define ONYX_OUTPHASE_INVERTED   (1<<0)
0045 
0046 #define ONYX_REG_ADC_CONTROL        72
0047 #   define ONYX_ADC_INPUT_MIC   (1<<5)
0048 /* 8 + input gain in dB, valid range for input gain is -4 .. 20 dB */
0049 #   define ONYX_ADC_PGA_GAIN_MASK   0x1f
0050 
0051 #define ONYX_REG_ADC_HPF_BYPASS     75
0052 #   define ONYX_HPF_DISABLE     (1<<3)
0053 #   define ONYX_ADC_HPF_ALWAYS  (1<<2)
0054 
0055 #define ONYX_REG_DIG_INFO1      77
0056 #   define ONYX_MASK_DIN_TO_BPZ (1<<7)
0057 /* bits 1-5 control channel bits 1-5 */
0058 #   define ONYX_DIGOUT_DISABLE  (1<<0)
0059 
0060 #define ONYX_REG_DIG_INFO2      78
0061 /* controls channel bits 8-15 */
0062 
0063 #define ONYX_REG_DIG_INFO3      79
0064 /* control channel bits 24-29, high 2 bits reserved */
0065 
0066 #define ONYX_REG_DIG_INFO4      80
0067 #   define ONYX_VALIDL      (1<<7)
0068 #   define ONYX_VALIDR      (1<<6)
0069 #   define ONYX_SPDIF_ENABLE    (1<<5)
0070 /* lower 4 bits control bits 32-35 of channel control and word length */
0071 #   define ONYX_WORDLEN_MASK    (0xF)
0072 
0073 #endif /* __SND_AOA_CODEC_ONYX_H */