From 2392bb41996963c6683253114bdfb3174146e7dc Mon Sep 17 00:00:00 2001 From: Rafaël Carré Date: Thu, 31 Dec 2009 19:15:20 +0000 Subject: FS#10047 : Clipv2 Reuse some code from Clip (LCD) and a lot of code from AS3525 Add a new CPU type : AS3525v2, identical to AS3525 except it's an ARMv5 (arm926-ejs) SD code still not working For an unknown reason LCD doesn't work anymore (to be investigated) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24131 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/as3525v2.h | 29 +++++ firmware/export/config.h | 15 +-- firmware/export/config/sansaclipv2.h | 215 +++++++++++++++++++++++++++++++++++ firmware/export/cpu.h | 4 +- 4 files changed, 255 insertions(+), 8 deletions(-) create mode 100644 firmware/export/as3525v2.h create mode 100644 firmware/export/config/sansaclipv2.h (limited to 'firmware/export') diff --git a/firmware/export/as3525v2.h b/firmware/export/as3525v2.h new file mode 100644 index 0000000000..2a2f67cbc5 --- /dev/null +++ b/firmware/export/as3525v2.h @@ -0,0 +1,29 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright © 2009 Rafaël Carré + * + * 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 __AS3525V2_H__ +#define __AS3525V2_H__ + +#include "as3525.h" + +/* insert differences here */ + +#endif /* __AS3525V2_H__ */ diff --git a/firmware/export/config.h b/firmware/export/config.h index 01933dadf2..2b7c6d8663 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -71,6 +71,7 @@ #define JZ4732 4732 #define AS3525 3525 #define AT91SAM9260 9260 +#define AS3525v2 35252 /* CONFIG_KEYPAD */ #define PLAYER_PAD 1 @@ -377,6 +378,8 @@ Lyre prototype 1 */ #include "config/ondavx767.h" #elif defined(SANSA_CLIP) #include "config/sansaclip.h" +#elif defined(SANSA_CLIPV2) +#include "config/sansaclipv2.h" #elif defined(SANSA_E200V2) #include "config/sansae200v2.h" #elif defined(SANSA_M200V4) @@ -456,15 +459,13 @@ Lyre prototype 1 */ #if (CONFIG_CPU == IMX31L) #define CPU_ARM #define ARM_ARCH 6 /* ARMv6 */ -#endif -#if defined(CPU_TCC77X) || defined(CPU_TCC780X) || (CONFIG_CPU == DM320) \ - || (CONFIG_CPU == AT91SAM9260) +#elif defined(CPU_TCC77X) || defined(CPU_TCC780X) || (CONFIG_CPU == DM320) \ + || (CONFIG_CPU == AT91SAM9260) || (CONFIG_CPU == AS3525v2) #define CPU_ARM #define ARM_ARCH 5 /* ARMv5 */ -#endif -#if defined(CPU_PP) || (CONFIG_CPU == PNX0101) || (CONFIG_CPU == S3C2440) \ +#elif defined(CPU_PP) || (CONFIG_CPU == PNX0101) || (CONFIG_CPU == S3C2440) \ || (CONFIG_CPU == DSC25) || defined(CPU_S5L870X) || (CONFIG_CPU == AS3525) #define CPU_ARM #define ARM_ARCH 4 /* ARMv4 */ @@ -675,8 +676,8 @@ Lyre prototype 1 */ #endif /* BOOTLOADER */ #if defined(HAVE_USBSTACK) || (CONFIG_CPU == JZ4732) \ - || (CONFIG_CPU == AS3525) || (CONFIG_CPU == S3C2440) \ - || defined(CPU_S5L870X) + || (CONFIG_CPU == AS3525) || (CONFIG_CPU == AS3525v2) \ + || defined(CPU_S5L870X) || (CONFIG_CPU == S3C2440) #define HAVE_WAKEUP_OBJECTS #endif diff --git a/firmware/export/config/sansaclipv2.h b/firmware/export/config/sansaclipv2.h new file mode 100644 index 0000000000..513b093f2f --- /dev/null +++ b/firmware/export/config/sansaclipv2.h @@ -0,0 +1,215 @@ +/* + * This config file is for the Sandisk Sansa Clip v2 + */ +#define TARGET_TREE /* this target is using the target tree system */ + +/* For Rolo and boot loader */ +#define MODEL_NUMBER 66 +#define MODEL_NAME "Sandisk Sansa Clipv2" +#define FIRMWARE_OFFSET_FILE_DATA 8 +#define FIRMWARE_OFFSET_FILE_CRC 0 + +#if 0 /* disabled since there is no driver (yet) */ + +#define HW_SAMPR_CAPS (SAMPR_CAP_44) + +/* define this if you have recording possibility */ +#define HAVE_RECORDING + +#define REC_SAMPR_CAPS (SAMPR_CAP_22) +#define REC_FREQ_DEFAULT REC_FREQ_22 /* Default is not 44.1kHz */ +#define REC_SAMPR_DEFAULT SAMPR_22 + +#endif + +/* Define bitmask of input sources - recordable bitmask can be defined + explicitly if different */ +#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_FMRADIO) + +/* define this if you have a bitmap LCD display */ +#define HAVE_LCD_BITMAP + +/* define this if you have a light associated with the buttons */ +#define HAVE_BUTTON_LIGHT + +/* define this if you have access to the quickscreen */ +#define HAVE_QUICKSCREEN + +/* define this if you have access to the pitchscreen */ +#define HAVE_PITCHSCREEN + +/* define this if you would like tagcache to build on this target */ +#define HAVE_TAGCACHE + +/* LCD dimensions */ +#define LCD_WIDTH 128 +#define LCD_HEIGHT 64 +#define LCD_DEPTH 1 + +#define LCD_PIXELFORMAT VERTICAL_PACKING +#define HAVE_NEGATIVE_LCD /* bright on dark */ +#define HAVE_LCD_SPLIT /* split display */ + +/* Display colours, for screenshots and sim (0xRRGGBB) */ +#define LCD_DARKCOLOR 0x000000 +#define LCD_BRIGHTCOLOR 0x000000 +#define LCD_BL_DARKCOLOR 0x000000 +#define LCD_BL_BRIGHTCOLOR 0x0de2e5 + +#define LCD_DARKCOLOR_2 0x000000 +#define LCD_BRIGHTCOLOR_2 0x000000 +#define LCD_BL_DARKCOLOR_2 0x000000 +#define LCD_BL_BRIGHTCOLOR_2 0xffe60f + +#define LCD_SPLIT_POS 16 +#define LCD_SPLIT_LINES 2 + +/* define this if you have LCD enable function */ +#define HAVE_LCD_ENABLE + +#ifndef BOOTLOADER +/* Define this if your LCD can be put to sleep. + * HAVE_LCD_ENABLE should be defined as well. */ +//#define HAVE_LCD_SLEEP +//#define HAVE_LCD_SLEEP_SETTING +#endif + +/* define this if you can flip your LCD */ +#define HAVE_LCD_FLIP + +/* define this if you can invert the pixels */ +#define HAVE_LCD_INVERT + +/* Define this if your LCD can set contrast */ +#define HAVE_LCD_CONTRAST + +#define MIN_CONTRAST_SETTING 0 +#define MAX_CONTRAST_SETTING 50 +#define DEFAULT_CONTRAST_SETTING 30 + +#define IRAM_LCDFRAMEBUFFER IDATA_ATTR /* put the lcd frame buffer in IRAM */ + +#define CONFIG_KEYPAD SANSA_CLIP_PAD + +/* define this if the target has volume keys which can be used in the lists */ +#define HAVE_VOLUME_IN_LIST + +/* Define this if you do software codec */ +#define CONFIG_CODEC SWCODEC +/* There is no hardware tone control */ +#define HAVE_SW_TONE_CONTROLS + +/* We're working on the assumption that the AS3525 has something + similar to the AS3514 for audio codec etc */ +#define HAVE_AS3514 + +/* define this if you have a real-time clock */ +#ifndef BOOTLOADER +#define CONFIG_RTC RTC_AS3514 +#endif + +/* Define this if you have a software controlled poweroff */ +#define HAVE_SW_POWEROFF + +#define HAVE_FAT16SUPPORT + +/* The number of bytes reserved for loadable codecs */ +#define CODEC_SIZE 0x100000 + +/* The number of bytes reserved for loadable plugins */ +#define PLUGIN_BUFFER_SIZE 0x80000 + +#define AB_REPEAT_ENABLE 1 + +/* FM Tuner */ +#define CONFIG_TUNER SI4700 /* in fact SI4702 */ +//#define HAVE_TUNER_PWR_CTRL + +/* Define this for LCD backlight available */ +#define HAVE_BACKLIGHT + +/* define this if you have a flash memory storage */ +#define HAVE_FLASH_STORAGE + +/* define this if the flash memory uses the SecureDigital Memory Card protocol */ +#define CONFIG_STORAGE STORAGE_SD + +#define BATTERY_CAPACITY_DEFAULT 380 /* default battery capacity */ +#define BATTERY_CAPACITY_MIN 380 /* min. capacity selectable */ +#define BATTERY_CAPACITY_MAX 380 /* max. capacity selectable */ +#define BATTERY_CAPACITY_INC 0 /* capacity increment */ +#define BATTERY_TYPES_COUNT 1 /* only one type */ + +/* Charging implemented in a target-specific algorithm */ +#define CONFIG_CHARGING CHARGING_TARGET + +/* define this if the unit can be powered or charged via USB */ +#define HAVE_USB_POWER + +/** Non-simulator section **/ +#ifndef SIMULATOR + +/* Define this if you have a AMS AS3525v2 SoC */ +#define CONFIG_CPU AS3525v2 + +/* Define this if you want to use the AS3525 i2c interface */ +#define CONFIG_I2C I2C_AS3525 /* FIXME : looks similar to AS353x interface */ + +/* define this if the hardware can be powered off while charging */ +/* Sansa can't be powered off while charging */ +/* #define HAVE_POWEROFF_WHILE_CHARGING */ + +/* The start address index for ROM builds */ +#define ROM_START 0x00000000 + +/* Define this to the CPU frequency */ +#define CPU_FREQ 250000000 + +/* Type of LCD */ +#define CONFIG_LCD LCD_SSD1303 + +#ifndef BOOTLOADER + +#define USB_HANDLED_BY_OF + +#if 0 /* disabled since there is no USB driver */ + +/* USB On-the-go */ +#define CONFIG_USBOTG USBOTG_ARC + +/* enable these for the experimental usb stack */ +#define HAVE_USBSTACK +#define USB_VENDOR_ID 0x0781 +#define USB_PRODUCT_ID 0x7433 +#endif /* BOOTLOADER */ + +#endif + + +/* Virtual LED (icon) */ +#define CONFIG_LED LED_VIRTUAL + +/* Define this if you have adjustable CPU frequency */ +#define HAVE_ADJUSTABLE_CPU_FREQ + +#define BOOTFILE_EXT "sansa" +#define BOOTFILE "rockbox." BOOTFILE_EXT +#define BOOTDIR "/.rockbox" + +#define ICODE_ATTR_TREMOR_NOT_MDCT + +#define INCLUDE_TIMEOUT_API + +#endif /* SIMULATOR */ + +/** Port-specific settings **/ + +/* Main LCD backlight brightness range and defaults */ +#define MIN_BRIGHTNESS_SETTING 1 +#define MAX_BRIGHTNESS_SETTING 12 +#define DEFAULT_BRIGHTNESS_SETTING 6 + +/* Default recording levels */ +#define DEFAULT_REC_MIC_GAIN 23 +#define DEFAULT_REC_LEFT_GAIN 23 +#define DEFAULT_REC_RIGHT_GAIN 23 diff --git a/firmware/export/cpu.h b/firmware/export/cpu.h index 47de38c378..381830ab52 100644 --- a/firmware/export/cpu.h +++ b/firmware/export/cpu.h @@ -68,4 +68,6 @@ #if CONFIG_CPU == AS3525 #include "as3525.h" #endif - +#if CONFIG_CPU == AS3525v2 +#include "as3525v2.h" +#endif -- cgit v1.2.3