summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
authorBertrik Sikken <bertrik@sikken.nl>2011-10-29 17:08:05 +0000
committerBertrik Sikken <bertrik@sikken.nl>2011-10-29 17:08:05 +0000
commite90f961593e92fa5d98efa67b569e7efe5f4fbe0 (patch)
tree70f01d2ac811ba161c22903824590d2690850efd /firmware/target
parenta8cde851fbcefdd33d826cf4b1f0daa8c0b48dc2 (diff)
downloadrockbox-e90f961593e92fa5d98efa67b569e7efe5f4fbe0.tar.gz
rockbox-e90f961593e92fa5d98efa67b569e7efe5f4fbe0.zip
Sansa clip zip: update mkamsboot and fix various drivers to make it boot to the main firmware
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30853 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/as3525/sansa-clipzip/backlight-clipzip.c18
-rw-r--r--firmware/target/arm/as3525/sansa-clipzip/button-clipzip.c10
-rw-r--r--firmware/target/arm/as3525/sansa-clipzip/lcd-clipzip.c10
-rw-r--r--firmware/target/arm/as3525/sd-as3525v2.c17
-rw-r--r--firmware/target/arm/as3525/system-as3525.c2
-rw-r--r--firmware/target/arm/as3525/system-target.h2
6 files changed, 29 insertions, 30 deletions
diff --git a/firmware/target/arm/as3525/sansa-clipzip/backlight-clipzip.c b/firmware/target/arm/as3525/sansa-clipzip/backlight-clipzip.c
index 758aa875cc..589f80436e 100644
--- a/firmware/target/arm/as3525/sansa-clipzip/backlight-clipzip.c
+++ b/firmware/target/arm/as3525/sansa-clipzip/backlight-clipzip.c
@@ -25,11 +25,14 @@
25#include "lcd.h" 25#include "lcd.h"
26#include "as3525v2.h" 26#include "as3525v2.h"
27#include "ascodec-target.h" 27#include "ascodec-target.h"
28#include "lcd-target.h"
28 29
29bool _backlight_init() 30bool _backlight_init()
30{ 31{
31 /* GPIO B1 controls backlight */ 32 /* GPIO B1 controls backlight */
32 GPIOB_DIR |= (1 << 1); 33 GPIOB_DIR |= (1 << 1);
34 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
35 GPIOB_PIN(1) = (1 << 1);
33 36
34 return true; 37 return true;
35} 38}
@@ -37,13 +40,6 @@ bool _backlight_init()
37void _backlight_on(void) 40void _backlight_on(void)
38{ 41{
39 GPIOB_PIN(1) = (1 << 1); 42 GPIOB_PIN(1) = (1 << 1);
40
41 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
42 sleep(1);
43 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
44 sleep(1);
45 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
46
47#ifdef HAVE_LCD_ENABLE 43#ifdef HAVE_LCD_ENABLE
48 lcd_enable(true); 44 lcd_enable(true);
49#endif 45#endif
@@ -54,9 +50,11 @@ void _backlight_off(void)
54#ifdef HAVE_LCD_ENABLE 50#ifdef HAVE_LCD_ENABLE
55 lcd_enable(false); 51 lcd_enable(false);
56#endif 52#endif
57
58 GPIOB_PIN(1) = 0; 53 GPIOB_PIN(1) = 0;
59 54}
60 ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91); 55
56void _backlight_set_brightness(int brightness)
57{
58 oled_brightness(brightness);
61} 59}
62 60
diff --git a/firmware/target/arm/as3525/sansa-clipzip/button-clipzip.c b/firmware/target/arm/as3525/sansa-clipzip/button-clipzip.c
index 104c227378..e960b49b77 100644
--- a/firmware/target/arm/as3525/sansa-clipzip/button-clipzip.c
+++ b/firmware/target/arm/as3525/sansa-clipzip/button-clipzip.c
@@ -71,13 +71,13 @@ int button_read_device(void)
71 udelay(500); 71 udelay(500);
72 72
73 if (GPIOC_PIN(3)) { 73 if (GPIOC_PIN(3)) {
74 buttons |= BUTTON_LEFT; 74 buttons |= BUTTON_RIGHT;
75 } 75 }
76 if (GPIOC_PIN(4)) { 76 if (GPIOC_PIN(4)) {
77 buttons |= BUTTON_SELECT; 77 buttons |= BUTTON_SELECT;
78 } 78 }
79 if (GPIOC_PIN(5)) { 79 if (GPIOC_PIN(5)) {
80 buttons |= BUTTON_RIGHT; 80 buttons |= BUTTON_UP;
81 } 81 }
82 82
83 /* key matrix buttons, second row */ 83 /* key matrix buttons, second row */
@@ -86,13 +86,13 @@ int button_read_device(void)
86 udelay(500); 86 udelay(500);
87 87
88 if (GPIOC_PIN(3)) { 88 if (GPIOC_PIN(3)) {
89 buttons |= BUTTON_UP; 89 buttons |= BUTTON_HOME;
90 } 90 }
91 if (GPIOC_PIN(4)) { 91 if (GPIOC_PIN(4)) {
92 buttons |= BUTTON_HOME; 92 buttons |= BUTTON_DOWN;
93 } 93 }
94 if (GPIOC_PIN(5)) { 94 if (GPIOC_PIN(5)) {
95 buttons |= BUTTON_DOWN; 95 buttons |= BUTTON_LEFT;
96 } 96 }
97 97
98 /* deselect scan rows */ 98 /* deselect scan rows */
diff --git a/firmware/target/arm/as3525/sansa-clipzip/lcd-clipzip.c b/firmware/target/arm/as3525/sansa-clipzip/lcd-clipzip.c
index 899eb538ea..0ae049b6ff 100644
--- a/firmware/target/arm/as3525/sansa-clipzip/lcd-clipzip.c
+++ b/firmware/target/arm/as3525/sansa-clipzip/lcd-clipzip.c
@@ -51,12 +51,16 @@ static int lcd_hw_init(void)
51 SSP_IMSC &= ~0xF; /* disable interrupts */ 51 SSP_IMSC &= ~0xF; /* disable interrupts */
52 SSP_DMACR &= ~0x3; /* disable DMA */ 52 SSP_DMACR &= ~0x3; /* disable DMA */
53 53
54 /* GPIO A3 is ??? but needs to be set */
55 GPIOA_DIR |= (1 << 3);
56 GPIOA_PIN(3) = (1 << 3);
57
54 /* configure GPIO B2 (lcd D/C#) as output */ 58 /* configure GPIO B2 (lcd D/C#) as output */
55 GPIOB_DIR |= (1<<2); 59 GPIOB_DIR |= (1<<2);
56 60
57 /* configure GPIO B3 (lcd type detect) as input */ 61 /* configure GPIO B3 (lcd type detect) as input */
58 GPIOB_DIR &= ~(1<<3); 62 GPIOB_DIR &= ~(1<<3);
59 63
60 /* configure GPIO A5 (lcd reset#) as output and perform lcd reset */ 64 /* configure GPIO A5 (lcd reset#) as output and perform lcd reset */
61 GPIOA_DIR |= (1 << 5); 65 GPIOA_DIR |= (1 << 5);
62 GPIOA_PIN(5) = 0; 66 GPIOA_PIN(5) = 0;
@@ -154,7 +158,7 @@ static void lcd_write_nibbles(uint8_t val)
154/* initialises lcd type 1 */ 158/* initialises lcd type 1 */
155static void lcd_init_type1(void) 159static void lcd_init_type1(void)
156{ 160{
157 static const uint8_t curve[256] = { 161 static const uint8_t curve[128] = {
158 /* 5-bit curve */ 162 /* 5-bit curve */
159 0, 5, 10, 15, 20, 25, 30, 35, 39, 43, 47, 51, 55, 59, 63, 67, 163 0, 5, 10, 15, 20, 25, 30, 35, 39, 43, 47, 51, 55, 59, 63, 67,
160 71, 75, 79, 83, 87, 91, 95, 99, 103, 105, 109, 113, 117, 121, 123, 127, 164 71, 75, 79, 83, 87, 91, 95, 99, 103, 105, 109, 113, 117, 121, 123, 127,
@@ -242,7 +246,7 @@ static void lcd_init_type1(void)
242 lcd_write_dat(0x10); 246 lcd_write_dat(0x10);
243 247
244 lcd_write_cmd(0x3A); 248 lcd_write_cmd(0x3A);
245 for (i = 0; i < 256; i++) { 249 for (i = 0; i < 128; i++) {
246 lcd_write_nibbles(curve[i]); 250 lcd_write_nibbles(curve[i]);
247 } 251 }
248 252
diff --git a/firmware/target/arm/as3525/sd-as3525v2.c b/firmware/target/arm/as3525/sd-as3525v2.c
index 7410b19550..74925a3aab 100644
--- a/firmware/target/arm/as3525/sd-as3525v2.c
+++ b/firmware/target/arm/as3525/sd-as3525v2.c
@@ -376,11 +376,8 @@ static inline bool card_detect_target(void)
376#if defined(HAVE_MULTIDRIVE) 376#if defined(HAVE_MULTIDRIVE)
377#if defined(SANSA_FUZEV2) 377#if defined(SANSA_FUZEV2)
378 return GPIOA_PIN(2); 378 return GPIOA_PIN(2);
379#elif defined(SANSA_CLIPPLUS) 379#elif defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
380 return !(GPIOA_PIN(2)); 380 return !(GPIOA_PIN(2));
381#elif defined(SANSA_CLIPZIP)
382 /* TODO for ClipZip: determine polarity of uSD detect */
383 return false;
384#else 381#else
385#error "microSD pin not defined for your target" 382#error "microSD pin not defined for your target"
386#endif 383#endif
@@ -398,14 +395,14 @@ static bool send_cmd(const int drive, const int cmd, const int arg, const int fl
398 !send_cmd(drive, SD_APP_CMD, card_info[drive].rca, MCI_RESP, response)) 395 !send_cmd(drive, SD_APP_CMD, card_info[drive].rca, MCI_RESP, response))
399 return false; 396 return false;
400 397
401#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) 398#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
402 if (amsv2_variant == 1) 399 if (amsv2_variant == 1)
403 GPIOB_PIN(5) = (drive == INTERNAL_AS3525) ? 1 << 5 : 0; 400 GPIOB_PIN(5) = (drive == INTERNAL_AS3525) ? 1 << 5 : 0;
404#endif 401#endif
405 402
406 MCI_ARGUMENT = arg; 403 MCI_ARGUMENT = arg;
407 404
408#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) 405#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
409 if (amsv2_variant == 1) 406 if (amsv2_variant == 1)
410 card_no = 1 << 16; 407 card_no = 1 << 16;
411 else 408 else
@@ -565,7 +562,7 @@ static int sd_init_card(const int drive)
565 return -17; 562 return -17;
566 563
567 /* Now that card is widebus make controller aware */ 564 /* Now that card is widebus make controller aware */
568#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) 565#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
569 if (amsv2_variant == 1) 566 if (amsv2_variant == 1)
570 MCI_CTYPE |= 1<<1; 567 MCI_CTYPE |= 1<<1;
571 else 568 else
@@ -575,7 +572,7 @@ static int sd_init_card(const int drive)
575#endif /* ! BOOTLOADER */ 572#endif /* ! BOOTLOADER */
576 573
577 /* Set low power mode */ 574 /* Set low power mode */
578#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) 575#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
579 if (amsv2_variant == 1) 576 if (amsv2_variant == 1)
580 MCI_CLKENA |= 1<<(1 + 16); 577 MCI_CLKENA |= 1<<(1 + 16);
581 else 578 else
@@ -673,7 +670,7 @@ static void init_controller(void)
673 int card_mask = (1 << hcon_numcards) - 1; 670 int card_mask = (1 << hcon_numcards) - 1;
674 int pwr_mask; 671 int pwr_mask;
675 672
676#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) 673#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
677 if (amsv2_variant == 1) 674 if (amsv2_variant == 1)
678 pwr_mask = 1 << 1; 675 pwr_mask = 1 << 1;
679 else 676 else
@@ -738,7 +735,7 @@ int sd_init(void)
738 semaphore_init(&transfer_completion_signal, 1, 0); 735 semaphore_init(&transfer_completion_signal, 1, 0);
739 semaphore_init(&command_completion_signal, 1, 0); 736 semaphore_init(&command_completion_signal, 1, 0);
740 737
741#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) 738#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
742 if (amsv2_variant == 1) 739 if (amsv2_variant == 1)
743 GPIOB_DIR |= 1 << 5; 740 GPIOB_DIR |= 1 << 5;
744#endif 741#endif
diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c
index a79b934aaa..2a40724208 100644
--- a/firmware/target/arm/as3525/system-as3525.c
+++ b/firmware/target/arm/as3525/system-as3525.c
@@ -184,7 +184,7 @@ static void check_model_variant(void)
184 c200v2_variant = !GPIOA_PIN(7); 184 c200v2_variant = !GPIOA_PIN(7);
185 GPIOA_DIR = saved_dir; 185 GPIOA_DIR = saved_dir;
186} 186}
187#elif defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) 187#elif defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
188int amsv2_variant; 188int amsv2_variant;
189 189
190static void check_model_variant(void) 190static void check_model_variant(void)
diff --git a/firmware/target/arm/as3525/system-target.h b/firmware/target/arm/as3525/system-target.h
index 7c9dcccc0c..cdcc2e6687 100644
--- a/firmware/target/arm/as3525/system-target.h
+++ b/firmware/target/arm/as3525/system-target.h
@@ -46,7 +46,7 @@
46 ? (((uintptr_t)(a)) - IRAM_ORIG) \ 46 ? (((uintptr_t)(a)) - IRAM_ORIG) \
47 : ((uintptr_t)(a)))) 47 : ((uintptr_t)(a))))
48 48
49#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) 49#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
50extern int amsv2_variant; 50extern int amsv2_variant;
51#endif 51#endif
52 52