summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/sansa-clipplus
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-03-19 15:13:29 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-03-19 15:13:29 +0000
commit91647264f8b05bf0fe5c58926a2e886b5fd85fe6 (patch)
treedc6db2e98b2a82a7a499fe9a54bbccf4e9ba9230 /firmware/target/arm/as3525/sansa-clipplus
parentf14bb2287c783048a53a979c5604f2c1a82ec8be (diff)
lcd-ssd1303 (all Clips) : move model specific code in their own files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25248 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/as3525/sansa-clipplus')
-rw-r--r--firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c66
-rw-r--r--firmware/target/arm/as3525/sansa-clipplus/lcd-clip.h26
2 files changed, 92 insertions, 0 deletions
diff --git a/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c b/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c
new file mode 100644
index 0000000000..66e4de98ed
--- /dev/null
+++ b/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c
@@ -0,0 +1,66 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2008 François Dinel
+ * Copyright (C) 2008-2009 Rafaël Carré
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+#include "config.h"
+
+#include "lcd.h"
+#include "system.h"
+#include "cpu.h"
+
+void lcd_hw_init(void)
+{
+ CGU_PERI |= CGU_SSP_CLOCK_ENABLE;
+
+ SSP_CPSR = AS3525_SSP_PRESCALER; /* OF = 0x10 */
+ SSP_CR0 = (1<<7) | (1<<6) | 7; /* Motorola SPI frame format, 8 bits */
+ SSP_CR1 = (1<<3) | (1<<1); /* SSP Operation enabled */
+ SSP_IMSC = 0; /* No interrupts */
+
+ GPIOA_DIR |= (1<<5);
+ GPIOB_DIR |= (1<<2) | (1<<7);
+ GPIOB_PIN(7) = 0;
+ GPIOA_PIN(5) = (1<<5);
+}
+
+void lcd_write_command(int byte)
+{
+ while(SSP_SR & (1<<4)) /* BSY flag */
+ ;
+
+ GPIOB_PIN(2) = 0;
+ SSP_DATA = byte;
+
+ while(SSP_SR & (1<<4)) /* BSY flag */
+ ;
+}
+
+void lcd_write_data(const fb_data* p_bytes, int count)
+{
+ GPIOB_PIN(2) = (1<<2);
+
+ while (count--)
+ {
+ while(!(SSP_SR & (1<<1))) /* wait until transmit FIFO is not full */
+ ;
+
+ SSP_DATA = *p_bytes++;
+ }
+}
diff --git a/firmware/target/arm/as3525/sansa-clipplus/lcd-clip.h b/firmware/target/arm/as3525/sansa-clipplus/lcd-clip.h
new file mode 100644
index 0000000000..753759638e
--- /dev/null
+++ b/firmware/target/arm/as3525/sansa-clipplus/lcd-clip.h
@@ -0,0 +1,26 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2008-2009 Rafaël Carré
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+void lcd_hw_init(void);
+static inline void lcd_enable_power(bool onoff)
+{
+ (void) onoff;
+}