summaryrefslogtreecommitdiff
path: root/firmware/export
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export')
-rw-r--r--firmware/export/config.h15
-rw-r--r--firmware/export/config/sansafuzeplus.h183
-rw-r--r--firmware/export/cpu.h3
-rw-r--r--firmware/export/imx233.h52
4 files changed, 250 insertions, 3 deletions
diff --git a/firmware/export/config.h b/firmware/export/config.h
index c8531b8f65..003f68335a 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -74,6 +74,7 @@
74#define AS3525 3525 74#define AS3525 3525
75#define AT91SAM9260 9260 75#define AT91SAM9260 9260
76#define AS3525v2 35252 76#define AS3525v2 35252
77#define IMX233 233
77 78
78/* platforms 79/* platforms
79 * bit fields to allow PLATFORM_HOSTED to be OR'ed e.g. with a 80 * bit fields to allow PLATFORM_HOSTED to be OR'ed e.g. with a
@@ -136,6 +137,7 @@
136#define ANDROID_PAD 45 137#define ANDROID_PAD 45
137#define SDL_PAD 46 138#define SDL_PAD 46
138#define MPIO_HD300_PAD 47 139#define MPIO_HD300_PAD 47
140#define SANSA_FUZEPLUS_PAD 48
139 141
140/* CONFIG_REMOTE_KEYPAD */ 142/* CONFIG_REMOTE_KEYPAD */
141#define H100_REMOTE 1 143#define H100_REMOTE 1
@@ -219,6 +221,7 @@
219#define LCD_HDD6330 38 /* as used by the Philips HDD6330 */ 221#define LCD_HDD6330 38 /* as used by the Philips HDD6330 */
220#define LCD_VIBE500 39 /* as used by the Packard Bell Vibe 500 */ 222#define LCD_VIBE500 39 /* as used by the Packard Bell Vibe 500 */
221#define LCD_IPOD6G 40 /* as used by the iPod Nano 2nd Generation */ 223#define LCD_IPOD6G 40 /* as used by the iPod Nano 2nd Generation */
224#define LCD_FUZEPLUS 41
222 225
223/* LCD_PIXELFORMAT */ 226/* LCD_PIXELFORMAT */
224#define HORIZONTAL_PACKING 1 227#define HORIZONTAL_PACKING 1
@@ -256,6 +259,7 @@ Lyre prototype 1 */
256#define I2C_JZ47XX 14 /* Ingenic Jz47XX style */ 259#define I2C_JZ47XX 14 /* Ingenic Jz47XX style */
257#define I2C_AS3525 15 260#define I2C_AS3525 15
258#define I2C_S5L8702 16 /* Same as S5L8700, but with two channels */ 261#define I2C_S5L8702 16 /* Same as S5L8700, but with two channels */
262#define I2C_IMX233 17
259 263
260/* CONFIG_LED */ 264/* CONFIG_LED */
261#define LED_REAL 1 /* SW controlled LED (Archos recorders, player) */ 265#define LED_REAL 1 /* SW controlled LED (Archos recorders, player) */
@@ -287,14 +291,15 @@ Lyre prototype 1 */
287#define RTC_JZ47XX 16 /* Ingenic Jz47XX */ 291#define RTC_JZ47XX 16 /* Ingenic Jz47XX */
288#define RTC_NANO2G 17 /* This seems to be a PCF5063x */ 292#define RTC_NANO2G 17 /* This seems to be a PCF5063x */
289#define RTC_D2 18 /* Either PCF50606 or PCF50635 */ 293#define RTC_D2 18 /* Either PCF50606 or PCF50635 */
290#define RTC_S35380A 19 294#define RTC_S35380A 19
295#define RTC_IMX233 20
291 296
292/* USB On-the-go */ 297/* USB On-the-go */
293#define USBOTG_M66591 6591 /* M:Robe 500 */ 298#define USBOTG_M66591 6591 /* M:Robe 500 */
294#define USBOTG_ISP1362 1362 /* iriver H300 */ 299#define USBOTG_ISP1362 1362 /* iriver H300 */
295#define USBOTG_ISP1583 1583 /* Creative Zen Vision:M */ 300#define USBOTG_ISP1583 1583 /* Creative Zen Vision:M */
296#define USBOTG_M5636 5636 /* iAudio X5 */ 301#define USBOTG_M5636 5636 /* iAudio X5 */
297#define USBOTG_ARC 5020 /* PortalPlayer 502x */ 302#define USBOTG_ARC 5020 /* PortalPlayer 502x and IMX233 */
298#define USBOTG_JZ4740 4740 /* Ingenic Jz4740/Jz4732 */ 303#define USBOTG_JZ4740 4740 /* Ingenic Jz4740/Jz4732 */
299#define USBOTG_AS3525 3525 /* AMS AS3525 */ 304#define USBOTG_AS3525 3525 /* AMS AS3525 */
300#define USBOTG_AS3525v2 3535 /* AMS AS3525v2 FIXME : same as S3C6400X */ 305#define USBOTG_AS3525v2 3535 /* AMS AS3525v2 FIXME : same as S3C6400X */
@@ -419,6 +424,8 @@ Lyre prototype 1 */
419#include "config/sansafuze.h" 424#include "config/sansafuze.h"
420#elif defined(SANSA_FUZEV2) 425#elif defined(SANSA_FUZEV2)
421#include "config/sansafuzev2.h" 426#include "config/sansafuzev2.h"
427#elif defined(SANSA_FUZEPLUS)
428#include "config/sansafuzeplus.h"
422#elif defined(SANSA_C200V2) 429#elif defined(SANSA_C200V2)
423#include "config/sansac200v2.h" 430#include "config/sansac200v2.h"
424#elif defined(SANSA_VIEW) 431#elif defined(SANSA_VIEW)
@@ -526,7 +533,8 @@ Lyre prototype 1 */
526 533
527#elif defined(CPU_TCC77X) || defined(CPU_TCC780X) || (CONFIG_CPU == DM320) \ 534#elif defined(CPU_TCC77X) || defined(CPU_TCC780X) || (CONFIG_CPU == DM320) \
528 || (CONFIG_CPU == AT91SAM9260) || (CONFIG_CPU == AS3525v2) \ 535 || (CONFIG_CPU == AT91SAM9260) || (CONFIG_CPU == AS3525v2) \
529 || (CONFIG_CPU == S5L8702) || (CONFIG_PLATFORM & PLATFORM_ANDROID) 536 || (CONFIG_CPU == S5L8702) || (CONFIG_PLATFORM & PLATFORM_ANDROID) \
537 || (CONFIG_CPU == IMX233)
530#define CPU_ARM 538#define CPU_ARM
531#define ARM_ARCH 5 /* ARMv5 */ 539#define ARM_ARCH 5 /* ARMv5 */
532 540
@@ -824,6 +832,7 @@ Lyre prototype 1 */
824 (CONFIG_CPU == AS3525v2 && !defined(PLUGIN) && !defined(CODEC) && !defined(BOOTLOADER)) || /* AS3525v2: core only */ \ 832 (CONFIG_CPU == AS3525v2 && !defined(PLUGIN) && !defined(CODEC) && !defined(BOOTLOADER)) || /* AS3525v2: core only */ \
825 (CONFIG_CPU == PNX0101) || \ 833 (CONFIG_CPU == PNX0101) || \
826 (CONFIG_CPU == TCC7801) || \ 834 (CONFIG_CPU == TCC7801) || \
835 (CONFIG_CPU == IMX233) || \
827 defined(CPU_S5L870X)) || /* Samsung S5L8700: core, plugins, codecs */ \ 836 defined(CPU_S5L870X)) || /* Samsung S5L8700: core, plugins, codecs */ \
828 (CONFIG_CPU == JZ4732 && !defined(PLUGIN) && !defined(CODEC)) /* Jz4740: core only */ 837 (CONFIG_CPU == JZ4732 && !defined(PLUGIN) && !defined(CODEC)) /* Jz4740: core only */
829#define ICODE_ATTR __attribute__ ((section(".icode"))) 838#define ICODE_ATTR __attribute__ ((section(".icode")))
diff --git a/firmware/export/config/sansafuzeplus.h b/firmware/export/config/sansafuzeplus.h
new file mode 100644
index 0000000000..d39dc79ac1
--- /dev/null
+++ b/firmware/export/config/sansafuzeplus.h
@@ -0,0 +1,183 @@
1/*
2 * This config file is for the Sandisk Sansa Fuze+
3 */
4#define TARGET_TREE /* this target is using the target tree system */
5
6/* For Rolo and boot loader */
7#define MODEL_NUMBER 72
8#define MODEL_NAME "Sandisk Sansa Fuze+"
9
10#define HW_SAMPR_CAPS SAMPR_CAP_ALL
11
12/* define this if you have recording possibility */
13#define HAVE_RECORDING
14
15#define REC_SAMPR_CAPS SAMPR_CAP_ALL
16
17/* Default recording levels */
18#define DEFAULT_REC_MIC_GAIN 23
19#define DEFAULT_REC_LEFT_GAIN 23
20#define DEFAULT_REC_RIGHT_GAIN 23
21
22/* Define bitmask of input sources - recordable bitmask can be defined
23 explicitly if different */
24#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_FMRADIO)
25
26/* define this if you have a bitmap LCD display */
27#define HAVE_LCD_BITMAP
28/* define this if you have a colour LCD */
29#define HAVE_LCD_COLOR
30
31#ifndef BOOTLOADER/* define this if you want album art for this target */
32#define HAVE_ALBUMART
33
34/* define this to enable bitmap scaling */
35#define HAVE_BMP_SCALING
36
37/* define this to enable JPEG decoding */
38#define HAVE_JPEG
39
40/* define this if you have a light associated with the buttons */
41#define HAVE_BUTTON_LIGHT
42
43/* define this if you have access to the quickscreen */
44#define HAVE_QUICKSCREEN
45
46/* define this if you have access to the pitchscreen */
47#define HAVE_PITCHSCREEN
48
49/* define this if you would like tagcache to build on this target */
50#define HAVE_TAGCACHE
51
52/* define this if you have LCD enable function */
53#define HAVE_LCD_ENABLE
54
55/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE
56 should be defined as well.
57#define HAVE_LCD_SLEEP
58#define HAVE_LCD_SLEEP_SETTING
59*/
60
61/* define this if you can flip your LCD
62#define HAVE_LCD_FLIP
63*/
64
65/* define this if you can invert the colours on your LCD
66#define HAVE_LCD_INVERT
67*/
68
69/* define this if you have a real-time clock */
70#define CONFIG_RTC RTC_IMX233
71
72/* There is no hardware tone control */
73#define HAVE_SW_TONE_CONTROLS
74
75#endif /* !BOOTLOADER */
76
77#define CONFIG_KEYPAD SANSA_FUZEPLUS_PAD
78
79/* Define this to enable morse code input */
80#define HAVE_MORSE_INPUT
81
82/* Define this if you do software codec */
83#define CONFIG_CODEC SWCODEC
84
85
86/* LCD dimensions */
87#define LCD_WIDTH 240
88#define LCD_HEIGHT 320
89#define LCD_DEPTH 16 /* 65536 colours */
90#define LCD_PIXELFORMAT RGB565 /* rgb565 */
91
92/* Define this if you have a software controlled poweroff */
93#define HAVE_SW_POWEROFF
94
95/* The number of bytes reserved for loadable codecs */
96#define CODEC_SIZE 0
97
98/* The number of bytes reserved for loadable plugins */
99#define PLUGIN_BUFFER_SIZE 0
100
101#define AB_REPEAT_ENABLE
102
103/* Define this for LCD backlight available */
104#define HAVE_BACKLIGHT
105#define HAVE_BACKLIGHT_BRIGHTNESS
106
107/* Main LCD backlight brightness range and defaults */
108#define MIN_BRIGHTNESS_SETTING 1
109#define MAX_BRIGHTNESS_SETTING 100 /* unsure */
110#define DEFAULT_BRIGHTNESS_SETTING 60 /* fixme */
111
112/* Which backlight fading type? */
113#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING
114
115/* define this if you have a flash memory storage */
116#define HAVE_FLASH_STORAGE
117
118/* define this if the flash memory uses the SecureDigital Memory Card protocol */
119#define CONFIG_STORAGE STORAGE_SD
120
121/* todo */
122#define BATTERY_CAPACITY_DEFAULT 550 /* default battery capacity */
123#define BATTERY_CAPACITY_MIN 550 /* min. capacity selectable */
124#define BATTERY_CAPACITY_MAX 550 /* max. capacity selectable */
125#define BATTERY_CAPACITY_INC 0 /* capacity increment */
126#define BATTERY_TYPES_COUNT 1 /* only one type */
127
128/* Charging implemented in a target-specific algorithm */
129#define CONFIG_CHARGING CHARGING_TARGET
130
131/* define this if the unit can be powered or charged via USB */
132#define HAVE_USB_POWER
133
134/* Define this if you have an IMX233*/
135#define CONFIG_CPU IMX233
136
137/* Define this if you want to use the IMX233 i2c interface */
138#define CONFIG_I2C I2C_IMX233
139
140/* define current usage levels (based on battery bench) */
141#define CURRENT_NORMAL 35
142#define CURRENT_BACKLIGHT 30
143#define CURRENT_RECORD CURRENT_NORMAL
144
145/* maximum charging current */
146#define CURRENT_MAX_CHG 200
147
148/* Define this to the CPU frequency */
149#define CPU_FREQ 454000000
150
151/* Type of LCD */
152#define CONFIG_LCD LCD_FUZEPLUS
153
154/* Offset ( in the firmware file's header ) to the file CRC and data. These are
155 only used when loading the old format rockbox.e200 file */
156#define FIRMWARE_OFFSET_FILE_CRC 0x0
157#define FIRMWARE_OFFSET_FILE_DATA 0x8
158
159#ifndef BOOTLOADER
160#define HAVE_MULTIDRIVE
161#define NUM_DRIVES 2
162#define HAVE_HOTSWAP
163#endif
164
165/* USB On-the-go */
166#define CONFIG_USBOTG USBOTG_ARC
167
168/* enable these for the experimental usb stack */
169#define HAVE_USBSTACK
170//#define USB_HANDLED_BY_OF
171#define USE_ROCKBOX_USB
172#define USB_VENDOR_ID 0x0781
173#define USB_PRODUCT_ID 0x74e1
174#define HAVE_USB_HID_MOUSE
175
176/* Define this if you have adjustable CPU frequency */
177#define HAVE_ADJUSTABLE_CPU_FREQ
178
179#define BOOTFILE_EXT "sansa"
180#define BOOTFILE "rockbox." BOOTFILE_EXT
181#define BOOTDIR "/.rockbox"
182
183#define INCLUDE_TIMEOUT_API
diff --git a/firmware/export/cpu.h b/firmware/export/cpu.h
index 59d210380b..777e36f62d 100644
--- a/firmware/export/cpu.h
+++ b/firmware/export/cpu.h
@@ -74,3 +74,6 @@
74#if CONFIG_CPU == AS3525v2 74#if CONFIG_CPU == AS3525v2
75#include "as3525v2.h" 75#include "as3525v2.h"
76#endif 76#endif
77#if CONFIG_CPU == IMX233
78#include "imx233.h"
79#endif
diff --git a/firmware/export/imx233.h b/firmware/export/imx233.h
new file mode 100644
index 0000000000..182442c2ab
--- /dev/null
+++ b/firmware/export/imx233.h
@@ -0,0 +1,52 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2011 by Amaury Pouly
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21#ifndef __IMX233_H__
22#define __IMX233_H__
23
24#define IRAM_ORIG 0
25#define IRAM_SIZE 0x8000
26#define DRAM_ORIG 0x40000000
27#define DRAM_SIZE 0x20000000
28
29#define TTB_BASE_ADDR (DRAM_ORIG + (MEMORYSIZE*0x100000) - TTB_SIZE)
30#define TTB_SIZE (0x4000)
31#define TTB_BASE ((unsigned long *)TTB_BASE_ADDR)
32#define FRAME_SIZE (240*320*2)
33
34/* USBOTG */
35#define USB_QHARRAY_ATTR __attribute__((section(".qharray"),nocommon,aligned(2048)))
36#define USB_NUM_ENDPOINTS 5
37#define USB_DEVBSS_ATTR NOCACHEBSS_ATTR
38#define USB_BASE 0x80080000
39/*
40#define QHARRAY_SIZE ((64*USB_NUM_ENDPOINTS*2 + 2047) & (0xffffffff - 2047))
41#define QHARRAY_PHYS_ADDR ((FRAME_PHYS_ADDR - QHARRAY_SIZE) & (0xffffffff - 2047))
42*/
43
44#define __REG_SET(reg) (*((volatile uint32_t *)(&reg + 1)))
45#define __REG_CLR(reg) (*((volatile uint32_t *)(&reg + 2)))
46#define __REG_TOG(reg) (*((volatile uint32_t *)(&reg + 3)))
47
48#define __BLOCK_SFTRST (1 << 31)
49#define __BLOCK_CLKGATE (1 << 30)
50
51
52#endif /* __IMX233_H__ */