mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 05:05:20 -05:00
Make Clip+ bootloader build
Now making the Fuzev2 bootloader build should be pretty easy
TODO:
- write button driver (FlynDice found all buttons already)
- find button light
- decide if lcd-ssd1303.c must be modified for Clip+ using SSP or forked
- check if backlight code works (I copied Clipv2 code)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24520 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
a9ab407f84
commit
12af2926e5
13 changed files with 421 additions and 12 deletions
|
|
@ -6,7 +6,7 @@ OUTPUT_FORMAT(elf32-littlearm)
|
|||
OUTPUT_ARCH(arm)
|
||||
STARTUP(target/arm/crt0.o)
|
||||
|
||||
#ifdef SANSA_CLIPV2
|
||||
#if CONFIG_CPU == AS3525v2
|
||||
#define RAMORIG 0x0 /* DRAM */
|
||||
#define RAMSIZE (MEM*0x100000)
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
#define AS3525_CLK_FCLK 3 /* Available as PCLK input only */
|
||||
|
||||
/** ************ Change these to reconfigure clocking scheme *******************/
|
||||
#ifdef SANSA_CLIPV2
|
||||
#if CONFIG_CPU == AS3525v2
|
||||
|
||||
/* PLL* registers differ from AS3525 */
|
||||
#define AS3525_PLLA_FREQ 240000000
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
#define AS3525_PLLB_FREQ 384000000 /* allows 44.1kHz with 0.04% error*/
|
||||
#define AS3525_PLLB_SETTING 0x2630
|
||||
|
||||
#endif /* SANSA_CLIPV2 */
|
||||
#endif /* CONFIG_CPU == AS3525v2 */
|
||||
|
||||
//#define AS3525_PLLA_FREQ 384000000 /*192,128,96,76.8,64,54.9,48,42.7,38.4*/
|
||||
/* FCLK_PREDIV-> *7/8 = 336MHz 168, 112, 84, 67.2, 56, 48, 42, 37.3*/
|
||||
|
|
@ -142,12 +142,12 @@
|
|||
#define AS3525_IDE_SEL AS3525_CLK_PLLA /* Input Source */
|
||||
#define AS3525_IDE_DIV (CLK_DIV(AS3525_PLLA_FREQ, AS3525_IDE_FREQ) - 1)/*div=1/(n+1)*/
|
||||
|
||||
#ifdef SANSA_CLIPV2
|
||||
#if CONFIG_CPU == AS3525v2
|
||||
#define AS3525_MS_FREQ 120000000
|
||||
#define AS3525_IDE_FREQ 80000000
|
||||
#else
|
||||
#define AS3525_IDE_FREQ 50000000 /* The OF uses 66MHz maximal freq */
|
||||
#endif /* SANSA_CLIPV2 */
|
||||
#endif /* CONFIG_CPU == AS3525v2 */
|
||||
|
||||
|
||||
//#define AS3525_USB_SEL AS3525_CLK_PLLA /* Input Source */
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@
|
|||
#ifndef POWERMGMT_TARGET_H
|
||||
#define POWERMGMT_TARGET_H
|
||||
|
||||
#if defined(SANSA_CLIP) || defined(SANSA_CLIPV2)
|
||||
#if defined(SANSA_CLIP) \
|
||||
|| defined(SANSA_CLIPV2) /* FIXME */ \
|
||||
|| defined(SANSA_CLIPPLUS) /* FIXME */
|
||||
|
||||
/* Check if topped-off and monitor voltage while plugged. */
|
||||
#define BATT_FULL_VOLTAGE 4160
|
||||
|
|
|
|||
53
firmware/target/arm/as3525/sansa-clipplus/backlight-clip.c
Normal file
53
firmware/target/arm/as3525/sansa-clipplus/backlight-clip.c
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright © 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 "backlight-target.h"
|
||||
#include "lcd.h"
|
||||
#include "as3525v2.h"
|
||||
#include "ascodec-target.h"
|
||||
|
||||
/* FIXME : this is clipv2 code, not sure if it works the same on clip+ */
|
||||
|
||||
void _backlight_on(void)
|
||||
{
|
||||
ascodec_write(0x25, ascodec_read(0x25) | 2); /* lcd power */
|
||||
ascodec_write(0x1c, 8|1);
|
||||
ascodec_write(0x1b, 0x90);
|
||||
lcd_enable(true);
|
||||
}
|
||||
|
||||
void _backlight_off(void)
|
||||
{
|
||||
ascodec_write(0x25, ascodec_read(0x25) & ~2); /* lcd power */
|
||||
lcd_enable(false);
|
||||
}
|
||||
|
||||
void _buttonlight_on(void)
|
||||
{
|
||||
GPIOA_DIR |= (1<<5);
|
||||
GPIOA_PIN(5) = (1<<5); /* set pin a5 high */
|
||||
}
|
||||
|
||||
void _buttonlight_off(void)
|
||||
{
|
||||
GPIOA_DIR |= (1<<5);
|
||||
GPIOA_PIN(5) = 0; /* set pin a5 low */
|
||||
}
|
||||
32
firmware/target/arm/as3525/sansa-clipplus/backlight-target.h
Normal file
32
firmware/target/arm/as3525/sansa-clipplus/backlight-target.h
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright © 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.
|
||||
*
|
||||
****************************************************************************/
|
||||
#ifndef BACKLIGHT_TARGET_H
|
||||
#define BACKLIGHT_TARGET_H
|
||||
|
||||
#define _backlight_init() true
|
||||
|
||||
void _backlight_on(void);
|
||||
void _backlight_off(void);
|
||||
|
||||
void _buttonlight_on(void);
|
||||
void _buttonlight_off(void);
|
||||
|
||||
#endif
|
||||
33
firmware/target/arm/as3525/sansa-clipplus/button-clip.c
Normal file
33
firmware/target/arm/as3525/sansa-clipplus/button-clip.c
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2008 François Dinel
|
||||
* Copyright © 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 "button-target.h"
|
||||
#include "as3525v2.h"
|
||||
#include "kernel.h"
|
||||
|
||||
void button_init_device(void)
|
||||
{
|
||||
}
|
||||
|
||||
int button_read_device(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
57
firmware/target/arm/as3525/sansa-clipplus/button-target.h
Normal file
57
firmware/target/arm/as3525/sansa-clipplus/button-target.h
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2008 François Dinel
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef _BUTTON_TARGET_H_
|
||||
#define _BUTTON_TARGET_H_
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "config.h"
|
||||
|
||||
void button_init_device(void);
|
||||
int button_read_device(void);
|
||||
bool button_hold(void);
|
||||
|
||||
/* Main unit's buttons */
|
||||
#define BUTTON_HOME 0x00000001
|
||||
|
||||
#define BUTTON_VOL_UP 0x00000002
|
||||
#define BUTTON_VOL_DOWN 0x00000004
|
||||
|
||||
#define BUTTON_UP 0x00000008
|
||||
#define BUTTON_DOWN 0x00000010
|
||||
#define BUTTON_LEFT 0x00000020
|
||||
#define BUTTON_RIGHT 0x00000040
|
||||
|
||||
#define BUTTON_SELECT 0x00000080
|
||||
|
||||
#define BUTTON_POWER 0x00000100
|
||||
|
||||
#define BUTTON_MAIN (BUTTON_HOME|BUTTON_VOL_UP|BUTTON_VOL_DOWN\
|
||||
|BUTTON_UP|BUTTON_DOWN|BUTTON_LEFT|BUTTON_RIGHT\
|
||||
|BUTTON_SELECT|BUTTON_POWER)
|
||||
|
||||
#define BUTTON_REMOTE 0
|
||||
|
||||
/* Software power-off */
|
||||
#define POWEROFF_BUTTON BUTTON_POWER
|
||||
#define POWEROFF_COUNT 10
|
||||
|
||||
#endif /* _BUTTON_TARGET_H_ */
|
||||
|
|
@ -205,7 +205,8 @@ static void sdram_init(void)
|
|||
/* 16 bits external bus, low power SDRAM, 16 Mbits = 2 Mbytes */
|
||||
#define MEMORY_MODEL 0x21
|
||||
|
||||
#elif defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_CLIPV2)
|
||||
#elif defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_CLIPV2) \
|
||||
|| defined(SANSA_CLIPPLUS)
|
||||
/* 16 bits external bus, high performance SDRAM, 64 Mbits = 8 Mbytes */
|
||||
#define MEMORY_MODEL 0x5
|
||||
|
||||
|
|
@ -256,7 +257,7 @@ void memory_init(void)
|
|||
|
||||
void system_init(void)
|
||||
{
|
||||
#ifdef SANSA_CLIPV2
|
||||
#if CONFIG_CPU == AS3525v2
|
||||
/* Init procedure isn't fully understood yet
|
||||
* CCU_* registers differ from AS3525
|
||||
*/
|
||||
|
|
@ -270,7 +271,7 @@ void system_init(void)
|
|||
CGU_PERI &= ~0x7f; /* pclk 24 MHz */
|
||||
CGU_PERI |= ((CLK_DIV(AS3525_PLLA_FREQ, AS3525_PCLK_FREQ) - 1) << 2)
|
||||
| 1; /* clk_in = PLLA */
|
||||
#else /* SANSA_CLIPV2 */
|
||||
#else
|
||||
unsigned int reset_loops = 640;
|
||||
|
||||
CCU_SRC = 0x1fffff0
|
||||
|
|
@ -315,7 +316,7 @@ void system_init(void)
|
|||
sdram_init();
|
||||
#endif /* BOOTLOADER */
|
||||
|
||||
#endif /* SANSA_CLIPV2 */
|
||||
#endif /* CONFIG_CPU == AS3525v2 */
|
||||
|
||||
#if 0 /* the GPIO clock is already enabled by the dualboot function */
|
||||
CGU_PERI |= CGU_GPIO_CLOCK_ENABLE;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue