summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm')
-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 @@
#include "lcd.h"
#include "as3525v2.h"
#include "ascodec-target.h"
+#include "lcd-target.h"
bool _backlight_init()
{
/* GPIO B1 controls backlight */
GPIOB_DIR |= (1 << 1);
+ ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
+ GPIOB_PIN(1) = (1 << 1);
return true;
}
@@ -37,13 +40,6 @@ bool _backlight_init()
void _backlight_on(void)
{
GPIOB_PIN(1) = (1 << 1);
-
- ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
- sleep(1);
- ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
- sleep(1);
- ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
-
#ifdef HAVE_LCD_ENABLE
lcd_enable(true);
#endif
@@ -54,9 +50,11 @@ void _backlight_off(void)
#ifdef HAVE_LCD_ENABLE
lcd_enable(false);
#endif
-
GPIOB_PIN(1) = 0;
-
- ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x91);
+}
+
+void _backlight_set_brightness(int brightness)
+{
+ oled_brightness(brightness);
}
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)
udelay(500);
if (GPIOC_PIN(3)) {
- buttons |= BUTTON_LEFT;
+ buttons |= BUTTON_RIGHT;
}
if (GPIOC_PIN(4)) {
buttons |= BUTTON_SELECT;
}
if (GPIOC_PIN(5)) {
- buttons |= BUTTON_RIGHT;
+ buttons |= BUTTON_UP;
}
/* key matrix buttons, second row */
@@ -86,13 +86,13 @@ int button_read_device(void)
udelay(500);
if (GPIOC_PIN(3)) {
- buttons |= BUTTON_UP;
+ buttons |= BUTTON_HOME;
}
if (GPIOC_PIN(4)) {
- buttons |= BUTTON_HOME;
+ buttons |= BUTTON_DOWN;
}
if (GPIOC_PIN(5)) {
- buttons |= BUTTON_DOWN;
+ buttons |= BUTTON_LEFT;
}
/* 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)
SSP_IMSC &= ~0xF; /* disable interrupts */
SSP_DMACR &= ~0x3; /* disable DMA */
+ /* GPIO A3 is ??? but needs to be set */
+ GPIOA_DIR |= (1 << 3);
+ GPIOA_PIN(3) = (1 << 3);
+
/* configure GPIO B2 (lcd D/C#) as output */
GPIOB_DIR |= (1<<2);
/* configure GPIO B3 (lcd type detect) as input */
GPIOB_DIR &= ~(1<<3);
-
+
/* configure GPIO A5 (lcd reset#) as output and perform lcd reset */
GPIOA_DIR |= (1 << 5);
GPIOA_PIN(5) = 0;
@@ -154,7 +158,7 @@ static void lcd_write_nibbles(uint8_t val)
/* initialises lcd type 1 */
static void lcd_init_type1(void)
{
- static const uint8_t curve[256] = {
+ static const uint8_t curve[128] = {
/* 5-bit curve */
0, 5, 10, 15, 20, 25, 30, 35, 39, 43, 47, 51, 55, 59, 63, 67,
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)
lcd_write_dat(0x10);
lcd_write_cmd(0x3A);
- for (i = 0; i < 256; i++) {
+ for (i = 0; i < 128; i++) {
lcd_write_nibbles(curve[i]);
}
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)
#if defined(HAVE_MULTIDRIVE)
#if defined(SANSA_FUZEV2)
return GPIOA_PIN(2);
-#elif defined(SANSA_CLIPPLUS)
+#elif defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
return !(GPIOA_PIN(2));
-#elif defined(SANSA_CLIPZIP)
- /* TODO for ClipZip: determine polarity of uSD detect */
- return false;
#else
#error "microSD pin not defined for your target"
#endif
@@ -398,14 +395,14 @@ static bool send_cmd(const int drive, const int cmd, const int arg, const int fl
!send_cmd(drive, SD_APP_CMD, card_info[drive].rca, MCI_RESP, response))
return false;
-#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
+#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
if (amsv2_variant == 1)
GPIOB_PIN(5) = (drive == INTERNAL_AS3525) ? 1 << 5 : 0;
#endif
MCI_ARGUMENT = arg;
-#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
+#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
if (amsv2_variant == 1)
card_no = 1 << 16;
else
@@ -565,7 +562,7 @@ static int sd_init_card(const int drive)
return -17;
/* Now that card is widebus make controller aware */
-#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
+#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
if (amsv2_variant == 1)
MCI_CTYPE |= 1<<1;
else
@@ -575,7 +572,7 @@ static int sd_init_card(const int drive)
#endif /* ! BOOTLOADER */
/* Set low power mode */
-#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
+#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
if (amsv2_variant == 1)
MCI_CLKENA |= 1<<(1 + 16);
else
@@ -673,7 +670,7 @@ static void init_controller(void)
int card_mask = (1 << hcon_numcards) - 1;
int pwr_mask;
-#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
+#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
if (amsv2_variant == 1)
pwr_mask = 1 << 1;
else
@@ -738,7 +735,7 @@ int sd_init(void)
semaphore_init(&transfer_completion_signal, 1, 0);
semaphore_init(&command_completion_signal, 1, 0);
-#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
+#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
if (amsv2_variant == 1)
GPIOB_DIR |= 1 << 5;
#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)
c200v2_variant = !GPIOA_PIN(7);
GPIOA_DIR = saved_dir;
}
-#elif defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
+#elif defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
int amsv2_variant;
static 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 @@
? (((uintptr_t)(a)) - IRAM_ORIG) \
: ((uintptr_t)(a))))
-#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS)
+#if defined(SANSA_FUZEV2) || defined(SANSA_CLIPPLUS) || defined(SANSA_CLIPZIP)
extern int amsv2_variant;
#endif