mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-19 18:12:54 -05:00
Add the Sansa M200 (v1) as a target - it's extremely similar to the Logik DAX (the LCD driver worked unchanged). Plus various tcc77x work, including a working tick interrupt (enabled in the bootloader). Rockbox itself builds for the M200 (there are no keymaps yet for the DAX), but doesn't progress very far due to the lack of an ATA (NAND flash) driver.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17306 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
4cf4b5c2ae
commit
f2042983f0
31 changed files with 1879 additions and 37 deletions
|
|
@ -4,7 +4,7 @@
|
|||
#define TARGET_TREE /* this target is using the target tree system */
|
||||
|
||||
/* For Rolo and boot loader */
|
||||
#define MODEL_NUMBER 23
|
||||
#define MODEL_NUMBER 27
|
||||
|
||||
/* define this if you have recording possibility */
|
||||
//#define HAVE_RECORDING
|
||||
|
|
|
|||
116
firmware/export/config-m200.h
Normal file
116
firmware/export/config-m200.h
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
/*
|
||||
* This config file is for the Sansa M200 series
|
||||
*/
|
||||
#define TARGET_TREE /* this target is using the target tree system */
|
||||
|
||||
/* For Rolo and boot loader */
|
||||
#define MODEL_NUMBER 28
|
||||
|
||||
/* define this if you have recording possibility */
|
||||
//#define HAVE_RECORDING
|
||||
|
||||
/* Define bitmask of input sources - recordable bitmask can be defined
|
||||
explicitly if different */
|
||||
//#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN | SRC_CAP_SPDIF)
|
||||
|
||||
/* define this if you have a bitmap LCD display */
|
||||
#define HAVE_LCD_BITMAP
|
||||
|
||||
/* define this if you can flip your LCD */
|
||||
#define HAVE_LCD_FLIP
|
||||
|
||||
/* define this if you can invert the colours on your LCD */
|
||||
#define HAVE_LCD_INVERT
|
||||
|
||||
/* 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
|
||||
|
||||
/* define this if you have a flash memory storage */
|
||||
#define HAVE_FLASH_STORAGE
|
||||
|
||||
/* LCD dimensions */
|
||||
#define LCD_WIDTH 128
|
||||
#define LCD_HEIGHT 64
|
||||
#define LCD_DEPTH 1
|
||||
|
||||
#define LCD_PIXELFORMAT VERTICAL_PACKING
|
||||
|
||||
/* define this to indicate your device's keypad */
|
||||
#define CONFIG_KEYPAD SANSA_M200_PAD
|
||||
|
||||
/* define this if you have a real-time clock */
|
||||
#define CONFIG_RTC RTC_TCC77X
|
||||
|
||||
/* define this if you have RTC RAM available for settings */
|
||||
//#define HAVE_RTC_RAM
|
||||
|
||||
/* Define this if you have a software controlled poweroff */
|
||||
#define HAVE_SW_POWEROFF
|
||||
|
||||
/* The number of bytes reserved for loadable plugins */
|
||||
#define PLUGIN_BUFFER_SIZE 0x8000
|
||||
|
||||
#define AB_REPEAT_ENABLE 1
|
||||
|
||||
/* Define this if you do software codec */
|
||||
#define CONFIG_CODEC SWCODEC
|
||||
|
||||
/* Define this if you have the TLV320 audio codec */
|
||||
#define HAVE_TLV320
|
||||
|
||||
/* TLV320 has no tone controls, so we use the software ones */
|
||||
#define HAVE_SW_TONE_CONTROLS
|
||||
|
||||
/* Define this for LCD backlight available */
|
||||
#define HAVE_BACKLIGHT
|
||||
|
||||
#define CONFIG_I2C I2C_TCC77X
|
||||
|
||||
#define BATTERY_CAPACITY_DEFAULT 1500 /* default battery capacity */
|
||||
#define BATTERY_CAPACITY_MIN 1500 /* min. capacity selectable */
|
||||
#define BATTERY_CAPACITY_MAX 3200 /* max. capacity selectable */
|
||||
#define BATTERY_CAPACITY_INC 50 /* capacity increment */
|
||||
#define BATTERY_TYPES_COUNT 1 /* only one type */
|
||||
|
||||
/* define this if the unit should not shut down on low battery. */
|
||||
#define NO_LOW_BATTERY_SHUTDOWN
|
||||
|
||||
#ifndef SIMULATOR
|
||||
|
||||
/* Define this if you have a TCC773L */
|
||||
#define CONFIG_CPU TCC773L
|
||||
|
||||
/* Define this if you have ATA power-off control */
|
||||
#define HAVE_ATA_POWER_OFF
|
||||
|
||||
/* Define this to the CPU frequency */
|
||||
#define CPU_FREQ 120000000
|
||||
|
||||
/* Offset ( in the firmware file's header ) to the file length */
|
||||
#define FIRMWARE_OFFSET_FILE_LENGTH 0
|
||||
|
||||
/* Offset ( in the firmware file's header ) to the file CRC */
|
||||
#define FIRMWARE_OFFSET_FILE_CRC 4
|
||||
|
||||
/* Offset ( in the firmware file's header ) to the real data */
|
||||
#define FIRMWARE_OFFSET_FILE_DATA 6
|
||||
|
||||
/* The start address index for ROM builds */
|
||||
/* #define ROM_START 0x11010 for behind original Archos */
|
||||
#define ROM_START 0x7010 /* for behind BootBox */
|
||||
|
||||
/* Software controlled LED */
|
||||
#define CONFIG_LED LED_VIRTUAL
|
||||
|
||||
#define CONFIG_LCD LCD_SSD1815
|
||||
|
||||
#define BOOTFILE_EXT "m200"
|
||||
#define BOOTFILE "rockbox." BOOTFILE_EXT
|
||||
#define BOOTDIR "/"
|
||||
|
||||
#endif /* SIMULATOR */
|
||||
|
|
@ -80,6 +80,7 @@
|
|||
#define COWOND2_PAD 22
|
||||
#define IAUDIO_M3_PAD 23
|
||||
#define CREATIVEZVM_PAD 24
|
||||
#define SANSA_M200_PAD 25
|
||||
|
||||
/* CONFIG_REMOTE_KEYPAD */
|
||||
#define H100_REMOTE 1
|
||||
|
|
@ -236,6 +237,8 @@
|
|||
#include "config-e200.h"
|
||||
#elif defined(SANSA_C200)
|
||||
#include "config-c200.h"
|
||||
#elif defined(SANSA_M200)
|
||||
#include "config-m200.h"
|
||||
#elif defined(ELIO_TPJ1022)
|
||||
#include "config-tpj1022.h"
|
||||
#elif defined(MROBE_100)
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
|
||||
#define CLKCTRL (*(volatile unsigned long *)0x80000400)
|
||||
#define PLL0CFG (*(volatile unsigned long *)0x80000404)
|
||||
#define CLKDIV0 (*(volatile unsigned long *)0x8000040c)
|
||||
#define CLKDIVC (*(volatile unsigned long *)0x8000040c)
|
||||
#define MODECTR (*(volatile unsigned long *)0x80000410)
|
||||
#define BCLKCTR (*(volatile unsigned long *)0x80000414)
|
||||
#define SWRESET (*(volatile unsigned long *)0x80000418)
|
||||
|
|
@ -78,4 +78,65 @@
|
|||
#define CLKCFG (*(volatile unsigned long *)0xf0000020)
|
||||
#define SDCMD (*(volatile unsigned long *)0xf0000024)
|
||||
|
||||
|
||||
/* IRQ Controller */
|
||||
|
||||
#define TIMER0_IRQ_MASK (1<<6)
|
||||
|
||||
#define IEN (*(volatile unsigned long *)0x80000100)
|
||||
#define CREQ (*(volatile unsigned long *)0x80000104)
|
||||
#define IREQ (*(volatile unsigned long *)0x80000108)
|
||||
#define IRQSEL (*(volatile unsigned long *)0x8000010c)
|
||||
#define ICFG (*(volatile unsigned long *)0x80000110)
|
||||
#define MREQ (*(volatile unsigned long *)0x80000114)
|
||||
#define TSTREQ (*(volatile unsigned long *)0x80000118)
|
||||
#define IRQ (*(volatile unsigned long *)0x80000120)
|
||||
#define FIQ (*(volatile unsigned long *)0x80000124)
|
||||
#define MIRQ (*(volatile unsigned long *)0x80000128)
|
||||
#define MFIQ (*(volatile unsigned long *)0x8000012c)
|
||||
#define TMODE (*(volatile unsigned long *)0x80000130)
|
||||
#define SYNC (*(volatile unsigned long *)0x80000134)
|
||||
#define WKUP (*(volatile unsigned long *)0x80000138)
|
||||
|
||||
/* Timer Controller */
|
||||
|
||||
#define TCFG0 (*(volatile unsigned long *)0x80000200)
|
||||
#define TCNT0 (*(volatile unsigned long *)0x80000204)
|
||||
#define TREF0 (*(volatile unsigned long *)0x80000208)
|
||||
#define TMREF0 (*(volatile unsigned long *)0x8000020c)
|
||||
#define TCFG1 (*(volatile unsigned long *)0x80000210)
|
||||
#define TCNT1 (*(volatile unsigned long *)0x80000214)
|
||||
#define TREF1 (*(volatile unsigned long *)0x80000218)
|
||||
#define TMREF1 (*(volatile unsigned long *)0x8000021c)
|
||||
#define TCFG2 (*(volatile unsigned long *)0x80000220)
|
||||
#define TCNT2 (*(volatile unsigned long *)0x80000224)
|
||||
#define TREF2 (*(volatile unsigned long *)0x80000228)
|
||||
#define TMREF2 (*(volatile unsigned long *)0x8000022c)
|
||||
#define TCFG3 (*(volatile unsigned long *)0x80000230)
|
||||
#define TCNT3 (*(volatile unsigned long *)0x80000234)
|
||||
#define TREF3 (*(volatile unsigned long *)0x80000238)
|
||||
#define TMREF3 (*(volatile unsigned long *)0x8000023c)
|
||||
#define TCFG4 (*(volatile unsigned long *)0x80000240)
|
||||
#define TCNT4 (*(volatile unsigned long *)0x80000244)
|
||||
#define TREF4 (*(volatile unsigned long *)0x80000248)
|
||||
#define TCFG5 (*(volatile unsigned long *)0x80000250)
|
||||
#define TCNT5 (*(volatile unsigned long *)0x80000254)
|
||||
#define TREF5 (*(volatile unsigned long *)0x80000258)
|
||||
#define TIREQ (*(volatile unsigned long *)0x80000260)
|
||||
#define TWDCFG (*(volatile unsigned long *)0x80000270)
|
||||
#define TWDCLR (*(volatile unsigned long *)0x80000274)
|
||||
#define TC32EN (*(volatile unsigned long *)0x80000280)
|
||||
#define TC32LDV (*(volatile unsigned long *)0x80000284)
|
||||
#define TC32CMP0 (*(volatile unsigned long *)0x80000288)
|
||||
#define TC32CMP1 (*(volatile unsigned long *)0x8000028c)
|
||||
#define TC32PCNT (*(volatile unsigned long *)0x80000290)
|
||||
#define TC32MCNT (*(volatile unsigned long *)0x80000294)
|
||||
#define TC32IRQ (*(volatile unsigned long *)0x80000298)
|
||||
|
||||
/* TIREQ flags */
|
||||
#define TF0 (1<<8) /* Timer 0 reference value reached */
|
||||
#define TF1 (1<<9) /* Timer 1 reference value reached */
|
||||
#define TI0 (1<<0) /* Timer 0 IRQ flag */
|
||||
#define TI1 (1<<1) /* Timer 1 IRQ flag */
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -31,7 +31,8 @@
|
|||
#define TIMER_FREQ (CPU_FREQ/2)
|
||||
#elif CONFIG_CPU == PNX0101
|
||||
#define TIMER_FREQ 3000000
|
||||
#elif CONFIG_CPU == S3C2440 || CONFIG_CPU == DM320 || CONFIG_CPU == TCC7801
|
||||
#elif CONFIG_CPU == S3C2440 || CONFIG_CPU == DM320 || CONFIG_CPU == TCC7801 \
|
||||
|| defined(CPU_TCC77X)
|
||||
#include "timer-target.h"
|
||||
#elif defined(SIMULATOR)
|
||||
#define TIMER_FREQ 1000000
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue