1
0
Fork 0
forked from len0rd/rockbox

FS#8898 - Prefix AS3514 registers with AS3514_

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17130 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Bertrik Sikken 2008-04-15 21:33:32 +00:00
parent a987b7ef2d
commit a24f4b7a80
9 changed files with 99 additions and 94 deletions

View file

@ -1220,7 +1220,7 @@ bool dbg_ports(void)
lcd_puts(0, line++, buf);
snprintf(buf, sizeof(buf), "ADC_VBAT: %4d", adc_read(ADC_VBAT));
lcd_puts(0, line++, buf);
snprintf(buf, sizeof(buf), "CHARGER: %02X/%02X", i2c_readbyte(AS3514_I2C_ADDR, CHRGR), i2c_readbyte(AS3514_I2C_ADDR, IRQ_ENRD0));
snprintf(buf, sizeof(buf), "CHARGER: %02X/%02X", i2c_readbyte(AS3514_I2C_ADDR, AS3514_CHARGER), i2c_readbyte(AS3514_I2C_ADDR, AS3514_IRQ_ENRD0));
lcd_puts(0, line++, buf);
#endif
lcd_update();

View file

@ -161,33 +161,33 @@ void audiohw_init(void)
/* Set ADC off, mixer on, DAC on, line out off, line in off, mic off */
/* Turn on SUM, DAC */
as3514_write(AUDIOSET1, (1 << 6) | (1 << 5));
as3514_write(AS3514_AUDIOSET1, (1 << 6) | (1 << 5));
/* Set BIAS on, DITH on, AGC on, IBR_DAC max, LSP_LP on, IBR_LSP min */
as3514_write(AUDIOSET2, (1 << 2) | (3 << 0));
as3514_write(AS3514_AUDIOSET2, (1 << 2) | (3 << 0));
/* Set HPCM off, ZCU off*/
as3514_write(AUDIOSET3, (1 << 2) | (1 << 0));
as3514_write(AS3514_AUDIOSET3, (1 << 2) | (1 << 0));
/* Mute and disable speaker */
as3514_write(LSP_OUT_R, 0);
as3514_write(LSP_OUT_L, (1 << 7));
as3514_write(AS3514_LSP_OUT_R, 0);
as3514_write(AS3514_LSP_OUT_L, (1 << 7));
/* set vol and set headphone over-current to 0 */
as3514_write(HPH_OUT_R, (0x3 << 6) | 0x16);
as3514_write(AS3514_HPH_OUT_R, (0x3 << 6) | 0x16);
/* set default vol for headphone */
as3514_write(HPH_OUT_L, 0x16);
as3514_write(AS3514_HPH_OUT_L, 0x16);
/* LRCK 24-48kHz */
as3514_write(PLLMODE, 0x00);
as3514_write(AS3514_PLLMODE, 0x00);
/* DAC_Mute_off */
as3514_write_or(DAC_L, (1 << 6));
as3514_write_or(AS3514_DAC_L, (1 << 6));
/* M1_Sup_off */
as3514_write_or(MIC1_L, (1 << 7));
as3514_write_or(AS3514_MIC1_L, (1 << 7));
/* M2_Sup_off */
as3514_write_or(MIC2_L, (1 << 7));
as3514_write_or(AS3514_MIC2_L, (1 << 7));
/* read all reg values */
for (i = 0; i < ARRAYLEN(as3514.regs); i++)
@ -207,18 +207,18 @@ void audiohw_enable_output(bool enable)
/* reset the I2S controller into known state */
i2s_reset();
as3514_write_or(HPH_OUT_L, (1 << 6)); /* power on */
as3514_write_or(AS3514_HPH_OUT_L, (1 << 6)); /* power on */
audiohw_mute(0);
} else {
audiohw_mute(1);
as3514_write_and(HPH_OUT_L, ~(1 << 6)); /* power off */
as3514_write_and(AS3514_HPH_OUT_L, ~(1 << 6)); /* power off */
}
}
void audiohw_set_master_vol(int vol_l, int vol_r)
{
unsigned int hph_r = as3514.regs[HPH_OUT_R] & ~0x1f;
unsigned int hph_l = as3514.regs[HPH_OUT_L] & ~0x1f;
unsigned int hph_r = as3514.regs[AS3514_HPH_OUT_R] & ~0x1f;
unsigned int hph_l = as3514.regs[AS3514_HPH_OUT_L] & ~0x1f;
unsigned int mix_l, mix_r;
unsigned int mix_reg_r, mix_reg_l;
@ -227,11 +227,11 @@ void audiohw_set_master_vol(int vol_l, int vol_r)
as3514.vol_r = vol_r;
if (source == SOURCE_LINE_IN1_ANALOG) {
mix_reg_r = LINE_IN1_R;
mix_reg_l = LINE_IN1_L;
mix_reg_r = AS3514_LINE_IN1_R;
mix_reg_l = AS3514_LINE_IN1_L;
} else {
mix_reg_r = DAC_R;
mix_reg_l = DAC_L;
mix_reg_r = AS3514_DAC_R;
mix_reg_l = AS3514_DAC_L;
}
mix_r = as3514.regs[mix_reg_r] & ~0x1f;
@ -257,22 +257,22 @@ void audiohw_set_master_vol(int vol_l, int vol_r)
as3514_write(mix_reg_r, mix_r);
as3514_write(mix_reg_l, mix_l);
as3514_write(HPH_OUT_R, hph_r);
as3514_write(HPH_OUT_L, hph_l);
as3514_write(AS3514_HPH_OUT_R, hph_r);
as3514_write(AS3514_HPH_OUT_L, hph_l);
}
void audiohw_set_lineout_vol(int vol_l, int vol_r)
{
as3514_write(LINE_OUT_R, vol_r);
as3514_write(LINE_OUT_L, (1 << 6) | vol_l);
as3514_write(AS3514_LINE_OUT_R, vol_r);
as3514_write(AS3514_LINE_OUT_L, (1 << 6) | vol_l);
}
void audiohw_mute(bool mute)
{
if (mute) {
as3514_write_or(HPH_OUT_L, (1 << 7));
as3514_write_or(AS3514_HPH_OUT_L, (1 << 7));
} else {
as3514_write_and(HPH_OUT_L, ~(1 << 7));
as3514_write_and(AS3514_HPH_OUT_L, ~(1 << 7));
}
}
@ -283,7 +283,7 @@ void audiohw_close(void)
audiohw_mute(true);
/* turn off everything */
as3514_write(AUDIOSET1, 0x0);
as3514_write(AS3514_AUDIOSET1, 0x0);
}
void audiohw_set_sample_rate(int sampling_control)
@ -300,29 +300,29 @@ void audiohw_enable_recording(bool source_mic)
audiohw_set_master_vol(as3514.vol_l, as3514.vol_r);
/* ADCmux = Stereo Microphone */
as3514_write_and(ADC_R, ~(0x3 << 6));
as3514_write_and(AS3514_ADC_R, ~(0x3 << 6));
/* MIC1_on, LIN1_off */
as3514_write(AUDIOSET1,
(as3514.regs[AUDIOSET1] & ~(1 << 2)) | (1 << 0));
as3514_write(AS3514_AUDIOSET1,
(as3514.regs[AS3514_AUDIOSET1] & ~(1 << 2)) | (1 << 0));
/* M1_AGC_off */
as3514_write_and(MIC1_R, ~(1 << 7));
as3514_write_and(AS3514_MIC1_R, ~(1 << 7));
} else {
source = SOURCE_LINE_IN1;
audiohw_set_master_vol(as3514.vol_l, as3514.vol_r);
/* ADCmux = Line_IN1 */
as3514_write(ADC_R,
(as3514.regs[ADC_R] & ~(0x3 << 6)) | (0x1 << 6));
as3514_write(AS3514_ADC_R,
(as3514.regs[AS3514_ADC_R] & ~(0x3 << 6)) | (0x1 << 6));
/* MIC1_off, LIN1_on */
as3514_write(AUDIOSET1,
(as3514.regs[AUDIOSET1] & ~(1 << 0)) | (1 << 2));
as3514_write(AS3514_AUDIOSET1,
(as3514.regs[AS3514_AUDIOSET1] & ~(1 << 0)) | (1 << 2));
}
/* ADC_Mute_off */
as3514_write_or(ADC_L, (1 << 6));
as3514_write_or(AS3514_ADC_L, (1 << 6));
/* ADC_on */
as3514_write_or(AUDIOSET1, (1 << 7));
as3514_write_or(AS3514_AUDIOSET1, (1 << 7));
}
void audiohw_disable_recording(void)
@ -330,10 +330,10 @@ void audiohw_disable_recording(void)
source = SOURCE_DAC;
/* ADC_Mute_on */
as3514_write_and(ADC_L, ~(1 << 6));
as3514_write_and(AS3514_ADC_L, ~(1 << 6));
/* ADC_off, LIN1_off, MIC_off */
as3514_write_and(AUDIOSET1, ~((1 << 7) | (1 << 2) | (1 << 0)));
as3514_write_and(AS3514_AUDIOSET1, ~((1 << 7) | (1 << 2) | (1 << 0)));
audiohw_set_master_vol(as3514.vol_l, as3514.vol_r);
}
@ -354,7 +354,7 @@ void audiohw_set_recvol(int left, int right, int type)
case AUDIO_GAIN_MIC:
{
/* Combine MIC gains seamlessly with ADC levels */
unsigned int mic1_r = as3514.regs[MIC1_R] & ~(0x3 << 5);
unsigned int mic1_r = as3514.regs[AS3514_MIC1_R] & ~(0x3 << 5);
if (left >= 36) {
/* M1_Gain = +40db, ADR_Vol = +7.5dB .. +12.0 dB =>
@ -372,7 +372,7 @@ void audiohw_set_recvol(int left, int right, int type)
right = left;
as3514_write(MIC1_R, mic1_r);
as3514_write(AS3514_MIC1_R, mic1_r);
break;
}
case AUDIO_GAIN_LINEIN:
@ -381,8 +381,8 @@ void audiohw_set_recvol(int left, int right, int type)
return;
}
as3514_write(ADC_R, (as3514.regs[ADC_R] & ~0x1f) | right);
as3514_write(ADC_L, (as3514.regs[ADC_L] & ~0x1f) | left);
as3514_write(AS3514_ADC_R, (as3514.regs[AS3514_ADC_R] & ~0x1f) | right);
as3514_write(AS3514_ADC_L, (as3514.regs[AS3514_ADC_L] & ~0x1f) | left);
}
/**
@ -392,11 +392,11 @@ void audiohw_set_recvol(int left, int right, int type)
void audiohw_set_monitor(bool enable)
{
/* LI1R_Mute_on - default */
unsigned int line_in1_r = as3514.regs[LINE_IN1_R] & ~(1 << 5);
unsigned int line_in1_r = as3514.regs[AS3514_LINE_IN1_R] & ~(1 << 5);
/* LI1L_Mute_on - default */
unsigned int line_in1_l = as3514.regs[LINE_IN1_L] & ~(1 << 5);
unsigned int line_in1_l = as3514.regs[AS3514_LINE_IN1_L] & ~(1 << 5);
/* LIN1_off - default */
unsigned int audioset1 = as3514.regs[AUDIOSET1] & ~(1 << 2);
unsigned int audioset1 = as3514.regs[AS3514_AUDIOSET1] & ~(1 << 2);
if (enable) {
source = SOURCE_LINE_IN1_ANALOG;
@ -409,9 +409,9 @@ void audiohw_set_monitor(bool enable)
audioset1 |= (1 << 2);
}
as3514_write(AUDIOSET1, audioset1);
as3514_write(LINE_IN1_R, line_in1_r);
as3514_write(LINE_IN1_L, line_in1_l);
as3514_write(AS3514_AUDIOSET1, audioset1);
as3514_write(AS3514_LINE_IN1_R, line_in1_r);
as3514_write(AS3514_LINE_IN1_L, line_in1_l);
/* Sync mixer volume */
audiohw_set_master_vol(as3514.vol_l, as3514.vol_r);

View file

@ -55,7 +55,7 @@ int rtc_read_datetime(unsigned char* buf)
/* RTC_AS3514's slave address is 0x46*/
for (i=0;i<4;i++){
tmp[i] = i2c_readbyte(AS3514_I2C_ADDR, RTC_0 + i);
tmp[i] = i2c_readbyte(AS3514_I2C_ADDR, AS3514_RTC_0 + i);
}
seconds = tmp[0] + (tmp[1]<<8) + (tmp[2]<<16) + (tmp[3]<<24);
@ -160,7 +160,7 @@ int rtc_write_datetime(unsigned char* buf)
/* Send data to RTC */
for (i=0;i<4;i++){
pp_i2c_send(AS3514_I2C_ADDR, RTC_0 + i, ((seconds >> (8 * i)) & 0xff));
pp_i2c_send(AS3514_I2C_ADDR, AS3514_RTC_0 + i, ((seconds >> (8 * i)) & 0xff));
}
return 1;
}

View file

@ -29,44 +29,49 @@ extern void audiohw_set_lineout_vol(int vol_l, int vol_r);
extern void audiohw_set_sample_rate(int sampling_control);
/* Register Descriptions */
#define LINE_OUT_R 0x00
#define LINE_OUT_L 0x01
#define HPH_OUT_R 0x02
#define HPH_OUT_L 0x03
#define LSP_OUT_R 0x04
#define LSP_OUT_L 0x05
#define MIC1_R 0x06
#define MIC1_L 0x07
#define MIC2_R 0x08
#define MIC2_L 0x09
#define LINE_IN1_R 0x0a
#define LINE_IN1_L 0x0b
#define LINE_IN2_R 0x0c
#define LINE_IN2_L 0x0d
#define DAC_R 0x0e
#define DAC_L 0x0f
#define ADC_R 0x10
#define ADC_L 0x11
#define AUDIOSET1 0x14
#define AUDIOSET2 0x15
#define AUDIOSET3 0x16
#define PLLMODE 0x1d
#define AS3514_LINE_OUT_R 0x00
#define AS3514_LINE_OUT_L 0x01
#define AS3514_HPH_OUT_R 0x02
#define AS3514_HPH_OUT_L 0x03
#define AS3514_LSP_OUT_R 0x04
#define AS3514_LSP_OUT_L 0x05
#define AS3514_MIC1_R 0x06
#define AS3514_MIC1_L 0x07
#define AS3514_MIC2_R 0x08
#define AS3514_MIC2_L 0x09
#define AS3514_LINE_IN1_R 0x0a
#define AS3514_LINE_IN1_L 0x0b
#define AS3514_LINE_IN2_R 0x0c
#define AS3514_LINE_IN2_L 0x0d
#define AS3514_DAC_R 0x0e
#define AS3514_DAC_L 0x0f
#define AS3514_ADC_R 0x10
#define AS3514_ADC_L 0x11
#define AS3514_AUDIOSET1 0x14
#define AS3514_AUDIOSET2 0x15
#define AS3514_AUDIOSET3 0x16
#define AS3514_PLLMODE 0x1d
#define SYSTEM 0x20
#define CHRGR 0x22
#define DCDC15 0x23
#define SUPERVISOR 0x24
#define AS3514_SYSTEM 0x20
#define AS3514_CVDD_DCDC3 0x21
#define AS3514_CHARGER 0x22
#define AS3514_DCDC15 0x23
#define AS3514_SUPERVISOR 0x24
#define IRQ_ENRD0 0x25
#define IRQ_ENRD1 0x26
#define IRQ_ENRD2 0x27
#define AS3514_IRQ_ENRD0 0x25
#define AS3514_IRQ_ENRD1 0x26
#define AS3514_IRQ_ENRD2 0x27
#define RTC_0 0x2a
#define RTC_1 0x2b
#define RTC_2 0x2c
#define RTC_3 0x2d
#define ADC_0 0x2e
#define ADC_1 0x2f
#define AS3514_RTCV 0x28
#define AS3514_RTCT 0x29
#define AS3514_RTC_0 0x2a
#define AS3514_RTC_1 0x2b
#define AS3514_RTC_2 0x2c
#define AS3514_RTC_3 0x2d
#define AS3514_ADC_0 0x2e
#define AS3514_ADC_1 0x2f
#define AS3514_UID_0 0x30
/* Headphone volume goes from -73.5 ... +6dB */
#define VOLUME_MIN -735

View file

@ -228,7 +228,7 @@ void i2c_init(void)
outl(0, 0x600060a4);
outl(0x1e, 0x600060a4);
pp_i2c_send(AS3514_I2C_ADDR, SUPERVISOR, 5);
pp_i2c_send(AS3514_I2C_ADDR, AS3514_SUPERVISOR, 5);
#endif
#endif

View file

@ -31,12 +31,12 @@ unsigned short adc_read(int channel)
i2c_lock();
/* Select channel */
if (pp_i2c_send( AS3514_I2C_ADDR, ADC_0, (channel << 4)) >= 0)
if (pp_i2c_send( AS3514_I2C_ADDR, AS3514_ADC_0, (channel << 4)) >= 0)
{
unsigned char buf[2];
/* Read data */
if (i2c_readbytes( AS3514_I2C_ADDR, ADC_0, 2, buf) >= 0)
if (i2c_readbytes( AS3514_I2C_ADDR, AS3514_ADC_0, 2, buf) >= 0)
{
data = (((buf[0] & 0x3) << 8) | buf[1]);
}

View file

@ -44,12 +44,12 @@ void _backlight_on(void)
#if defined(HAVE_LCD_SLEEP) && !defined(BOOTLOADER)
_lcd_sleep_timer = 0; /* LCD should be awake already */
#endif
pp_i2c_send(AS3514_I2C_ADDR, DCDC15, backlight_brightness);
pp_i2c_send(AS3514_I2C_ADDR, AS3514_DCDC15, backlight_brightness);
}
void _backlight_off(void)
{
pp_i2c_send(AS3514_I2C_ADDR, DCDC15, 0x0);
pp_i2c_send(AS3514_I2C_ADDR, AS3514_DCDC15, 0x0);
#ifdef HAVE_LCD_ENABLE
lcd_enable(false); /* power off lcd */
#endif

View file

@ -33,9 +33,9 @@ void power_off(void)
char byte;
/* Send shutdown command to PMU */
byte = i2c_readbyte(AS3514_I2C_ADDR, SYSTEM);
byte = i2c_readbyte(AS3514_I2C_ADDR, AS3514_SYSTEM);
byte &= ~0x1;
pp_i2c_send(AS3514_I2C_ADDR, SYSTEM, byte);
pp_i2c_send(AS3514_I2C_ADDR, AS3514_SYSTEM, byte);
/* Stop interrupts on both cores */
disable_interrupt(IRQ_FIQ_STATUS);

View file

@ -283,7 +283,7 @@ static void set_serial_descriptor(void)
short* p = &usb_string_iSerial.wString[1];
int i;
i2c_readbytes(AS3514_I2C_ADDR, 0x30, 0x10, serial);
i2c_readbytes(AS3514_I2C_ADDR, AS3514_UID_0, 0x10, serial);
for (i = 0; i < 16; i++) {
*p++ = hex[(serial[i] >> 4) & 0xF];
*p++ = hex[(serial[i] >> 0) & 0xF];