mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-08 20:55:17 -05:00
When the bootloader starts, most of HW never has been initialized. This patch includes all code needed to perform the preliminary initialization on SYSCON, GPIO, i2c, and MIU. The code is based on emCORE and OF reverse engineering, ported to C for readability. Change-Id: I9ecf2c3e8b1b636241a211dbba8735137accd05c
54 lines
1.9 KiB
C
54 lines
1.9 KiB
C
/***************************************************************************
|
|
* __________ __ ___.
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
* \/ \/ \/ \/ \/
|
|
* $Id: system-target.h 28791 2010-12-11 09:39:33Z Buschel $
|
|
*
|
|
* Copyright (C) 2007 by Dave Chapman
|
|
*
|
|
* 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 SYSTEM_TARGET_H
|
|
#define SYSTEM_TARGET_H
|
|
|
|
#include "system-arm.h"
|
|
#include "mmu-arm.h"
|
|
|
|
#define CPUFREQ_SLEEP 32768
|
|
#define CPUFREQ_MAX 216000000
|
|
#define CPUFREQ_DEFAULT 54000000
|
|
#define CPUFREQ_NORMAL 54000000
|
|
|
|
#define STORAGE_WANTS_ALIGN
|
|
|
|
#define S5L8702_UNCACHED_ADDR(a) ((typeof(a)) ((uintptr_t)(a) + 0x40000000))
|
|
#define S5L8702_PHYSICAL_ADDR(a) ((typeof(a)) ((uintptr_t)(a)))
|
|
|
|
#define inl(a) (*(volatile unsigned long *) (a))
|
|
#define outl(a,b) (*(volatile unsigned long *) (b) = (a))
|
|
#define inb(a) (*(volatile unsigned char *) (a))
|
|
#define outb(a,b) (*(volatile unsigned char *) (b) = (a))
|
|
#define inw(a) (*(volatile unsigned short*) (a))
|
|
#define outw(a,b) (*(volatile unsigned short*) (b) = (a))
|
|
|
|
static inline void udelay(unsigned usecs)
|
|
{
|
|
unsigned stop = USEC_TIMER + usecs;
|
|
while (TIME_BEFORE(USEC_TIMER, stop));
|
|
}
|
|
|
|
#ifdef BOOTLOADER
|
|
void system_preinit(void);
|
|
#endif
|
|
|
|
#endif /* SYSTEM_TARGET_H */
|