From 29d8b917a8bda553671294dc31640e0bb78021f2 Mon Sep 17 00:00:00 2001 From: Tomasz Malesinski Date: Fri, 10 Nov 2006 07:43:36 +0000 Subject: [PATCH] Forgot to add new files for iFP move to target tree. Fixed conifg-ifp7xx.h so that the simulator works. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11494 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/config-ifp7xx.h | 14 +-- .../arm/iriver/{h10 => }/backlight-target.h | 0 .../target/arm/iriver/ifp7xx/adc-ifp7xx.c | 57 ++++++++++++ .../target/arm/iriver/ifp7xx/adc-target.h | 29 ++++++ .../arm/iriver/ifp7xx/backlight-ifp7xx.c | 33 +++++++ .../target/arm/iriver/ifp7xx/button-ifp7xx.c | 89 +++++++++++++++++++ .../target/arm/iriver/ifp7xx/button-target.h | 56 ++++++++++++ .../target/arm/iriver/ifp7xx/power-ifp7xx.c | 86 ++++++++++++++++++ .../target/arm/iriver/ifp7xx/usb-ifp7xx.c | 51 +++++++++++ .../target/arm/iriver/{h10 => }/usb-target.h | 0 10 files changed, 408 insertions(+), 7 deletions(-) rename firmware/target/arm/iriver/{h10 => }/backlight-target.h (100%) create mode 100644 firmware/target/arm/iriver/ifp7xx/adc-ifp7xx.c create mode 100644 firmware/target/arm/iriver/ifp7xx/adc-target.h create mode 100644 firmware/target/arm/iriver/ifp7xx/backlight-ifp7xx.c create mode 100644 firmware/target/arm/iriver/ifp7xx/button-ifp7xx.c create mode 100644 firmware/target/arm/iriver/ifp7xx/button-target.h create mode 100644 firmware/target/arm/iriver/ifp7xx/power-ifp7xx.c create mode 100644 firmware/target/arm/iriver/ifp7xx/usb-ifp7xx.c rename firmware/target/arm/iriver/{h10 => }/usb-target.h (100%) diff --git a/firmware/export/config-ifp7xx.h b/firmware/export/config-ifp7xx.h index 637a754f2a..2e26e56a52 100644 --- a/firmware/export/config-ifp7xx.h +++ b/firmware/export/config-ifp7xx.h @@ -50,6 +50,13 @@ #define BATTERY_CAPACITY_DEFAULT 1000 /* default battery capacity */ +/* Virtual LED (icon) */ +#define CONFIG_LED LED_VIRTUAL + +#define MIN_CONTRAST_SETTING 5 +#define MAX_CONTRAST_SETTING 63 +#define DEFAULT_CONTRAST_SETTING 40 + #ifndef SIMULATOR /* Define this if you have a Philips PNX0101 */ @@ -90,13 +97,6 @@ #define HAVE_GDB_API -/* Virtual LED (icon) */ -#define CONFIG_LED LED_VIRTUAL - -#define MIN_CONTRAST_SETTING 5 -#define MAX_CONTRAST_SETTING 63 -#define DEFAULT_CONTRAST_SETTING 40 - /* Define this if you have adjustable CPU frequency */ //#define HAVE_ADJUSTABLE_CPU_FREQ diff --git a/firmware/target/arm/iriver/h10/backlight-target.h b/firmware/target/arm/iriver/backlight-target.h similarity index 100% rename from firmware/target/arm/iriver/h10/backlight-target.h rename to firmware/target/arm/iriver/backlight-target.h diff --git a/firmware/target/arm/iriver/ifp7xx/adc-ifp7xx.c b/firmware/target/arm/iriver/ifp7xx/adc-ifp7xx.c new file mode 100644 index 0000000000..79b1ad0fcb --- /dev/null +++ b/firmware/target/arm/iriver/ifp7xx/adc-ifp7xx.c @@ -0,0 +1,57 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 by Barry Wardell + * + * 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" + +static unsigned short adcdata[NUM_ADC_CHANNELS]; + +unsigned short adc_read(int channel) +{ + return adcdata[channel]; +} + +static void adc_tick(void) +{ + if (ADCST & 0x10) { + adcdata[0] = ADCCH0 & 0x3ff; + adcdata[1] = ADCCH1 & 0x3ff; + adcdata[2] = ADCCH2 & 0x3ff; + adcdata[3] = ADCCH3 & 0x3ff; + adcdata[4] = ADCCH4 & 0x3ff; + ADCST = 0xa; + } +} + +void adc_init(void) +{ + ADCR24 = 0xaaaaa; + ADCR28 = 0; + ADCST = 2; + ADCST = 0xa; + + while (!(ADCST & 0x10)); + adc_tick(); + + tick_add_task(adc_tick); +} + diff --git a/firmware/target/arm/iriver/ifp7xx/adc-target.h b/firmware/target/arm/iriver/ifp7xx/adc-target.h new file mode 100644 index 0000000000..8e5e6edbc5 --- /dev/null +++ b/firmware/target/arm/iriver/ifp7xx/adc-target.h @@ -0,0 +1,29 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 by Barry Wardell + * + * 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. + * + ****************************************************************************/ +#ifndef _ADC_TARGET_H_ +#define _ADC_TARGET_H_ + +#define NUM_ADC_CHANNELS 5 + +#define ADC_BUTTONS 0 +#define ADC_BATTERY 1 +#define ADC_BUTTON_PLAY 2 +#define ADC_UNREG_POWER ADC_BATTERY /* For compatibility */ + +#endif diff --git a/firmware/target/arm/iriver/ifp7xx/backlight-ifp7xx.c b/firmware/target/arm/iriver/ifp7xx/backlight-ifp7xx.c new file mode 100644 index 0000000000..c0dc3974c0 --- /dev/null +++ b/firmware/target/arm/iriver/ifp7xx/backlight-ifp7xx.c @@ -0,0 +1,33 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 by Barry Wardell + * + * 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 "backlight.h" +#include "lcd.h" + +void __backlight_on(void) +{ + GPIO3_SET = 1; +} + +void __backlight_off(void) +{ + GPIO3_CLR = 1; +} diff --git a/firmware/target/arm/iriver/ifp7xx/button-ifp7xx.c b/firmware/target/arm/iriver/ifp7xx/button-ifp7xx.c new file mode 100644 index 0000000000..52e29fdfdf --- /dev/null +++ b/firmware/target/arm/iriver/ifp7xx/button-ifp7xx.c @@ -0,0 +1,89 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 by Barry Wardell + * + * 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 +#include "config.h" +#include "cpu.h" +#include "system.h" +#include "button.h" +#include "kernel.h" +#include "backlight.h" +#include "adc.h" +#include "system.h" + + +void button_init_device(void) +{ + +} + +bool button_hold(void) +{ + return (GPIO5_READ & 4) ? false : true; +} + +/* + * Get button pressed from hardware + */ +int button_read_device(void) +{ + int btn = BUTTON_NONE; + int data; + static bool hold_button = false; + bool hold_button_old; + + /* normal buttons */ + hold_button_old = hold_button; + hold_button = button_hold(); + + if (hold_button != hold_button_old) + backlight_hold_changed(hold_button); + + if (!button_hold()) + { + data = adc_read(ADC_BUTTONS); + if (data < 0x35c) + { + if (data < 0x151) + if (data < 0xc7) + if (data < 0x41) + btn = BUTTON_LEFT; + else + btn = BUTTON_RIGHT; + else + btn = BUTTON_SELECT; + else + if (data < 0x268) + if (data < 0x1d7) + btn = BUTTON_UP; + else + btn = BUTTON_DOWN; + else + if (data < 0x2f9) + btn = BUTTON_EQ; + else + btn = BUTTON_MODE; + } + + if (adc_read(ADC_BUTTON_PLAY) < 0x64) + btn |= BUTTON_PLAY; + } + return btn; +} diff --git a/firmware/target/arm/iriver/ifp7xx/button-target.h b/firmware/target/arm/iriver/ifp7xx/button-target.h new file mode 100644 index 0000000000..954a2dfe9c --- /dev/null +++ b/firmware/target/arm/iriver/ifp7xx/button-target.h @@ -0,0 +1,56 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 by Barry Wardell + * + * 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. + * + ****************************************************************************/ + +/* Custom written for the ifp7xx */ + +#ifndef _BUTTON_TARGET_H_ +#define _BUTTON_TARGET_H_ + +#include +#include "config.h" + +#define HAS_BUTTON_HOLD + +bool button_hold(void); +void button_init_device(void); +int button_read_device(void); + +/* iriver IFP7XX specific button codes */ + +#define BUTTON_PLAY 0x00000001 +#define BUTTON_SELECT 0x00000002 + +#define BUTTON_LEFT 0x00000004 +#define BUTTON_RIGHT 0x00000008 +#define BUTTON_UP 0x00000010 +#define BUTTON_DOWN 0x00000020 + +#define BUTTON_MODE 0x00000040 +#define BUTTON_EQ 0x00000080 + +#define BUTTON_MAIN (BUTTON_PLAY|BUTTON_SELECT\ + |BUTTON_LEFT|BUTTON_RIGHT|BUTTON_UP|BUTTON_DOWN\ + |BUTTON_MODE|BUTTON_EQ) + +#define BUTTON_REMOTE 0 + +#define POWEROFF_BUTTON BUTTON_PLAY +#define POWEROFF_COUNT 40 + +#endif /* _BUTTON_TARGET_H_ */ diff --git a/firmware/target/arm/iriver/ifp7xx/power-ifp7xx.c b/firmware/target/arm/iriver/ifp7xx/power-ifp7xx.c new file mode 100644 index 0000000000..6c5114a84e --- /dev/null +++ b/firmware/target/arm/iriver/ifp7xx/power-ifp7xx.c @@ -0,0 +1,86 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * 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" +#include "cpu.h" +#include +#include "adc.h" +#include "kernel.h" +#include "system.h" +#include "power.h" +#include "hwcompat.h" +#include "logf.h" +#include "usb.h" + +#ifdef CONFIG_TUNER + +static bool powered = false; + +bool radio_powered(void) +{ + return powered; +} + +bool radio_power(bool status) +{ + bool old_status = powered; + powered = status; + + return old_status; +} + +#endif /* #ifdef CONFIG_TUNER */ + +#ifndef SIMULATOR + +void power_init(void) +{ +} + +void ide_power_enable(bool on) +{ + (void)on; + /* no ide controller */ +} + +bool ide_powered(void) +{ + return true; /* pretend always powered if not controlable */ +} + +void power_off(void) +{ + set_irq_level(HIGHEST_IRQ_LEVEL); + GPIO1_CLR = 1 << 16; + GPIO2_SET = 1; + while(1) + yield(); +} + +#else + +void power_off(void) +{ +} + +void ide_power_enable(bool on) +{ + (void)on; +} + +#endif /* SIMULATOR */ diff --git a/firmware/target/arm/iriver/ifp7xx/usb-ifp7xx.c b/firmware/target/arm/iriver/ifp7xx/usb-ifp7xx.c new file mode 100644 index 0000000000..1ab7534d4c --- /dev/null +++ b/firmware/target/arm/iriver/ifp7xx/usb-ifp7xx.c @@ -0,0 +1,51 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006 by Barry Wardell + * + * 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 "kernel.h" +#include "thread.h" +#include "system.h" +#include "debug.h" +#include "ata.h" +#include "fat.h" +#include "disk.h" +#include "panic.h" +#include "lcd.h" +#include "adc.h" +#include "usb.h" +#include "button.h" +#include "sprintf.h" +#include "string.h" +#include "hwcompat.h" + +void usb_init_device(void) +{ +} + +bool usb_detect(void) +{ + /* TODO: Implement USB_ISP1582 */ + return false; +} + +void usb_enable(bool on) +{ + /* TODO: Implement USB_ISP1582 */ + (void)on; +} diff --git a/firmware/target/arm/iriver/h10/usb-target.h b/firmware/target/arm/iriver/usb-target.h similarity index 100% rename from firmware/target/arm/iriver/h10/usb-target.h rename to firmware/target/arm/iriver/usb-target.h