diff options
author | Marc Guay <marcguay@rockbox.org> | 2008-06-21 15:18:36 +0000 |
---|---|---|
committer | Marc Guay <marcguay@rockbox.org> | 2008-06-21 15:18:36 +0000 |
commit | b93667b30699a18daf3699cc969ad858077e406f (patch) | |
tree | b3a1932ff6227f0434e86efded2205a16864898b /firmware/target/arm/tcc77x/system-tcc77x.c | |
parent | fdd5c3f1a3c18806329a88b8f243c8775f2a8571 (diff) | |
download | rockbox-b93667b30699a18daf3699cc969ad858077e406f.tar.gz rockbox-b93667b30699a18daf3699cc969ad858077e406f.zip |
Add the Sansa c100 as a build target with basic drivers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17742 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/tcc77x/system-tcc77x.c')
-rw-r--r-- | firmware/target/arm/tcc77x/system-tcc77x.c | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/firmware/target/arm/tcc77x/system-tcc77x.c b/firmware/target/arm/tcc77x/system-tcc77x.c index 2628d9f0ed..b338281c48 100644 --- a/firmware/target/arm/tcc77x/system-tcc77x.c +++ b/firmware/target/arm/tcc77x/system-tcc77x.c | |||
@@ -61,15 +61,19 @@ static void gpio_init(void) | |||
61 | GPIOD_FUNC = 0; | 61 | GPIOD_FUNC = 0; |
62 | GPIOD_DIR = 0x3f0; | 62 | GPIOD_DIR = 0x3f0; |
63 | GPIOD = 0xe0; | 63 | GPIOD = 0xe0; |
64 | |||
64 | GPIOE_FUNC = 0; | 65 | GPIOE_FUNC = 0; |
65 | GPIOE_DIR = 0xe0; | 66 | GPIOE_DIR = 0xe0; |
66 | GPIOE = 0; | 67 | GPIOE = 0; |
68 | |||
67 | GPIOA_FUNC = 0; | 69 | GPIOA_FUNC = 0; |
68 | GPIOA_DIR = 0xffff1000; /* 0 - 0xf000 */ | 70 | GPIOA_DIR = 0xffff1000; /* 0 - 0xf000 */ |
69 | GPIOA = 0x1080; | 71 | GPIOA = 0x1080; |
72 | |||
70 | GPIOB_FUNC = 0x16a3; | 73 | GPIOB_FUNC = 0x16a3; |
71 | GPIOB_DIR = 0x6ffff; | 74 | GPIOB_DIR = 0x6ffff; |
72 | GPIOB = 0; | 75 | GPIOB = 0; |
76 | |||
73 | GPIOC_FUNC = 1; | 77 | GPIOC_FUNC = 1; |
74 | GPIOC_DIR = 0x03ffffff; /* mvn r2, 0xfc000000 */ | 78 | GPIOC_DIR = 0x03ffffff; /* mvn r2, 0xfc000000 */ |
75 | GPIOC = 0; | 79 | GPIOC = 0; |
@@ -99,6 +103,28 @@ static void gpio_init(void) | |||
99 | { | 103 | { |
100 | /* TODO - Implement for M200 */ | 104 | /* TODO - Implement for M200 */ |
101 | } | 105 | } |
106 | #elif defined(SANSA_C100) | ||
107 | static void gpio_init(void) | ||
108 | { | ||
109 | /* Do what the original firmware does */ | ||
110 | GPIOA_FUNC = 0; | ||
111 | GPIOB_FUNC = 0x16A3; | ||
112 | GPIOC_FUNC = 1; | ||
113 | GPIOD_FUNC |= 2; | ||
114 | GPIOE_FUNC = 0; | ||
115 | |||
116 | GPIOA_DIR = 0xFFFF0E00; | ||
117 | GPIOB_DIR = 0x6FFFF; | ||
118 | GPIOC_DIR = 0x03FFFFFF; | ||
119 | GPIOD_DIR = 0x3F7; | ||
120 | GPIOE_DIR = 0x9B; | ||
121 | |||
122 | GPIOA = 0x80; | ||
123 | GPIOB = 0; | ||
124 | GPIOC = 0; | ||
125 | GPIOD |= 0xC0; | ||
126 | GPIOE = 0x9B; | ||
127 | } | ||
102 | #endif | 128 | #endif |
103 | 129 | ||
104 | /* Second function called in the original firmware's startup code - we just | 130 | /* Second function called in the original firmware's startup code - we just |
@@ -158,7 +184,7 @@ http://infocenter.arm.com/help/topic/com.arm.doc.ddi0201d/DDI0201D_arm946es_r1p1 | |||
158 | "mcr p15, 0, r0, c6, c0, 0 \n\t" | 184 | "mcr p15, 0, r0, c6, c0, 0 \n\t" |
159 | "mcr p15, 0, r0, c6, c0, 1 \n\t" | 185 | "mcr p15, 0, r0, c6, c0, 1 \n\t" |
160 | 186 | ||
161 | #ifdef LOGIK_DAX | 187 | #if defined(LOGIK_DAX) || defined(SANSA_C100) |
162 | /* Address region 1 - addr 0x2fff0000, size=64KB, enabled*/ | 188 | /* Address region 1 - addr 0x2fff0000, size=64KB, enabled*/ |
163 | "ldr r0, =0x2fff001f \n\t" | 189 | "ldr r0, =0x2fff001f \n\t" |
164 | #elif defined(IAUDIO_7) | 190 | #elif defined(IAUDIO_7) |
@@ -208,7 +234,7 @@ http://infocenter.arm.com/help/topic/com.arm.doc.ddi0201d/DDI0201D_arm946es_r1p1 | |||
208 | "mcr p15, 0, r0, c6, c7, 0 \n\t" | 234 | "mcr p15, 0, r0, c6, c7, 0 \n\t" |
209 | "mcr p15, 0, r0, c6, c7, 1 \n\t" | 235 | "mcr p15, 0, r0, c6, c7, 1 \n\t" |
210 | 236 | ||
211 | 237 | ||
212 | /* Register 5 - Access Permission Registers */ | 238 | /* Register 5 - Access Permission Registers */ |
213 | 239 | ||
214 | "ldr r0, =0xffff \n\t" | 240 | "ldr r0, =0xffff \n\t" |
@@ -218,9 +244,9 @@ http://infocenter.arm.com/help/topic/com.arm.doc.ddi0201d/DDI0201D_arm946es_r1p1 | |||
218 | "mov r0, #0xa7 \n\t" | 244 | "mov r0, #0xa7 \n\t" |
219 | "mcr p15, 0, r0, c3, c0, 0 \n\t" /* set write buffer control register */ | 245 | "mcr p15, 0, r0, c3, c0, 0 \n\t" /* set write buffer control register */ |
220 | 246 | ||
221 | #ifdef LOGIK_DAX | 247 | #if defined(LOGIK_DAX) || defined(SANSA_C100) |
222 | "mov r0, #0xa5 \n\t" | 248 | "mov r0, #0xa5 \n\t" |
223 | #elif defined(IAUDIO_7) || defined(SANSA_M200) | 249 | #elif defined(IAUDIO_7) || defined(SANSA_M200) |
224 | "mov r0, #0xa7 \n\t" | 250 | "mov r0, #0xa7 \n\t" |
225 | #elif | 251 | #elif |
226 | #error NOT DEFINED FOR THIS TARGET! | 252 | #error NOT DEFINED FOR THIS TARGET! |