summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s5l8702/gpio-s5l8702.c
diff options
context:
space:
mode:
authorCástor Muñoz <cmvidal@gmail.com>2016-02-04 22:49:01 +0100
committerCástor Muñoz <cmvidal@gmail.com>2016-05-25 10:59:31 +0200
commit1aefd9ea4146ebb7eee606be4efb5cf22654b082 (patch)
treeffbe9f88c2e0624faf93419c5bc9bd63963766ec /firmware/target/arm/s5l8702/gpio-s5l8702.c
parentc31fcddd985a9855ece85f4209a4bdae77f3f9c8 (diff)
downloadrockbox-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.c19
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
219static 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
227void 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