]> git.kernelconcepts.de Git - karo-tx-redboot.git/blobdiff - packages/hal/arm/mx25/karo/v1_0/include/hal_platform_setup.h
Added TX25 bootsplash support
[karo-tx-redboot.git] / packages / hal / arm / mx25 / karo / v1_0 / include / hal_platform_setup.h
index fa389c1677eead5ba38fe69912e8f14cb115fa7e..b43469adc43b41b155b040073906ef537c77f5bb 100644 (file)
@@ -99,8 +99,9 @@
        // GPIO_DR
        mov     r9, \val
        cmp     r9, #0
-       movne   r9, #(1 << DEBUG_LED_BIT)  // LED ON
-       moveq   r9, #0  // LED OFF
+       ldr     r9, [r10, #GPIO_DR]
+       orne    r9, #(1 << DEBUG_LED_BIT)  // LED ON
+       biceq   r9, #(1 << DEBUG_LED_BIT)  // LED OFF
        str     r9, [r10, #GPIO_DR]
        .endm
 
        // initialize GPIO2[7] (Pad A21) for LED on STK5
        ldr     r10, GPIO2_BASE_ADDR_W
        // GPIO_GDIR
-       mov     r9, #(1 << DEBUG_LED_BIT)
+       ldr     r9, [r10, #GPIO_GDIR]
+       orr     r9, #(1 << DEBUG_LED_BIT)
        str     r9, [r10, #GPIO_GDIR]
 
        ldr     r10, IOMUXC_BASE_ADDR_W
 
        ldr     r10, GPIO2_BASE_ADDR_W
        // GPIO_DR
-       mov     r9, #(1 << DEBUG_LED_BIT)  // LED ON
+       ldr     r9, [r10, #GPIO_DR]
+       orr     r9, #(1 << DEBUG_LED_BIT)  // LED ON
        str     r9, [r10, #GPIO_DR]
        .endm
 
+       .macro LCD_GPIO_INIT
+#ifdef CYGHWR_TX25_BOOTSPLASH
+       ldr     r10, IOMUXC_BASE_ADDR_W
+
+       mov     r9, #1
+       str     r9, [r10, #0x088]
+       str     r9, [r10, #0x08c]
+
+       mov     r9, #0
+       str     r9, [r10, #0x0c8]
+       str     r9, [r10, #0x0cc]
+       str     r9, [r10, #0x0d0]
+       str     r9, [r10, #0x0d4]
+       str     r9, [r10, #0x0d8]
+       str     r9, [r10, #0x0dc]
+       str     r9, [r10, #0x0e0]
+       str     r9, [r10, #0x0e4]
+       str     r9, [r10, #0x0e8]
+       str     r9, [r10, #0x0ec]
+       str     r9, [r10, #0x0f0]
+       str     r9, [r10, #0x0f4]
+       str     r9, [r10, #0x0f8]
+       str     r9, [r10, #0x0fc]
+       str     r9, [r10, #0x100]
+       str     r9, [r10, #0x104]
+       str     r9, [r10, #0x108]
+       str     r9, [r10, #0x10c]
+       str     r9, [r10, #0x110]
+       str     r9, [r10, #0x114]
+
+       mov     r9, #5
+       str     r9, [r10, #0x11c]       /* configure PAD_PWM as GPIO1_26 LCD_BACKLIGHT */
+       str     r9, [r10, #0x020]       /* dto. for PAD_A18 (GPIO2_4) LCD_RESET */
+       str     r9, [r10, #0x024]       /* dto. for PAD_A19 (GPIO2_5) LCD_POWER */
+
+       ldr     r10, GPIO1_BASE_ADDR_W
+
+       ldr     r9, [r10, #GPIO_DR]
+       orr     r9, #(1 << (LCD_BACKLIGHT_GPIO % 32))
+       str     r9, [r10, #GPIO_DR]
+
+       ldr     r9, [r10, #GPIO_GDIR]
+       orr     r9, #(1 << (LCD_BACKLIGHT_GPIO % 32))
+       str     r9, [r10, #GPIO_GDIR]
+
+       ldr     r10, GPIO2_BASE_ADDR_W
+
+       ldr     r9, [r10, #GPIO_DR]
+       bic     r9, #(1 << (LCD_POWER_GPIO % 32) | (1 << (LCD_RESET_GPIO % 32)))
+       str     r9, [r10, #GPIO_DR]
+
+       ldr     r9, [r10, #GPIO_GDIR]
+       orr     r9, #((1 << (LCD_POWER_GPIO % 32)) | (1 << (LCD_RESET_GPIO % 32)))
+       str     r9, [r10, #GPIO_GDIR]
+
+#endif
+       .endm
+
 // This macro represents the initial startup code for the platform
 // r11 is reserved to contain chip rev info in this file
        .macro  _platform_setup1
@@ -231,6 +292,7 @@ init_m3if_start:
 init_clock_start:
        init_clock
 
+       LCD_GPIO_INIT
        LED_INIT
        LED_BLINK #1
 
@@ -863,6 +925,7 @@ ESDCTL_CMD_PRECHARGE:       .word   ESDCTLVAL | ESDCTL_PCHG
 ESDCTL_CMD_MODEREG:    .word   ESDCTLVAL | ESDCTL_LMOD
 ESDCTL_CONFIG:         .word   ESDCFGVAL
 IOMUXC_BASE_ADDR_W:    .word   IOMUXC_BASE_ADDR
+GPIO1_BASE_ADDR_W:     .word   GPIO1_BASE_ADDR
 GPIO2_BASE_ADDR_W:     .word   GPIO2_BASE_ADDR
 #ifdef USE_SERIAL
 UART1_BASE_ADDR_W:     .word   UART1_BASE_ADDR