From 2d5e6e1a8792c71c765e2c8f6956cf71e6178b01 Mon Sep 17 00:00:00 2001 From: Frank Gevaerts Date: Sun, 5 Oct 2008 20:01:25 +0000 Subject: LCD driver for meizu M3, new type (older M3s are not yet supported) Thanks to Denes Balatoni git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18719 a1c6a512-1295-4272-9138-f99709370657 --- bootloader/meizu_m3.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'bootloader') diff --git a/bootloader/meizu_m3.c b/bootloader/meizu_m3.c index cc9fbab88d..1c1f45a40a 100644 --- a/bootloader/meizu_m3.c +++ b/bootloader/meizu_m3.c @@ -101,6 +101,26 @@ void bl_debug_int(unsigned int input,unsigned int count) void main(void) { + char mystring[64]; + int tmpval; + + /* set clock to 200 MHz */ + CLKCON = 0x00800080; + CLKCON2= 0x00; + PLL0PMS = 0x1ad200; + PLLCON = 1; + while (!(PLLLOCK & 1)) ; + CLKCON = 0x20802080; + + /* mask all interrupts + this is done, because the lcd framebuffer + overwrites some stuff, which leads to a freeze + when an irq is generated after the dfu upload. + crt0 should have disabled irqs, + but the bootrom hands us execution in + user mode so we can't switch interrupts off */ + INTMSK = 0; + //Set backlight pin to output and enable int oldval = PCON0; PCON0 = ((oldval & ~(3 << 4)) | (1 << 4)); @@ -110,6 +130,15 @@ void main(void) oldval = PCON1; PCON1 = ((oldval & ~(0xf << 16)) | (0 << 16)); + asm volatile("mrs %0, cpsr \n\t" + : "=r" (tmpval) + ); + + lcd_init(); + snprintf(mystring, 64, "tmpval: %x", tmpval); + lcd_putsxy(0,0,mystring); + lcd_update(); + init_qt1106(); // Wait for play to be pressed -- cgit v1.2.3