From e648e8927c639568ccc7a512d5840c7cfac93137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= Date: Sat, 29 May 2010 15:23:02 +0200 Subject: [PATCH] Sansa Clip*: disable LCD peripherals in lcd_enable --- firmware/target/arm/as3525/lcd-ssd1303.c | 2 +- firmware/target/arm/as3525/lcd-ssd1303.h | 25 +++++++++++++++++ firmware/target/arm/as3525/sansa-clip/lcd-clip.c | 25 +++++++++++++--- firmware/target/arm/as3525/sansa-clip/lcd-clip.h | 29 -------------------- .../arm/as3525/sansa-clipplus/lcd-clip-plus.c | 10 ++++++- .../target/arm/as3525/sansa-clipplus/lcd-clip.h | 28 ------------------- firmware/target/arm/as3525/sansa-clipv2/lcd-clip.h | 28 ------------------- .../target/arm/as3525/sansa-clipv2/lcd-clipv2.c | 10 ++++++- 8 files changed, 64 insertions(+), 93 deletions(-) create mode 100644 firmware/target/arm/as3525/lcd-ssd1303.h delete mode 100644 firmware/target/arm/as3525/sansa-clip/lcd-clip.h delete mode 100644 firmware/target/arm/as3525/sansa-clipplus/lcd-clip.h delete mode 100644 firmware/target/arm/as3525/sansa-clipv2/lcd-clip.h diff --git a/firmware/target/arm/as3525/lcd-ssd1303.c b/firmware/target/arm/as3525/lcd-ssd1303.c index 09f2638..91d7b66 100644 --- a/firmware/target/arm/as3525/lcd-ssd1303.c +++ b/firmware/target/arm/as3525/lcd-ssd1303.c @@ -28,7 +28,7 @@ #include "cpu.h" #include "string.h" -#include "lcd-clip.h" +#include "lcd-ssd1303.h" /*** definitions ***/ diff --git a/firmware/target/arm/as3525/lcd-ssd1303.h b/firmware/target/arm/as3525/lcd-ssd1303.h new file mode 100644 index 0000000..8a9fa32 --- /dev/null +++ b/firmware/target/arm/as3525/lcd-ssd1303.h @@ -0,0 +1,25 @@ +/*************************************************************************** + * __________ __ ___. + * 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. + * + ****************************************************************************/ + +#include "config.h" + +void lcd_hw_init(void) INIT_ATTR; +void lcd_enable_power(bool onoff); diff --git a/firmware/target/arm/as3525/sansa-clip/lcd-clip.c b/firmware/target/arm/as3525/sansa-clip/lcd-clip.c index 29d9259..c1b2ded 100644 --- a/firmware/target/arm/as3525/sansa-clip/lcd-clip.c +++ b/firmware/target/arm/as3525/sansa-clip/lcd-clip.c @@ -22,21 +22,27 @@ #include "config.h" #include "lcd.h" -#include "lcd-clip.h" +#include "lcd-ssd1303.h" #include "system.h" #include "cpu.h" +#include "ascodec.h" -void lcd_hw_init(void) +static void dbop_init(void) { /* DBOP initialisation, do what OF does */ CGU_DBOP = (1<<3) | AS3525_DBOP_DIV; - GPIOB_AFSEL = 0x08; /* DBOP on pin 3 */ - GPIOC_AFSEL = 0x0f; /* DBOP on pins 3:0 */ - DBOP_CTRL = 0x51008; DBOP_TIMPOL_01 = 0x6E167; DBOP_TIMPOL_23 = 0xA167E06F; +} + +void lcd_hw_init(void) +{ + dbop_init(); + + GPIOB_AFSEL = 0x08; /* DBOP on pin 3 */ + GPIOC_AFSEL = 0x0f; /* DBOP on pins 3:0 */ GPIOA_DIR |= 0x33; /* pins 5:4 and 1:0 out */ GPIOB_DIR |= 0x40; /* pin 6 out */ @@ -88,3 +94,12 @@ void lcd_write_data(const fb_data* p_bytes, int count) /* While push fifo is not empty */ while ((DBOP_STAT & (1<<10)) == 0); } + +void lcd_enable_power(bool onoff) +{ + ascodec_write(AS3514_DCDC15, onoff ? 1 : 0); + if (onoff) + dbop_init(); + else + CGU_DBOP &= ~(1<<3); +} diff --git a/firmware/target/arm/as3525/sansa-clip/lcd-clip.h b/firmware/target/arm/as3525/sansa-clip/lcd-clip.h deleted file mode 100644 index 7863b85..0000000 --- a/firmware/target/arm/as3525/sansa-clip/lcd-clip.h +++ /dev/null @@ -1,29 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * 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. - * - ****************************************************************************/ - -#include "config.h" -#include "ascodec.h" - -void lcd_hw_init(void) INIT_ATTR; -static inline void lcd_enable_power(bool onoff) -{ - ascodec_write(AS3514_DCDC15, onoff ? 1 : 0); -} diff --git a/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c b/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c index 1a94547..0babb9f 100644 --- a/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c +++ b/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c @@ -22,7 +22,7 @@ #include "config.h" #include "lcd.h" -#include "lcd-clip.h" +#include "lcd-ssd1303.h" #include "system.h" #include "cpu.h" @@ -65,3 +65,11 @@ void lcd_write_data(const fb_data* p_bytes, int count) SSP_DATA = *p_bytes++; } } + +void lcd_enable_power(bool onoff) +{ + if (onoff) + CGU_PERI |= CGU_SSP_CLOCK_ENABLE; + else + CGU_PERI &= ~CGU_SSP_CLOCK_ENABLE; +} diff --git a/firmware/target/arm/as3525/sansa-clipplus/lcd-clip.h b/firmware/target/arm/as3525/sansa-clipplus/lcd-clip.h deleted file mode 100644 index ae0309a..0000000 --- a/firmware/target/arm/as3525/sansa-clipplus/lcd-clip.h +++ /dev/null @@ -1,28 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * 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. - * - ****************************************************************************/ - -#include "config.h" - -void lcd_hw_init(void) INIT_ATTR; -static inline void lcd_enable_power(bool onoff) -{ - (void) onoff; -} diff --git a/firmware/target/arm/as3525/sansa-clipv2/lcd-clip.h b/firmware/target/arm/as3525/sansa-clipv2/lcd-clip.h deleted file mode 100644 index ae0309a..0000000 --- a/firmware/target/arm/as3525/sansa-clipv2/lcd-clip.h +++ /dev/null @@ -1,28 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * 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. - * - ****************************************************************************/ - -#include "config.h" - -void lcd_hw_init(void) INIT_ATTR; -static inline void lcd_enable_power(bool onoff) -{ - (void) onoff; -} diff --git a/firmware/target/arm/as3525/sansa-clipv2/lcd-clipv2.c b/firmware/target/arm/as3525/sansa-clipv2/lcd-clipv2.c index f8cfb0b..b33e915 100644 --- a/firmware/target/arm/as3525/sansa-clipv2/lcd-clipv2.c +++ b/firmware/target/arm/as3525/sansa-clipv2/lcd-clipv2.c @@ -22,7 +22,7 @@ #include "config.h" #include "lcd.h" -#include "lcd-clip.h" +#include "lcd-ssd1303.h" #include "system.h" #include "cpu.h" @@ -82,3 +82,11 @@ void lcd_write_data(const fb_data* p_bytes, int count) /* While push fifo is not empty */ while ((DBOP_STAT & (1<<10)) == 0); } + +void lcd_enable_power(bool onoff) +{ + if (onoff) + CGU_DBOP |= 1<<3; + else + CGU_DBOP &= ~(1<<3); +} -- 1.7.0.4