#include <version.h>\r
#include <asm/arch/pxa-regs.h>\r
\r
+#define DAVICOM_RDF 8\r
+#define DAVICOM_RDN 4\r
+#define DAVICOM_RT 4 /* VLIO */\r
\r
-#define DAVICOM_RDF 4\r
-#define DAVICOM_RDN 2\r
-#define DAVICOM_RT 4 /* VLIO */\r
-\r
-#define DEFAULT_RDF 15\r
-#define DEFAULT_RDN 15\r
-#define DEFAULT_RT 0\r
-\r
-\r
+#define DEFAULT_RDF 15\r
+#define DEFAULT_RDN 15\r
+#define DEFAULT_RT 0\r
\r
+ .equ UART_LSR, FFLSR - FFUART\r
+ .equ UART_THR, FFTHR - FFUART\r
\r
DRAM_SIZE: .long CFG_DRAM_SIZE\r
\r
-/* wait for coprocessor write complete */\r
-.macro CPWAIT reg\r
- mrc p15,0,\reg,c2,c0,0\r
- mov \reg,\reg\r
- sub pc,pc,#4\r
-.endm\r
-\r
-\r
-.macro wait time\r
- ldr r2, =OSCR\r
- mov r3, #0\r
- str r3, [r2]\r
-0:\r
- ldr r3, [r2]\r
- cmp r3, \time\r
- bls 0b\r
-.endm\r
-\r
+/* R12 (IP) must not be modified by this code! */\r
\r
// macro to print a string\r
- // modifies r9-r12\r
+ // modifies r9-r11\r
.macro PRINT_STRING_FF address\r
- ldr r9, =\address \r
- ldr r10, =FFLSR\r
- ldr r11, =FFTHR\r
- \r
- \r
-12:\r
- ldr r12, [r10] // LSR\r
- and r12, r12, #32\r
- cmp r12, #32\r
- bne 12b\r
- \r
- ldrb r12, [r9], #1\r
- str r12, [r11]\r
- cmp r12, #0\r
- bne 12b\r
+#if 0\r
+ ldr r9, =\address\r
+ ldr r10, =FFUART\r
+2:\r
+ ldr r11, [r10, #UART_LSR]\r
+ ands r11, r11, #32\r
+ bne 2b\r
+\r
+ ldrb r11, [r9], #1\r
+ cmp r11, #0\r
+ strne r11, [r10, #UART_THR]\r
+ bne 2b\r
+#endif\r
.endm\r
\r
+.macro set_mask reg, mask, val\r
+ ldr r0, =(\reg)\r
+ ldr r2, =~(\mask)\r
+ ldr r1, [r0]\r
+ ldr r3, =(\val)\r
+ and r1, r1, r2\r
+ orr r1, r1, r3\r
+ str r1, [r0]\r
+.endm\r
\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
+.macro wait_mask reg, mask, val\r
+ ldr r0, =(\reg)\r
+ ldr r2, =(\mask)\r
+ ldr r3, =(\val)\r
+1:\r
+ ldr r1, [r0]\r
+ and r1, r1, r2\r
+ cmp r1, r3\r
+ bne 1b\r
+.endm\r
\r
/*\r
* Memory setup is already done by system boot loader\r
*/\r
-\r
.globl lowlevel_init\r
lowlevel_init:\r
-\r
mov r8, lr @ save link register contents\r
-\r
-#if 0\r
- b 930f\r
-__string_good_1:\r
-\r
- .ascii "\r\nup to now, it is ok \r\n\0" \r
- .balign 4\r
-\r
-930:\r
- PRINT_STRING_FF __string_good_1\r
-\r
-#endif \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
- \r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
-@ @\r
-@ @\r
-@ first enable the clocks we need for the board @\r
-@ @\r
-@ @\r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
- \r
-\r
- ldr r0, =CKENA\r
- ldr r2, [r0]\r
- ldr r3, =(CKENA_4_NAND | CKENA_10_SRAM | CKENA_9_SMC | CKENA_8_DMC | CKENA_22_FFUART)\r
- orr r2, r2, r3\r
- str r2, [r0]\r
-\r
-\r
-\r
-\r
- ldr r0, =CKENB\r
- ldr r2, [r0]\r
- ldr r3, =CKENB_7_GPIO\r
- orr r2, r2, r3\r
- str r2, [r0]\r
- \r
-\r
-\r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
-@ @\r
-@ @\r
-@ init GPIO pins now @\r
-@ @\r
-@ @\r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
-\r
- \r
-\r
-\r
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
+@ @\r
+@ first enable the clocks we need for the board @\r
+@ @\r
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
+__init_clocks:\r
+#if 1\r
+ /* Fixup VCC_APPS voltage settings */\r
+ ldr r0, =AVCR\r
+ ldr r1, [r0]\r
+ mvn r2, #0x20\r
+ and r1, r1, r2\r
+ orr r1, #0x0f\r
+ str r1, [r0]\r
+#endif\r
+ ldr r0, =CKENA\r
+ ldr r3, =(CKENA_RSRVD | CKENA_4_NAND | CKENA_10_SRAM | CKENA_9_SMC | CKENA_8_DMC | CKENA_22_FFUART)\r
+ ldr r2, [r0]\r
+ orr r2, r2, r3\r
+ str r2, [r0]\r
+\r
+ ldr r0, =CKENB\r
+ ldr r3, =(CKENB_RSRVD | CKENB_7_GPIO)\r
+ ldr r2, [r0]\r
+ orr r2, r2, r3\r
+ str r2, [r0]\r
+\r
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
+@ @\r
+@ init GPIO pins now @\r
+@ @\r
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
__init_GPIO_pins_start:\r
-\r
- \r
- \r
- \r
@ must set the GPIOs up before any chip selects will work\r
@ first, clear all values\r
- ldr r1, =0xffffffff\r
+ ldr r1, =0xffffffff\r
@ reset all output registers\r
- ldr r0, =GPCR0\r
- str r1, [r0], #4\r
- str r1, [r0], #4\r
- str r1, [r0]\r
- ldr r0, =GPCR3\r
- str r1, [r0]\r
-\r
-\r
-\r
- add r1, pc, #(__hal_gpio_init_table_0 - (.+8)) @ load table base \r
- mov r3, #GPIO_HIGH @ feature mask of output = high/low\r
- \r
- \r
- ldr r2, =GPSR0 \r
- bl hal_init_gpio_register @ Output Set Register for GPIO [31..0]\r
- bl hal_init_gpio_register @ Output Set Register for GPIO [63..32]\r
- bl hal_init_gpio_register @ Output Set Register for GPIO [95..64]\r
- ldr r2, =GPSR3 \r
- bl hal_init_gpio_register @ Output Set Register for GPIO [127..96]\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
- add r1, pc, #(__hal_gpio_init_table_0 - (.+8)) @ load table base \r
- mov r3, #GPIO_DIR_OUTPUT @ feature mask of output direction\r
- \r
- \r
- ldr r2, =GPDR0 \r
- bl hal_init_gpio_register @ Output Direction Register for GPIO [31..0]\r
- bl hal_init_gpio_register @ Output Direction Register for GPIO [63..32]\r
- bl hal_init_gpio_register @ Output Direction Register for GPIO [95..64]\r
- ldr r2, =GPDR3 \r
- bl hal_init_gpio_register @ Output Direction Register for GPIO [127..96]\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
- add r1, pc, #(__hal_gpio_init_table_0 - (.+8)) @ load table base \r
- mov r3, #GPIO_REDGE @ feature mask of rising edge\r
- \r
- \r
- ldr r2, =GRER0 \r
- bl hal_init_gpio_register @ Output Rising Edge Register for GPIO [31..0]\r
- bl hal_init_gpio_register @ Output Rising Edge Register for GPIO [63..32]\r
- bl hal_init_gpio_register @ Output Rising Edge Register for GPIO [95..64]\r
- ldr r2, =GRER3 \r
- bl hal_init_gpio_register @ Output Rising Edge Register for GPIO [127..96]\r
-\r
-\r
-\r
-\r
- add r1, pc, #(__hal_gpio_init_table_0 - (.+8)) @ load table base \r
- mov r3, #GPIO_FEDGE @ feature mask of rising edge\r
- \r
- \r
- ldr r2, =GFER0 \r
- bl hal_init_gpio_register @ Output Falling Edge Register for GPIO [31..0]\r
- bl hal_init_gpio_register @ Output Falling Edge Register for GPIO [63..32]\r
- bl hal_init_gpio_register @ Output Falling Edge Register for GPIO [95..64]\r
- ldr r2, =GFER3 \r
- bl hal_init_gpio_register @ Output Falling Edge Register for GPIO [127..96]\r
-\r
-\r
-\r
-\r
+ ldr r0, =GPCR0\r
+ str r1, [r0], #4\r
+ str r1, [r0], #4\r
+ str r1, [r0]\r
+ ldr r0, =GPCR3\r
+ str r1, [r0]\r
+\r
+ ldr r1, =__hal_gpio_init_table_0\r
+ mov r3, #GPIO_HIGH @ feature mask of output = high/low\r
+\r
+ ldr r2, =GPSR0\r
+ bl hal_init_gpio_register @ Output Set Register for GPIO [31..0]\r
+ bl hal_init_gpio_register @ Output Set Register for GPIO [63..32]\r
+ bl hal_init_gpio_register @ Output Set Register for GPIO [95..64]\r
+ ldr r2, =GPSR3\r
+ bl hal_init_gpio_register @ Output Set Register for GPIO [127..96]\r
+\r
+ ldr r1, =__hal_gpio_init_table_0\r
+ mov r3, #GPIO_DIR_OUTPUT @ feature mask of output direction\r
+\r
+ ldr r2, =GPDR0\r
+ bl hal_init_gpio_register @ Output Direction Register for GPIO [31..0]\r
+ bl hal_init_gpio_register @ Output Direction Register for GPIO [63..32]\r
+ bl hal_init_gpio_register @ Output Direction Register for GPIO [95..64]\r
+ ldr r2, =GPDR3\r
+ bl hal_init_gpio_register @ Output Direction Register for GPIO [127..96]\r
+\r
+ ldr r1, =__hal_gpio_init_table_0\r
+ mov r3, #GPIO_REDGE @ feature mask of rising edge\r
+\r
+ ldr r2, =GRER0\r
+ bl hal_init_gpio_register @ Output Rising Edge Register for GPIO [31..0]\r
+ bl hal_init_gpio_register @ Output Rising Edge Register for GPIO [63..32]\r
+ bl hal_init_gpio_register @ Output Rising Edge Register for GPIO [95..64]\r
+ ldr r2, =GRER3\r
+ bl hal_init_gpio_register @ Output Rising Edge Register for GPIO [127..96]\r
+\r
+ ldr r1, =__hal_gpio_init_table_0\r
+ mov r3, #GPIO_FEDGE @ feature mask of rising edge\r
+\r
+ ldr r2, =GFER0\r
+ bl hal_init_gpio_register @ Output Falling Edge Register for GPIO [31..0]\r
+ bl hal_init_gpio_register @ Output Falling Edge Register for GPIO [63..32]\r
+ bl hal_init_gpio_register @ Output Falling Edge Register for GPIO [95..64]\r
+ ldr r2, =GFER3\r
+ bl hal_init_gpio_register @ Output Falling Edge Register for GPIO [127..96]\r
\r
@ reset all edge detect registers\r
- ldr r1, =0xffffffff\r
+ ldr r1, =0xffffffff\r
@ reset all output registers\r
- ldr r0, =GEDR0\r
- str r1, [r0], #4\r
- str r1, [r0], #4\r
- str r1, [r0]\r
- ldr r0, =GEDR3\r
- str r1, [r0]\r
- \r
-__init_GPIO_pins_end: \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
-@ @\r
-@ @\r
-@ init MPFR now @\r
-@ @\r
-@ @\r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
-\r
- \r
-\r
-\r
+ ldr r0, =GEDR0\r
+ str r1, [r0], #4\r
+ str r1, [r0], #4\r
+ str r1, [r0]\r
+ ldr r0, =GEDR3\r
+ str r1, [r0]\r
+__init_GPIO_pins_end:\r
+\r
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
+@ @\r
+@ init MPFR now @\r
+@ @\r
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
__init_MPFR_start:\r
- \r
-\r
- ldr r2, =0x40e10000 @ physical base address of MFPRs\r
- add r1, pc, #(__hal_MFPR_init_table - (.+8)) @ Address of data for MFPR settings \r
-\r
-\r
+ ldr r2, =0x40e10000 @ physical base address of MFPRs\r
+ add r1, pc, #(__hal_MFPR_init_table - (.+8)) @ Address of data for MFPR settings\r
1:\r
- ldrh r3, [r1], #2 @ load offset of MFPR\r
- cmp r3, #0\r
- beq __init_MFPR_end @ if offset = 0 -> end of table\r
- add r3, r3, r2 @ r3 = MFPR address now\r
-\r
- ldrh r4, [r1], #2 @ load bits [31..16]\r
- mov r4, r4, lsl #16 @ shift it up 16 bits\r
- ldrh r5, [r1], #2 @ load bits [15..0]\r
- add r4, r4, r5\r
-\r
- str r4, [r3] @ store data\r
- ldr r4, [r3] @ dummy read to be sure that the value is stored\r
- b 1b\r
-\r
-\r
-\r
- \r
- \r
- \r
-__init_MFPR_end: \r
-\r
-\r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
-@ @\r
-@ @\r
-@ Initialize static Memory Controller @\r
-@ @\r
-@ @\r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
-\r
- \r
-\r
-\r
+ ldrh r3, [r1], #2 @ load offset of MFPR\r
+ cmp r3, #0\r
+ beq __init_MFPR_end @ if offset = 0 -> end of table\r
+ add r3, r3, r2 @ r3 = MFPR address now\r
+\r
+ ldrh r4, [r1], #2 @ load bits [15..0]\r
+\r
+ str r4, [r3] @ store data\r
+ b 1b\r
+__init_MFPR_end:\r
+ @ Spec. Update MP-5454 (Rev. 0.75 page 93)\r
+ @ clear EMPI SCLK\r
+ ldr r1, =0x48100100\r
+ @ r3 is zero as exit condition from the loop above\r
+ str r3, [r1, #0x2c]\r
+ ldr r3, [r1]\r
+ orr r3, #0x40000000\r
+ str r3, [r1]\r
+\r
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
+@ @\r
+@ Initialize static Memory Controller @\r
+@ @\r
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
__init_Static_Mem_Contr_start:\r
-\r
-\r
ldr r0, =CSMSADRCFG @ Clock Configuration Register\r
- mov r1, #2 \r
+ mov r1, #2\r
str r1, [r0]\r
\r
-\r
-\r
@ initialise the CS Address Configuration Register\r
- \r
+\r
ldr r0, =CSADRCFG0 @ only synchronus flash is allowed\r
- ldr r1, =CSADRCFG_ALW1 @ not used in the moment\r
+ ldr r1, =CSADRCFG_ALW1 @ not used at the moment\r
str r1, [r0]\r
\r
ldr r0, =CSADRCFG1 @ only synchronus flash is allowed\r
- ldr r1, =CSADRCFG_ALW1 @ not used in the moment\r
+ ldr r1, =CSADRCFG_ALW1 @ not used at the moment\r
str r1, [r0]\r
\r
ldr r0, =CSADRCFG2 @ only synchronus flash is allowed\r
str r1, [r0]\r
\r
ldr r0, =CSADRCFG3 @ only synchronus flash is allowed\r
- ldr r1, =CSADRCFG_ALW1 @ not used in the moment\r
+ ldr r1, =CSADRCFG_ALW1 @ not used at the moment\r
str r1, [r0]\r
\r
-\r
-\r
-\r
-\r
-\r
- ldr r0, =MSC0 \r
+#if 0\r
+ ldr r0, =MSC0\r
ldr r1, = (DEFAULT_RDN<<24) | (DEFAULT_RDF<<20) | (1<<19) | (DEFAULT_RT<<16) | (DEFAULT_RDN<<8) | (DEFAULT_RDF<<4) | (1<<3) | DEFAULT_RT\r
str r1, [r0]\r
+#endif\r
ldr r0, =MSC1\r
ldr r1, =(DEFAULT_RDN<<24) | (DEFAULT_RDF<<20) | (1<<19) | (DEFAULT_RT<<16) | (DAVICOM_RDN<<8) | (DAVICOM_RDF<<4) | (1<<3) | DAVICOM_RT\r
str r1, [r0]\r
\r
-\r
@@@ Compact Flash Setup @@@\r
ldr r0, =MCMEM0\r
- ldr r1, =0x0003c80f @ 4081\r
+ ldr r1, =0x0003c80f @ 4081\r
str r1, [r0]\r
- \r
- ldr r0, =MCATT0 \r
+\r
+ ldr r0, =MCATT0\r
ldr r1, =0x0003c80f\r
str r1, [r0]\r
\r
ldr r0, =MCIO0\r
ldr r1, =0x0003c80f\r
str r1, [r0]\r
- \r
+\r
ldr r0, =CSADRCFG_P\r
ldr r1, =0x003e080C\r
str r1, [r0]\r
\r
ldr r0, =MECR\r
- mov r1, #2 @Set the CIT (Card Is There) bit\r
+ mov r1, #2 @ Set the CIT (Card Is There) bit\r
str r1, [r0]\r
\r
-\r
-\r
-\r
__init_Static_Mem_Contr_end:\r
-\r
-\r
-\r
-\r
-\r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
-@ @\r
-@ @\r
-@ clear the RDH bit in the ASCR register @\r
-@ @\r
-@ @\r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
-\r
-\r
-\r
- ldr r0, =ASCR\r
- ldr r1, [r0]\r
- ldr r2, =0x80000000\r
- bic r1, r1, r2\r
- str r1, [r0]\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
-@ @\r
-@ @\r
-@ undo Reset for DAVICOM @\r
-@ @\r
-@ @\r
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
-\r
-\r
-\r
- ldr r0, =GPCR3\r
- ldr r1, =0x00000080\r
- str r1, [r0]\r
-\r
-\r
-\r
-\r
-\r
- /* ---------------------------------------------------------------- */\r
- /* End lowlevel_init */\r
- /* ---------------------------------------------------------------- */\r
-\r
+ @ assert UP2OCR[HSOE] (enable USB device port2)\r
+ ldr r0, =0x40600020 @ base address of UP2OCR\r
+ ldr r1, [r0]\r
+ orr r1, #(1 << 17) @ UP2OCR_HSOE\r
+ str r1, [r0]\r
+\r
+ @ clear the RDH bit in the ASCR register\r
+ ldr r0, =ASCR\r
+ ldr r1, [r0]\r
+ bic r1, r1, #(1 << 31) @ RDH\r
+ bic r1, r1, #0x7 @ mask off the DxS status bits\r
+ str r1, [r0]\r
+\r
+ @ deassert Reset for DAVICOM\r
+ ldr r0, =GPCR3\r
+ ldr r1, =0x00000080\r
+ str r1, [r0]\r
endlowlevel_init:\r
-\r
mov pc, r8\r
\r
\r
-\r
hal_init_gpio_register:\r
@ r1 = table address\r
@ r2 = register address\r
@ r3 = feature mask\r
\r
- mov r4, #1 @ mask register\r
- mov r5, #0 @ this is the register where the value is composed\r
-\r
+ mov r4, #1 @ mask register\r
+ mov r5, #0 @ this is the register where the value is composed\r
1:\r
- ldrb r6, [r1], #1 @ load table entry, increase pointer\r
- tst r6, r3 @ test the table entry with feature mask\r
- orrne r5, r5, r4 @ OR mask bit to value if Z=0, means bit was 1\r
-\r
- movs r4, r4, lsl #1 @ shift mask bit\r
- bne 1b\r
-\r
- str r5, [r2], #4 @ store register and increase address\r
- mov pc, lr @ jump back to calling function\r
-\r
-\r
+ ldrb r6, [r1], #1 @ load table entry, increase pointer\r
+ tst r6, r3 @ test the table entry with feature mask\r
+ orrne r5, r5, r4 @ OR mask bit to value if Z=0, means bit was 1\r
\r
+ movs r4, r4, lsl #1 @ shift mask bit\r
+ bne 1b\r
\r
-\r
-\r
- \r
+ str r5, [r2], #4 @ store register and increase address\r
+ mov pc, lr @ jump back to calling function\r
\r
.balign 32\r
-\r
-\r
-\r
-__hal_MFPR_init_table: \r
- .short 0x0124, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO0 -> GPIO Input (GPIO0 key)\r
- .short 0x0128, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO1 -> GPIO Input (unused) \r
- .short 0x012C, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO2 -> RDY \r
- .short 0x0130, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO3 -> nCS2 (Ethernet) \r
- .short 0x0134, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO4 -> GPIO Input (unused) \r
- .short 0x028C, 0x0000, AF_SEL_3 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO5 -> nPIOR \r
- .short 0x0290, 0x0000, AF_SEL_3 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO6 -> nPIOW \r
- .short 0x0294, 0x0000, AF_SEL_3 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO7 -> nIOS16\r
- .short 0x0298, 0x0000, AF_SEL_3 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO8 -> nPWAIT \r
- .short 0x029C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO9 -> GPIO Input (USB Power Detect) \r
- .short 0x0458, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO10 -> GPIO Input (USB Cable Detect) \r
- .short 0x02A0, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO11 -> GPIO Input (unused) \r
- .short 0x02A4, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO12 -> GPIO Input (unused) \r
- .short 0x02A8, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO13 -> GPIO Input (unused) \r
- .short 0x02AC, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO14 -> GPIO Output (Backlight Enable) \r
- .short 0x02B0, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO15 -> GPIO Output (nMIC_PWR) \r
- .short 0x02B4, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO16 -> GPIO Input (CF-Card BVD1) \r
- .short 0x02B8, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO17 -> GPIO Input (CF-Card BVD2)\r
- .short 0x02BC, 0x0000, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO18 -> MM1_DAT0\r
- .short 0x02C0, 0x0000, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO19 -> MM1_DAT1\r
- .short 0x02C4, 0x0000, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO20 -> MM1_DAT2\r
- .short 0x02C8, 0x0000, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO21 -> MM1_DAT3\r
- .short 0x02CC, 0x0000, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO22 -> MM1_MMCLK\r
- .short 0x02D0, 0x0000, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO23 -> MM1_MMCMD\r
- .short 0x02D4, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO24 -> GPIO Input (unused)\r
- .short 0x02D8, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO25 -> GPIO Input (unused)\r
- .short 0x02DC, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO26 -> GPIO Input (unused)\r
- .short 0x0400, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO27 -> GPIO Input (unused)\r
- .short 0x0404, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO28 -> GPIO Input (unused)\r
- .short 0x0408, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO29 -> GPIO Input (unused)\r
- .short 0x040C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO30 -> GPIO Input (ETN Wakeup)\r
- .short 0x0410, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO31 -> GPIO Input (ETN Interrupt)\r
- .short 0x0414, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO32 -> SCL\r
- .short 0x0418, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO33 -> SDA\r
- .short 0x041C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO34 -> GPIO Input (AC97 IRQ)\r
- .short 0x0420, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO35 -> AC97_SDATAIN0\r
- .short 0x0424, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO36 -> GPIO Input (unused)\r
- .short 0x0428, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO37 -> AC97_SDATAOUT\r
- .short 0x042C, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO38 -> AC97_SYNC\r
- .short 0x0430, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO39 -> AC97_BITCLK\r
- .short 0x0434, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO40 -> nAC97_Reset\r
- .short 0x0438, 0x0000, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO41 -> FF_RxD\r
- .short 0x043C, 0x0000, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO42 -> FF_TxD\r
- .short 0x0440, 0x0000, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO43 -> FF_CTS \r
- .short 0x0444, 0x0000, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO44 -> FF_DCD\r
- .short 0x0448, 0x0000, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO45 -> FF_DSR\r
- .short 0x044C, 0x0000, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO46 -> FF_RI\r
- .short 0x0450, 0x0000, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO47 -> FF_DTR\r
- .short 0x0454, 0x0000, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO48 -> FF_RTS \r
- .short 0x045C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO49 -> GPIO Input (unused) \r
- .short 0x0460, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO50 -> GPIO Input (unused) \r
- .short 0x0464, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO51 -> GPIO Input (unused) \r
- .short 0x0468, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO52 -> GPIO Input (unused) \r
- .short 0x046C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO53 -> GPIO Input (unused) \r
- .short 0x0470, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO54 -> GPIO Input (unused) \r
- .short 0x0474, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO55 -> GPIO Input (unused) \r
- .short 0x0478, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO56 -> GPIO Input (unused)\r
- .short 0x047C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO57 -> GPIO Input (unused) \r
- .short 0x0480, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO58 -> GPIO Input (unused) \r
- .short 0x0484, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO59 -> GPIO Input (unused)\r
- .short 0x0488, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO60 -> GPIO Input (unused)\r
- .short 0x048C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO61 -> GPIO Input (unused)\r
- .short 0x0490, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO62 -> GPIO Input (unused)\r
- .short 0x04B4, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO63 -> LDD[8] \r
- .short 0x04B8, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO64 -> LDD[9] \r
- .short 0x04BC, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO65 -> LDD[10] \r
- .short 0x04C0, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO66 -> LDD[11] \r
- .short 0x04C4, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO67 -> LDD[12] \r
- .short 0x04C8, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO68 -> LDD[13] \r
- .short 0x04CC, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO69 -> LDD[14] \r
- .short 0x04D0, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO70 -> LDD[15] \r
- .short 0x04D4, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO71 -> LDD[16] \r
- .short 0x04D8, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO72 -> LDD[17] \r
- .short 0x04DC, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO73 -> GPIO Input (LCD Header) \r
- .short 0x04F0, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO74 -> GPIO Input (LCD Header) \r
- .short 0x04F4, 0x0000, AF_SEL_0 | DRIVE_SLOW_10mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO75 -> GPIO Output (userLED red) \r
- .short 0x04F8, 0x0000, AF_SEL_0 | DRIVE_SLOW_10mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO76 -> GPIO Output (userLED green) \r
- .short 0x04FC, 0x0000, AF_SEL_0 | DRIVE_SLOW_10mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO77 -> GPIO Output (userLED red) \r
- .short 0x0500, 0x0000, AF_SEL_0 | DRIVE_SLOW_10mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO78 -> GPIO Output (userLED green) \r
- .short 0x0504, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO79 -> GPIO Input (unused) \r
- .short 0x0508, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO80 -> GPIO Input (unused) \r
- .short 0x050C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO81 -> GPIO Input (unused) \r
- .short 0X0510, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO82 -> GPIO Input (unused) \r
- .short 0X0514, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO83 -> GPIO Input (unused) \r
- .short 0x0518, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO84 -> GPIO Input (unused) \r
- .short 0x051C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO85 -> GPIO Input (unused) \r
- .short 0x0520, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO86 -> GPIO Input (unused) \r
- .short 0x0524, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO87 -> GPIO Input (unused) \r
- .short 0x0528, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO88 -> GPIO Input (unused) \r
- .short 0x052C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO89 -> GPIO Input (unused) \r
- .short 0x0530, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO90 -> GPIO Input (unused) \r
- .short 0x0534, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO91 -> GPIO Input (unused) \r
- .short 0x0538, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO92 -> GPIO Input (unused) \r
- .short 0x053C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO93 -> GPIO Input (unused) \r
- .short 0x0540, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO94 -> GPIO Input (unused) \r
- .short 0x0544, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO95 -> GPIO Input (unused) \r
- .short 0x0548, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO96 -> GPIO Input (unused) \r
- .short 0x054C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO97 -> CF_IREQ_RDY\r
- .short 0x0550, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO98 -> CF_CD \r
- .short 0x0600, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO99 -> CF_RESET \r
- .short 0x0604, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | | PULL_SEL @ MFPR GPIO100 -> GPIO Input (Boot option) \r
- .short 0x0608, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | | PULL_SEL @ MFPR GPIO101 -> GPIO Input (Boot option) \r
- .short 0x060C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | | PULL_SEL @ MFPR GPIO102 -> GPIO Input (Boot option) \r
- .short 0x0610, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO103 -> GPIO Output (ETN_RST)\r
- .short 0x0614, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO104 -> GPIO Output (nSD_PWR)\r
- .short 0x0618, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO105 -> GPIO Input (nSD_CD) \r
- .short 0x061C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO106 -> GPIO Input (nSD_WP) \r
- .short 0x0620, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO107 -> ICP_TxD \r
- .short 0x0624, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO108 -> ICP_RxD \r
- .short 0x0628, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO109 -> BT_RTS \r
- .short 0x062C, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO110 -> BT_RxD \r
- .short 0x0630, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO111 -> BT_TxD \r
- .short 0x0634, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO112 -> BT_CTS \r
- .short 0x0638, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO113 -> GPIO Input (unused) \r
- .short 0x063C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO114 -> GPIO Input (unused) \r
- .short 0x0640, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO115 -> GPIO Input (unused) \r
- .short 0x0644, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO116 -> GPIO Input (unused) \r
- .short 0x0648, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO117 -> GPIO Input (unused) \r
- .short 0x064C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO118 -> GPIO Input (unused) \r
- .short 0x0650, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO119 -> GPIO Input (unused) \r
- .short 0x0654, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO120 -> GPIO Input (unused) \r
- .short 0x0658, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO121 -> GPIO Input (unused) \r
- .short 0x065C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO122 -> GPIO Input (unused) \r
- .short 0x0660, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO123 -> GPIO Input (unused) \r
- .short 0x0664, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO124 -> GPIO Input (unused) \r
- .short 0x0668, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO125 -> GPIO Input (unused) \r
- .short 0x066C, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO126 -> GPIO Input (unused) \r
- .short 0x0670, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO127 -> GPIO Input (User Key) \r
- \r
- .short 0x0674, 0x0000, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO0_2 -> 1Wire \r
- .short 0x0678, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO1_2 -> unused \r
- .short 0x067C, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO2_2 -> GPIO Output (USBHPEN1 USB Host Power Enable)\r
- .short 0x0680, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO3_2 -> GPIO Input (USBHPWR1 USB Host Power Fault)\r
- .short 0x0684, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO4_2 -> GPIO Input (unused) \r
- .short 0x0688, 0x0000, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO5_2 -> GPIO Input (unused) \r
- .short 0x0494, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO6_2 -> LDD[0] \r
- .short 0x0498, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO7_2 -> LDD[1] \r
- .short 0x049C, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO9_2 -> LDD[2] \r
- .short 0x04A0, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO9_2 -> LDD[3] \r
- .short 0x04A4, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO10_2 -> LDD[4] \r
- .short 0x04A8, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO11_2 -> LDD[5] \r
- .short 0x04AC, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO12_2 -> LDD[6] \r
- .short 0x04B0, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO13_2 -> LDD[7] \r
- .short 0x04E0, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO14_2 -> FCLK \r
- .short 0x04E4, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO15_2 -> LCLK \r
- .short 0x04E8, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO16_2 -> PCLK \r
- .short 0x04EC, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO17_2 -> BIAS \r
-\r
-\r
-\r
-\r
-\r
-\r
-@@ .short 0x23C, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ADDR0\r
-@@ .short 0x240, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ADDR1\r
-@@ .short 0x244, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ADDR2\r
-@@ .short 0x248, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ADDR3 \r
-@@ .short 0x238, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ nLLA\r
-@@ .short 0x204, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_CLE_NOE\r
-@@ .short 0x208, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ALE_WE1\r
-@@ .short 0x20C, 0x0000, AF_SEL_1 | EDGE_CLEAR @ Reserved (INTEL BBU writes this value)\r
-@@ .short 0x210, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_SCLK_E\r
-@@ .short 0x214, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ nBE0\r
-@@ .short 0x218, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ nBE1\r
-@@ .short 0x21C, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ALE_WE2 \r
-@@ .short 0x220, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_INT_RnB\r
-@@ .short 0x224, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ DF_nCS0\r
-@@ .short 0x228, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ DF_nCS1\r
-@@ .short 0x22C, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ DF_nWE\r
-@@ .short 0x230, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ DF_nRE\r
-@@ .short 0x234, 0x0000, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ nLUA\r
- .short 0x0000, 0x0000, 0x0000 @ table end \r
- \r
- \r
-\r
-\r
-\r
- .equ GPIO_DIR_INPUT, 0\r
- .equ GPIO_DIR_OUTPUT, 1\r
- .equ GPIO_LOW, 0\r
- .equ GPIO_HIGH, 2\r
- .equ GPIO_REDGE, 0x80\r
- .equ GPIO_FEDGE, 0x40\r
- .equ GPIO_NOEDGE, 0\r
- \r
-\r
-\r
-\r
+__hal_MFPR_init_table:\r
+ .short 0x00CC, 1 @ MFPR EMPI SCLK (see Spec. Update Rev 0.75 page 93)\r
+ .short 0x0124, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO0 -> GPIO Input (GPIO0 key)\r
+ .short 0x0128, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO1 -> GPIO Input (unused)\r
+ .short 0x012C, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO2 -> RDY\r
+ .short 0x0130, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO3 -> nCS2 (Ethernet)\r
+ .short 0x0134, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO4 -> GPIO Input (unused)\r
+ .short 0x028C, AF_SEL_3 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO5 -> nPIOR\r
+ .short 0x0290, AF_SEL_3 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO6 -> nPIOW\r
+ .short 0x0294, AF_SEL_3 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO7 -> nIOS16\r
+ .short 0x0298, AF_SEL_3 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO8 -> nPWAIT\r
+ .short 0x029C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO9 -> GPIO Input (USB Power Detect)\r
+ .short 0x0458, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO10 -> GPIO Input (USB Cable Detect)\r
+ .short 0x02A0, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO11 -> GPIO Input (unused)\r
+ .short 0x02A4, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO12 -> GPIO Input (unused)\r
+ .short 0x02A8, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO13 -> GPIO Input (unused)\r
+ .short 0x02AC, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO14 -> GPIO Output (Backlight Enable)\r
+ .short 0x02B0, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO15 -> GPIO Output (nMIC_PWR)\r
+ .short 0x02B4, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO16 -> GPIO Input (CF-Card BVD1)\r
+ .short 0x02B8, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO17 -> GPIO Input (CF-Card BVD2)\r
+ .short 0x02BC, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO18 -> MM1_DAT0\r
+ .short 0x02C0, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO19 -> MM1_DAT1\r
+ .short 0x02C4, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO20 -> MM1_DAT2\r
+ .short 0x02C8, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO21 -> MM1_DAT3\r
+ .short 0x02CC, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO22 -> MM1_MMCLK\r
+ .short 0x02D0, AF_SEL_4 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO23 -> MM1_MMCMD\r
+ .short 0x02D4, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO24 -> GPIO Input (unused)\r
+ .short 0x02D8, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO25 -> GPIO Input (unused)\r
+ .short 0x02DC, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO26 -> GPIO Input (unused)\r
+ .short 0x0400, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO27 -> GPIO Input (unused)\r
+ .short 0x0404, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO28 -> GPIO Input (unused)\r
+ .short 0x0408, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO29 -> GPIO Input (unused)\r
+ .short 0x040C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO30 -> GPIO Input (ETN Wakeup)\r
+ .short 0x0410, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO31 -> GPIO Input (ETN Interrupt)\r
+ .short 0x0414, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO32 -> SCL\r
+ .short 0x0418, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO33 -> SDA\r
+ .short 0x041C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO34 -> GPIO Input (AC97 IRQ)\r
+ .short 0x0420, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO35 -> AC97_SDATAIN0\r
+ .short 0x0424, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO36 -> GPIO Input (unused)\r
+ .short 0x0428, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO37 -> AC97_SDATAOUT\r
+ .short 0x042C, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO38 -> AC97_SYNC\r
+ .short 0x0430, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO39 -> AC97_BITCLK\r
+ .short 0x0434, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO40 -> nAC97_Reset\r
+ .short 0x0438, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO41 -> FF_RxD\r
+ .short 0x043C, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO42 -> FF_TxD\r
+ .short 0x0440, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO43 -> FF_CTS\r
+ .short 0x0444, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO44 -> FF_DCD\r
+ .short 0x0448, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO45 -> FF_DSR\r
+ .short 0x044C, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO46 -> FF_RI\r
+ .short 0x0450, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO47 -> FF_DTR\r
+ .short 0x0454, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO48 -> FF_RTS\r
+ .short 0x045C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO49 -> GPIO Input (unused)\r
+ .short 0x0460, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO50 -> GPIO Input (unused)\r
+ .short 0x0464, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO51 -> GPIO Input (unused)\r
+ .short 0x0468, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO52 -> GPIO Input (unused)\r
+ .short 0x046C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO53 -> GPIO Input (unused)\r
+ .short 0x0470, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO54 -> GPIO Input (unused)\r
+ .short 0x0474, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO55 -> GPIO Input (unused)\r
+ .short 0x0478, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO56 -> GPIO Input (unused)\r
+ .short 0x047C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO57 -> GPIO Input (unused)\r
+ .short 0x0480, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO58 -> GPIO Input (unused)\r
+ .short 0x0484, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO59 -> GPIO Input (unused)\r
+ .short 0x0488, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO60 -> GPIO Input (unused)\r
+ .short 0x048C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO61 -> GPIO Input (unused)\r
+ .short 0x0490, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO62 -> GPIO Input (unused)\r
+ .short 0x04B4, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO63 -> LDD[8]\r
+ .short 0x04B8, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO64 -> LDD[9]\r
+ .short 0x04BC, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO65 -> LDD[10]\r
+ .short 0x04C0, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO66 -> LDD[11]\r
+ .short 0x04C4, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO67 -> LDD[12]\r
+ .short 0x04C8, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO68 -> LDD[13]\r
+ .short 0x04CC, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO69 -> LDD[14]\r
+ .short 0x04D0, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO70 -> LDD[15]\r
+ .short 0x04D4, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO71 -> LDD[16]\r
+ .short 0x04D8, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO72 -> LDD[17]\r
+ .short 0x04DC, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO73 -> GPIO Input (LCD Header)\r
+ .short 0x04F0, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO74 -> GPIO Input (LCD Header)\r
+ .short 0x04F4, AF_SEL_0 | DRIVE_SLOW_10mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO75 -> GPIO Output (userLED red)\r
+ .short 0x04F8, AF_SEL_0 | DRIVE_SLOW_10mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO76 -> GPIO Output (userLED green)\r
+ .short 0x04FC, AF_SEL_0 | DRIVE_SLOW_10mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO77 -> GPIO Output (userLED red)\r
+ .short 0x0500, AF_SEL_0 | DRIVE_SLOW_10mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO78 -> GPIO Output (userLED green)\r
+ .short 0x0504, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO79 -> GPIO Input (unused)\r
+ .short 0x0508, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO80 -> GPIO Input (unused)\r
+ .short 0x050C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO81 -> GPIO Input (unused)\r
+ .short 0X0510, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO82 -> GPIO Input (unused)\r
+ .short 0X0514, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO83 -> GPIO Input (unused)\r
+ .short 0x0518, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO84 -> GPIO Input (unused)\r
+ .short 0x051C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO85 -> GPIO Input (unused)\r
+ .short 0x0520, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO86 -> GPIO Input (unused)\r
+ .short 0x0524, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO87 -> GPIO Input (unused)\r
+ .short 0x0528, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO88 -> GPIO Input (unused)\r
+ .short 0x052C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO89 -> GPIO Input (unused)\r
+ .short 0x0530, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO90 -> GPIO Input (unused)\r
+ .short 0x0534, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO91 -> GPIO Input (unused)\r
+ .short 0x0538, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO92 -> GPIO Input (unused)\r
+ .short 0x053C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO93 -> GPIO Input (unused)\r
+ .short 0x0540, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO94 -> GPIO Input (unused)\r
+ .short 0x0544, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO95 -> GPIO Input (unused)\r
+ .short 0x0548, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO96 -> GPIO Input (unused)\r
+ .short 0x054C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO97 -> CF_IREQ_RDY\r
+ .short 0x0550, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO98 -> CF_CD\r
+ .short 0x0600, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO99 -> CF_RESET\r
+ .short 0x0604, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULL_SEL @ MFPR GPIO100 -> GPIO Input (Boot option)\r
+ .short 0x0608, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULL_SEL @ MFPR GPIO101 -> GPIO Input (Boot option)\r
+ .short 0x060C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULL_SEL @ MFPR GPIO102 -> GPIO Input (Boot option)\r
+ .short 0x0610, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO103 -> GPIO Output (ETN_RST)\r
+ .short 0x0614, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO104 -> GPIO Output (nSD_PWR)\r
+ .short 0x0618, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO105 -> GPIO Input (nSD_CD)\r
+ .short 0x061C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO106 -> GPIO Input (nSD_WP)\r
+ .short 0x0620, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO107 -> ICP_TxD\r
+ .short 0x0624, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO108 -> ICP_RxD\r
+ .short 0x0628, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO109 -> BT_RTS\r
+ .short 0x062C, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO110 -> BT_RxD\r
+ .short 0x0630, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO111 -> BT_TxD\r
+ .short 0x0634, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO112 -> BT_CTS\r
+ .short 0x0638, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO113 -> GPIO Input (unused)\r
+ .short 0x063C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO114 -> GPIO Input (unused)\r
+ .short 0x0640, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO115 -> GPIO Input (unused)\r
+ .short 0x0644, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO116 -> GPIO Input (unused)\r
+ .short 0x0648, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO117 -> GPIO Input (unused)\r
+ .short 0x064C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO118 -> GPIO Input (unused)\r
+ .short 0x0650, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO119 -> GPIO Input (unused)\r
+ .short 0x0654, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO120 -> GPIO Input (unused)\r
+ .short 0x0658, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO121 -> GPIO Input (unused)\r
+ .short 0x065C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO122 -> GPIO Input (unused)\r
+ .short 0x0660, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO123 -> GPIO Input (unused)\r
+ .short 0x0664, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO124 -> GPIO Input (unused)\r
+ .short 0x0668, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO125 -> GPIO Input (unused)\r
+ .short 0x066C, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO126 -> GPIO Input (unused)\r
+ .short 0x0670, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO127 -> GPIO Input (User Key)\r
+\r
+ .short 0x0674, AF_SEL_2 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO0_2 -> 1Wire\r
+ .short 0x0678, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO1_2 -> unused\r
+ .short 0x067C, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO2_2 -> GPIO Output (USBHPEN1 USB Host Power Enable)\r
+ .short 0x0680, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ MFPR GPIO3_2 -> GPIO Input (USBHPWR1 USB Host Power Fault)\r
+ .short 0x0684, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO4_2 -> GPIO Input (unused)\r
+ .short 0x0688, AF_SEL_0 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO5_2 -> GPIO Input (unused)\r
+ .short 0x0494, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO6_2 -> LDD[0]\r
+ .short 0x0498, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO7_2 -> LDD[1]\r
+ .short 0x049C, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO9_2 -> LDD[2]\r
+ .short 0x04A0, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO9_2 -> LDD[3]\r
+ .short 0x04A4, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO10_2 -> LDD[4]\r
+ .short 0x04A8, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO11_2 -> LDD[5]\r
+ .short 0x04AC, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO12_2 -> LDD[6]\r
+ .short 0x04B0, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO13_2 -> LDD[7]\r
+ .short 0x04E0, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO14_2 -> FCLK\r
+ .short 0x04E4, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO15_2 -> LCLK\r
+ .short 0x04E8, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO16_2 -> PCLK\r
+ .short 0x04EC, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ MFPR GPIO17_2 -> BIAS\r
+\r
+@@ .short 0x023C, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ADDR0\r
+@@ .short 0x0240, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ADDR1\r
+@@ .short 0x0244, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ADDR2\r
+@@ .short 0x0248, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ADDR3\r
+@@ .short 0x0238, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ nLLA\r
+@@ .short 0x0204, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_CLE_NOE\r
+@@ .short 0x0208, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ALE_WE1\r
+@@ .short 0x020C, AF_SEL_1 | EDGE_CLEAR @ Reserved (INTEL BBU writes this value)\r
+@@ .short 0x0210, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_SCLK_E\r
+@@ .short 0x0214, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ nBE0\r
+@@ .short 0x0218, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ nBE1\r
+@@ .short 0x021C, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_ALE_WE2\r
+@@ .short 0x0220, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLDOWN_EN | PULL_SEL @ DF_INT_RnB\r
+@@ .short 0x0224, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ DF_nCS0\r
+@@ .short 0x0228, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ DF_nCS1\r
+@@ .short 0x022C, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ DF_nWE\r
+@@ .short 0x0230, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ DF_nRE\r
+@@ .short 0x0234, AF_SEL_1 | DRIVE_FAST_4mA | EDGE_CLEAR | PULLUP_EN | PULL_SEL @ nLUA\r
+ .short 0x0000, 0x0000 @ table end\r
+\r
+ .equ GPIO_DIR_INPUT, 0x00\r
+ .equ GPIO_DIR_OUTPUT, 0x01\r
+ .equ GPIO_LOW, 0x00\r
+ .equ GPIO_HIGH, 0x02\r
+ .equ GPIO_REDGE, 0x80\r
+ .equ GPIO_FEDGE, 0x40\r
+ .equ GPIO_NOEDGE, 0x00\r
\r
.balign 4\r
-__hal_gpio_init_table_0: \r
-/*GPIO 0 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO0 -> GPIO Input (user key) \r
-/*GPIO 1 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO1 -> unused \r
-/*GPIO 2 */ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO2 -> GPIO Output (USBHPEN1 USB Host Power Enable) \r
-/*GPIO 3 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO3 -> GPIO Input (USBHPWR1 USB Host Power Fault) \r
-/*GPIO 4 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO4 -> unused \r
-/*GPIO 5 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO5 -> unused \r
-/*GPIO 6 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO6 -> unused \r
-/*GPIO 7 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO7 -> unused \r
-/*GPIO 8 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO8 -> unused \r
-/*GPIO 9 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO9 -> GPIO Input (USB Power Detect) \r
-/*GPIO 10 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO10 -> GPIO Input (USB Cable Detect) \r
-/*GPIO 11 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO11 -> input \r
-/*GPIO 12 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO12 -> input \r
-/*GPIO 13 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO13 -> input \r
-/*GPIO 14 */ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO14 -> GPIO Output (Backlight Enable) \r
-/*GPIO 15 */ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO15 -> GPIO Output (nMIC_PWR) \r
-/*GPIO 16 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO16 -> GPIO Input (CF-Card BVD1) \r
-/*GPIO 17 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO17 -> GPIO Input (CF-Card BVD2) \r
-/*GPIO 18 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO18 -> unused \r
-/*GPIO 19 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO19 -> unused \r
-/*GPIO 20 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO20 -> unused \r
-/*GPIO 21 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO21 -> unused \r
-/*GPIO 22 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO22 -> unused \r
-/*GPIO 23 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO23 -> unused \r
-/*GPIO 24 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO24 -> unused \r
-/*GPIO 25 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO25 -> unused \r
-/*GPIO 26 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO26 -> unused \r
-/*GPIO 27 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO27 -> unused \r
-/*GPIO 28 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO28 -> unused \r
-/*GPIO 29 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO29 -> unused \r
-/*GPIO 30 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO30 -> GPIO Input (ETN Wakeup) \r
-/*GPIO 31 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO31 -> GPIO Input (ETN Interrupt) \r
-\r
-__hal_gpio_init_table_32: \r
-/*GPIO 32 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO32 -> unused \r
-/*GPIO 33 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO33 -> unused \r
-/*GPIO 34 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO34 -> unused \r
-/*GPIO 35 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO35 -> unused \r
-/*GPIO 36 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO36 -> unused \r
-/*GPIO 37 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO37 -> unused \r
-/*GPIO 38 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO38 -> unused \r
-/*GPIO 39 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO39 -> unused \r
-/*GPIO 40 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO40 -> unused \r
-/*GPIO 41 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO41 -> unused \r
-/*GPIO 42 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO42 -> unused \r
-/*GPIO 43 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO43 -> unused \r
-/*GPIO 44 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO44 -> unused \r
-/*GPIO 45 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO45 -> unused \r
-/*GPIO 46 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO46 -> unused \r
-/*GPIO 47 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO47 -> unused \r
-/*GPIO 48 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO48 -> unused \r
-/*GPIO 49 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO49 -> unused \r
-/*GPIO 50 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO50 -> unused \r
-/*GPIO 51 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO51 -> unused \r
-/*GPIO 52 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO52 -> unused \r
-/*GPIO 53 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO53 -> unused \r
-/*GPIO 54 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO54 -> unused \r
-/*GPIO 55 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO55 -> unused \r
-/*GPIO 56 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO56 -> unused \r
-/*GPIO 57 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO57 -> unused \r
-/*GPIO 58 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO58 -> unused \r
-/*GPIO 59 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO59 -> unused \r
-/*GPIO 60 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO60 -> unused \r
-/*GPIO 61 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO61 -> unused \r
-/*GPIO 62 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO62 -> unused \r
-/*GPIO 63 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO63 -> unused \r
-\r
-__hal_gpio_init_table_64: \r
-/*GPIO 64 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO64 -> unused \r
-/*GPIO 65 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO65 -> unused \r
-/*GPIO 66 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO66 -> unused \r
-/*GPIO 67 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO67 -> unused \r
-/*GPIO 68 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO68 -> unused \r
-/*GPIO 69 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO69 -> unused \r
-/*GPIO 70 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO70 -> unused \r
-/*GPIO 71 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO71 -> unused \r
-/*GPIO 72 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO72 -> unused \r
-/*GPIO 73 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO73 -> GPIO Input (LCD Header) \r
-/*GPIO 74 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO74 -> GPIO Input (LCD Header) \r
-/*GPIO 75 */ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO75 -> GPIO Output (userLED red) \r
-/*GPIO 76 */ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO76 -> GPIO Output (userLED green) \r
-/*GPIO 77 */ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO77 -> GPIO Output (userLED red) \r
-/*GPIO 78 */ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO78 -> GPIO Output (userLED green) \r
-/*GPIO 79 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO79 -> unused \r
-/*GPIO 80 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO80 -> unused \r
-/*GPIO 81 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO81 -> unused \r
-/*GPIO 82 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO82 -> unused \r
-/*GPIO 83 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO83 -> unused \r
-/*GPIO 84 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO84 -> unused \r
-/*GPIO 85 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO85 -> unused \r
-/*GPIO 86 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO86 -> unused \r
-/*GPIO 87 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO87 -> unused \r
-/*GPIO 88 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO88 -> unused \r
-/*GPIO 89 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO89 -> unused \r
-/*GPIO 90 */ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO90 -> unused Test Test Test Test Test Test Test Test Test \r
-/*GPIO 91 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO91 -> unused \r
-/*GPIO 92 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO92 -> unused \r
-/*GPIO 93 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO93 -> unused \r
-/*GPIO 94 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO94 -> unused \r
-/*GPIO 95 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO95 -> unused \r
-\r
-__hal_gpio_init_table_96: \r
-/*GPIO 96 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO96 -> unused \r
-/*GPIO 97 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO97 -> GPIO Input (CF_IREQ_RDY) \r
-/*GPIO 98 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO98 -> GPIO Input (CF_CD) \r
-/*GPIO 99 */ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO99 -> GPIO Output (CF_RESET) \r
-/*GPIO 100 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO100 -> GPIO Input (Boot option) \r
-/*GPIO 101 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO101 -> GPIO Input (Boot option) \r
-/*GPIO 102 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO102 -> GPIO Input (Boot option) \r
-/*GPIO 103 */ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO103 -> GPIO Output (ETN_RST) \r
-/*GPIO 104 */ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO104 -> GPIO Output (nSD_PWR) \r
-/*GPIO 105 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO105 -> GPIO Input (nSD_CD) \r
-/*GPIO 106 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO106 -> GPIO Input (nSD_WP) \r
-/*GPIO 107 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO107 -> unused \r
-/*GPIO 108 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO108 -> unused \r
-/*GPIO 109 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO109 -> unused \r
-/*GPIO 110 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO110 -> unused \r
-/*GPIO 111 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO111 -> unused \r
-/*GPIO 112 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO112 -> unused \r
-/*GPIO 113 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO113 -> unused \r
-/*GPIO 114 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO114 -> unused \r
-/*GPIO 115 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO115 -> unused \r
-/*GPIO 116 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO116 -> unused \r
-/*GPIO 117 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO117 -> unused \r
-/*GPIO 118 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO118 -> unused \r
-/*GPIO 119 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO119 -> unused \r
-/*GPIO 120 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO120 -> unused \r
-/*GPIO 121 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO121 -> unused \r
-/*GPIO 122 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO122 -> unused \r
-/*GPIO 123 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO123 -> unused \r
-/*GPIO 124 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO124 -> unused \r
-/*GPIO 125 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO125 -> unused \r
-/*GPIO 126 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO126 -> unused \r
-/*GPIO 127 */ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO127 -> GPIO Input (User Key) \r
- \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
+__hal_gpio_init_table_0:\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO0 -> GPIO Input (user key)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO1 -> unused\r
+ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO2 -> GPIO Output (USBHPEN1 USB Host Power Enable)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO3 -> GPIO Input (USBHPWR1 USB Host Power Fault)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO4 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO5 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO6 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO7 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO8 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO9 -> GPIO Input (USB Power Detect)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO10 -> GPIO Input (USB Cable Detect)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO11 -> input\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO12 -> input\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO13 -> input\r
+ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO14 -> GPIO Output (Backlight Enable)\r
+ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO15 -> GPIO Output (nMIC_PWR)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO16 -> GPIO Input (CF-Card BVD1)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO17 -> GPIO Input (CF-Card BVD2)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO18 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO19 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO20 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO21 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO22 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO23 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO24 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO25 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO26 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO27 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO28 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO29 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO30 -> GPIO Input (ETN Wakeup)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO31 -> GPIO Input (ETN Interrupt)\r
+\r
+__hal_gpio_init_table_32:\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO32 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO33 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO34 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO35 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO36 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO37 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO38 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO39 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO40 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO41 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO42 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO43 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO44 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO45 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO46 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO47 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO48 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO49 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO50 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO51 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO52 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO53 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO54 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO55 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO56 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO57 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO58 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO59 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO60 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO61 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO62 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO63 -> unused\r
+\r
+__hal_gpio_init_table_64:\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO64 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO65 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO66 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO67 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO68 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO69 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO70 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO71 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO72 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO73 -> GPIO Input (LCD Header)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO74 -> GPIO Input (LCD Header)\r
+ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO75 -> GPIO Output (userLED red)\r
+ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO76 -> GPIO Output (userLED green)\r
+ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO77 -> GPIO Output (userLED red)\r
+ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO78 -> GPIO Output (userLED green)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO79 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO80 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO81 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO82 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO83 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO84 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO85 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO86 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO87 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO88 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO89 -> unused\r
+ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO90 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO91 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO92 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO93 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO94 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO95 -> unused\r
+\r
+__hal_gpio_init_table_96:\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO96 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO97 -> GPIO Input (CF_IREQ_RDY)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO98 -> GPIO Input (CF_CD)\r
+ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO99 -> GPIO Output (CF_RESET)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO100 -> GPIO Input (Boot option)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO101 -> GPIO Input (Boot option)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO102 -> GPIO Input (Boot option)\r
+ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO103 -> GPIO Output (ETN_RST)\r
+ .byte GPIO_DIR_OUTPUT | GPIO_NOEDGE | GPIO_HIGH @ GPIO104 -> GPIO Output (nSD_PWR)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO105 -> GPIO Input (nSD_CD)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO106 -> GPIO Input (nSD_WP)\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO107 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO108 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO109 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO110 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO111 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO112 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO113 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO114 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO115 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO116 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO117 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO118 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO119 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO120 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO121 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO122 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO123 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO124 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO125 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO126 -> unused\r
+ .byte GPIO_DIR_INPUT | GPIO_NOEDGE | GPIO_LOW @ GPIO127 -> GPIO Input (User Key)\r