diff options
author | Cástor Muñoz <cmvidal@gmail.com> | 2016-02-04 22:49:01 +0100 |
---|---|---|
committer | Cástor Muñoz <cmvidal@gmail.com> | 2016-05-25 10:59:31 +0200 |
commit | 1aefd9ea4146ebb7eee606be4efb5cf22654b082 (patch) | |
tree | ffbe9f88c2e0624faf93419c5bc9bd63963766ec /firmware/target/arm/s5l8702/gpio-s5l8702.c | |
parent | c31fcddd985a9855ece85f4209a4bdae77f3f9c8 (diff) | |
download | rockbox-1aefd9ea4146ebb7eee606be4efb5cf22654b082.tar.gz rockbox-1aefd9ea4146ebb7eee606be4efb5cf22654b082.zip |
iPod Classic: HW preliminary initialization for bootloader
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
Diffstat (limited to 'firmware/target/arm/s5l8702/gpio-s5l8702.c')
-rw-r--r-- | firmware/target/arm/s5l8702/gpio-s5l8702.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/firmware/target/arm/s5l8702/gpio-s5l8702.c b/firmware/target/arm/s5l8702/gpio-s5l8702.c index bd87005ad8..85033de78c 100644 --- a/firmware/target/arm/s5l8702/gpio-s5l8702.c +++ b/firmware/target/arm/s5l8702/gpio-s5l8702.c | |||
@@ -214,3 +214,22 @@ void ICODE_ATTR INT_EXT6(void) | |||
214 | gpio_handler(0); | 214 | gpio_handler(0); |
215 | } | 215 | } |
216 | #endif | 216 | #endif |
217 | |||
218 | #ifdef BOOTLOADER | ||
219 | static uint32_t gpio_data[16] = | ||
220 | { | ||
221 | 0x5322222F, 0xEEEEEE00, 0x2332EEEE, 0x3333E222, | ||
222 | 0x33333333, 0x33333333, 0x3F000E33, 0xEEEEEEEE, | ||
223 | 0xEEEEEEEE, 0xEEEEEEEE, 0xE0EEEEEE, 0xEE00EE0E, | ||
224 | 0xEEEE0EEE, 0xEEEEEEEE, 0xEE2222EE, 0xEEEE0EEE | ||
225 | }; | ||
226 | |||
227 | void gpio_preinit(void) | ||
228 | { | ||
229 | for (int i = 0; i < 16; i++) { | ||
230 | PCON(i) = gpio_data[i]; | ||
231 | PUNB(i) = 0; | ||
232 | PUNC(i) = 0; | ||
233 | } | ||
234 | } | ||
235 | #endif | ||