More iAudio M3 work. Target build compiles, but same problem regarding plugins as the simulator. Boots to the menu, but it can't be used yet because only main & remote Play button work. USB works.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16660 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
422454c87d
commit
8a6291dd63
12 changed files with 243 additions and 11 deletions
|
@ -1002,6 +1002,9 @@ static bool dbg_spdif(void)
|
|||
#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
|
||||
# define DEBUG_CANCEL BUTTON_REC
|
||||
|
||||
#elif (CONFIG_KEYPAD == IAUDIO_M3_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_RC_REC
|
||||
|
||||
#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
|
||||
# define DEBUG_CANCEL BUTTON_REW
|
||||
|
||||
|
@ -2050,7 +2053,7 @@ static bool dbg_save_roms(void)
|
|||
fd = creat("/internal_rom_000000-1FFFFF.bin");
|
||||
#elif defined(IRIVER_H300_SERIES)
|
||||
fd = creat("/internal_rom_000000-3FFFFF.bin");
|
||||
#elif defined(IAUDIO_X5) || defined(IAUDIO_M5)
|
||||
#elif defined(IAUDIO_X5) || defined(IAUDIO_M5) || defined(IAUDIO_M3)
|
||||
fd = creat("/internal_rom_000000-3FFFFF.bin");
|
||||
#endif
|
||||
if(fd >= 0)
|
||||
|
|
|
@ -34,7 +34,7 @@ OUTPUT_FORMAT(elf32-sh)
|
|||
#define ARCH_IRIVER
|
||||
#endif
|
||||
|
||||
#ifdef ARCH_IRIVER
|
||||
#if defined(ARCH_IRIVER) || defined(IAUDIO_M3)
|
||||
#define DRAMORIG 0x31000000
|
||||
#define IRAMORIG 0x1000c000
|
||||
#define IRAMSIZE 0xc000
|
||||
|
|
|
@ -496,13 +496,19 @@ target/coldfire/iaudio/m5/audio-m5.c
|
|||
#ifdef IAUDIO_M3
|
||||
#ifndef SIMULATOR
|
||||
target/coldfire/ata-as-coldfire.S
|
||||
target/coldfire/iaudio/m3/adc-m3.c
|
||||
target/coldfire/iaudio/m3/ata-m3.c
|
||||
target/coldfire/iaudio/m3/backlight-m3.c
|
||||
target/coldfire/iaudio/m3/button-m3.c
|
||||
target/coldfire/iaudio/m3/fmradio_i2c-m3.c
|
||||
target/coldfire/iaudio/m3/lcd-m3.c
|
||||
target/coldfire/iaudio/m3/power-m3.c
|
||||
target/coldfire/iaudio/m3/system-m3.c
|
||||
target/coldfire/iaudio/m3/usb-m3.c
|
||||
target/coldfire/iaudio/powermgmt-iaudio.c
|
||||
#ifndef BOOTLOADER
|
||||
target/coldfire/iaudio/m3/audio-m3.c
|
||||
#endif
|
||||
#endif /* SIMULATOR */
|
||||
#endif /* IAUDIO_M3 */
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
/* Define bitmask of input sources - recordable bitmask can be defined
|
||||
explicitly if different */
|
||||
#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN)
|
||||
#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN | SRC_CAP_FMRADIO)
|
||||
|
||||
/* define the bitmask of hardware sample rates */
|
||||
#define HW_SAMPR_CAPS (SAMPR_CAP_88 | SAMPR_CAP_44 | SAMPR_CAP_22 | SAMPR_CAP_11)
|
||||
|
@ -72,6 +72,10 @@
|
|||
/* The number of bytes reserved for loadable plugins */
|
||||
#define PLUGIN_BUFFER_SIZE 0x80000
|
||||
|
||||
/* FM Tuner */
|
||||
#define CONFIG_TUNER TEA5767
|
||||
#define CONFIG_TUNER_XTAL 32768
|
||||
|
||||
#define HAVE_TLV320
|
||||
|
||||
/* TLV320 has no tone controls, so we use the software ones */
|
||||
|
@ -131,6 +135,9 @@
|
|||
|
||||
#endif /* SIMULATOR */
|
||||
|
||||
/* Define this for FM radio input available */
|
||||
#define HAVE_FMRADIO_IN
|
||||
|
||||
/** Port-specific settings **/
|
||||
|
||||
/* Main LCD contrast range and defaults */
|
||||
|
|
|
@ -18,7 +18,11 @@ INPUT(target/coldfire/crt0.o)
|
|||
|
||||
#define DRAMORIG 0x31000000 + STUBOFFSET
|
||||
#define IRAMORIG 0x10000000
|
||||
#ifdef IAUDIO_M3
|
||||
#define IRAMSIZE 0xc000
|
||||
#else
|
||||
#define IRAMSIZE 0x10000
|
||||
#endif
|
||||
|
||||
/* End of the audio buffer, where the codec buffer starts */
|
||||
#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE)
|
||||
|
|
32
firmware/target/coldfire/iaudio/m3/adc-m3.c
Normal file
32
firmware/target/coldfire/iaudio/m3/adc-m3.c
Normal file
|
@ -0,0 +1,32 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2008 by Jens Arnold
|
||||
*
|
||||
* All files in this archive are subject to the GNU General Public License.
|
||||
* See the file COPYING in the source tree root for full license agreement.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include "config.h"
|
||||
#include "cpu.h"
|
||||
#include "system.h"
|
||||
#include "kernel.h"
|
||||
#include "thread.h"
|
||||
#include "adc.h"
|
||||
|
||||
unsigned short adc_scan(int channel)
|
||||
{
|
||||
/* TODO */
|
||||
(void)channel;
|
||||
return 0xff;
|
||||
}
|
114
firmware/target/coldfire/iaudio/m3/audio-m3.c
Normal file
114
firmware/target/coldfire/iaudio/m3/audio-m3.c
Normal file
|
@ -0,0 +1,114 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2006 by Michael Sevakis
|
||||
*
|
||||
* All files in this archive are subject to the GNU General Public License.
|
||||
* See the file COPYING in the source tree root for full license agreement.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include "system.h"
|
||||
#include "cpu.h"
|
||||
#include "audio.h"
|
||||
#include "sound.h"
|
||||
|
||||
void audio_set_output_source(int source)
|
||||
{
|
||||
int level = set_irq_level(DMA_IRQ_LEVEL);
|
||||
unsigned long txsrc;
|
||||
|
||||
if ((unsigned)source >= AUDIO_NUM_SOURCES)
|
||||
txsrc = (3 << 8); /* playback, PDOR3 */
|
||||
else
|
||||
txsrc = (4 << 8); /* recording, iis1RcvData */
|
||||
|
||||
IIS1CONFIG = (IIS1CONFIG & ~(7 << 8)) | txsrc;
|
||||
set_irq_level(level);
|
||||
} /* audio_set_output_source */
|
||||
|
||||
void audio_input_mux(int source, unsigned flags)
|
||||
{
|
||||
/* Prevent pops from unneeded switching */
|
||||
static int last_source = AUDIO_SRC_PLAYBACK;
|
||||
static bool last_recording = false;
|
||||
|
||||
bool recording = flags & SRCF_RECORDING;
|
||||
|
||||
switch (source)
|
||||
{
|
||||
default: /* playback - no recording */
|
||||
source = AUDIO_SRC_PLAYBACK;
|
||||
case AUDIO_SRC_PLAYBACK:
|
||||
if (source != last_source)
|
||||
{
|
||||
audiohw_disable_recording();
|
||||
audiohw_set_monitor(false);
|
||||
coldfire_set_dataincontrol(0);
|
||||
}
|
||||
break;
|
||||
|
||||
case AUDIO_SRC_MIC: /* recording only */
|
||||
if (source != last_source)
|
||||
{
|
||||
audiohw_enable_recording(true); /* source mic */
|
||||
/* Int. when 6 samples in FIFO, PDIR2 src = iis1RcvData */
|
||||
coldfire_set_dataincontrol((3 << 14) | (4 << 3));
|
||||
}
|
||||
break;
|
||||
|
||||
case AUDIO_SRC_LINEIN: /* recording only */
|
||||
if (source != last_source)
|
||||
{
|
||||
audiohw_enable_recording(false); /* source line */
|
||||
/* Int. when 6 samples in FIFO, PDIR2 src = iis1RcvData */
|
||||
coldfire_set_dataincontrol((3 << 14) | (4 << 3));
|
||||
}
|
||||
break;
|
||||
|
||||
case AUDIO_SRC_FMRADIO: /* recording and playback */
|
||||
if (!recording)
|
||||
audiohw_set_recvol(23, 23, AUDIO_GAIN_LINEIN);
|
||||
|
||||
/* I2S recording and analog playback */
|
||||
if (source == last_source && recording == last_recording)
|
||||
break;
|
||||
|
||||
last_recording = recording;
|
||||
|
||||
if (recording)
|
||||
{
|
||||
/* Int. when 6 samples in FIFO, PDIR2 src = iis1RcvData */
|
||||
coldfire_set_dataincontrol((3 << 14) | (4 << 3));
|
||||
audiohw_enable_recording(false); /* source line */
|
||||
}
|
||||
else
|
||||
{
|
||||
audiohw_disable_recording();
|
||||
audiohw_set_monitor(true); /* analog bypass */
|
||||
coldfire_set_dataincontrol(0);
|
||||
}
|
||||
break;
|
||||
} /* end switch */
|
||||
|
||||
/* set line multiplexer */
|
||||
if (source == AUDIO_SRC_FMRADIO)
|
||||
and_l(~(1 << 25), &GPIO1_OUT); /* FM radio */
|
||||
else
|
||||
or_l((1 << 25), &GPIO1_OUT); /* Line In */
|
||||
|
||||
or_l((1 << 25), &GPIO1_ENABLE);
|
||||
or_l((1 << 25), &GPIO1_FUNCTION);
|
||||
|
||||
last_source = source;
|
||||
} /* audio_input_mux */
|
||||
|
|
@ -54,12 +54,6 @@ int button_read_device(void)
|
|||
hold_button_old = hold_button;
|
||||
hold_button = button_hold();
|
||||
|
||||
#ifndef BOOTLOADER
|
||||
/* give BL notice if HB state chaged */
|
||||
if (hold_button != hold_button_old)
|
||||
backlight_hold_changed(hold_button);
|
||||
#endif
|
||||
|
||||
if (!hold_button)
|
||||
{
|
||||
#if 0 /* TODO: implement ADC */
|
||||
|
@ -83,7 +77,7 @@ int button_read_device(void)
|
|||
|
||||
#ifndef BOOTLOADER
|
||||
if (remote_hold_button != remote_hold_button_old)
|
||||
remote_backlight_hold_changed(remote_hold_button);
|
||||
backlight_hold_changed(remote_hold_button);
|
||||
#endif
|
||||
|
||||
if (!remote_hold_button)
|
||||
|
|
37
firmware/target/coldfire/iaudio/m3/fmradio_i2c-m3.c
Normal file
37
firmware/target/coldfire/iaudio/m3/fmradio_i2c-m3.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
* Physical interface of the Philips TEA5767 in iAudio M3
|
||||
*
|
||||
* Copyright (C) 2002 by Linus Nielsen Feltzing
|
||||
*
|
||||
* All files in this archive are subject to the GNU General Public License.
|
||||
* See the file COPYING in the source tree root for full license agreement.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
#include "config.h"
|
||||
|
||||
#if (CONFIG_TUNER & TEA5767)
|
||||
|
||||
#include "i2c-coldfire.h"
|
||||
|
||||
int fmradio_i2c_write(unsigned char address, const unsigned char* buf,
|
||||
int count)
|
||||
{
|
||||
return i2c_write(I2C_IFACE_0, address, buf, count);
|
||||
}
|
||||
|
||||
int fmradio_i2c_read(unsigned char address, unsigned char* buf, int count)
|
||||
{
|
||||
return i2c_read(I2C_IFACE_0, address, buf, count);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -428,6 +428,35 @@ void lcd_init_device(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
/* TODO: implement blit functions */
|
||||
|
||||
/* Performance function that works with an external buffer
|
||||
note that by and bheight are in 8-pixel units! */
|
||||
void lcd_blit(const fb_data *data, int x, int by, int width,
|
||||
int bheight, int stride)
|
||||
{
|
||||
(void)data;
|
||||
(void)x;
|
||||
(void)by;
|
||||
(void)width;
|
||||
(void)bheight;
|
||||
(void)stride;
|
||||
}
|
||||
|
||||
/* Performance function that works with an external buffer
|
||||
note that by and bheight are in 8-pixel units! */
|
||||
void lcd_grey_phase_blit(unsigned char *values, unsigned char *phases,
|
||||
int x, int by, int width, int bheight, int stride)
|
||||
{
|
||||
(void)values;
|
||||
(void)phases;
|
||||
(void)x;
|
||||
(void)by;
|
||||
(void)width;
|
||||
(void)bheight;
|
||||
(void)stride;
|
||||
}
|
||||
|
||||
/* Update the display.
|
||||
This must be called after all other LCD functions that change the display. */
|
||||
void lcd_update(void) ICODE_ATTR;
|
||||
|
|
|
@ -69,3 +69,9 @@ void power_off(void)
|
|||
}
|
||||
|
||||
#endif /* SIMULATOR */
|
||||
|
||||
bool tuner_power(bool status)
|
||||
{
|
||||
(void)status;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ static const unsigned char pcm_freq_parms[HW_NUM_FREQ][3] =
|
|||
};
|
||||
#endif
|
||||
|
||||
#if CONFIG_CPU == MCF5250 && defined(HAVE_TLV320)
|
||||
#if (CONFIG_CPU == MCF5250 || CONFIG_CPU == MCF5249) && defined(HAVE_TLV320)
|
||||
static const unsigned char pcm_freq_parms[HW_NUM_FREQ][3] =
|
||||
{
|
||||
[HW_FREQ_88] = { 0x0c, 0x01, 0x02 },
|
||||
|
|
Loading…
Reference in a new issue