// 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
init_clock_start:
init_clock
+ LCD_GPIO_INIT
LED_INIT
LED_BLINK #1
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