Modified IBL to re-init PLL in DDR controller, added UART
[keystone-rtos/ibl.git] / src / hw / uart / c66x_uart / evmc66x_uart.h
old mode 100644 (file)
new mode 100755 (executable)
index 1efe606..a638eaf
@@ -1,37 +1,37 @@
 /******************************************************************************
  * Copyright (c) 2011 Texas Instruments Incorporated - http://www.ti.com
- * 
- *  Redistribution and use in source and binary forms, with or without 
- *  modification, are permitted provided that the following conditions 
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
  *  are met:
  *
- *    Redistributions of source code must retain the above copyright 
+ *    Redistributions of source code must retain the above copyright
  *    notice, this list of conditions and the following disclaimer.
  *
  *    Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the 
- *    documentation and/or other materials provided with the   
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
  *    distribution.
  *
  *    Neither the name of Texas Instruments Incorporated nor the names of
  *    its contributors may be used to endorse or promote products derived
  *    from this software without specific prior written permission.
  *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
+ *
  *****************************************************************************/
-/******************************************************************************        
+
+/******************************************************************************
  *
  * File        Name:   evmc66x_i2c_uart.h
  *
  ******************************************************************************/
 #ifndef        _EVM66X_I2C_UART_H_
 #define        _EVM66X_I2C_UART_H_
+#include <stdint.h>
+
+#define UART_REGS_BASE            (0x02540000)
+
+/**************************************************************************\
+* Register Overlay Structure
+\**************************************************************************/
+typedef struct  {
+    volatile uint32_t RBR;
+    volatile uint32_t IER;
+    volatile uint32_t IIR;
+    volatile uint32_t LCR;
+    volatile uint32_t MCR;
+    volatile uint32_t LSR;
+    volatile uint32_t MSR;
+    volatile uint32_t SCR;
+    volatile uint32_t DLL;
+    volatile uint32_t DLH;
+    volatile uint32_t REVID1;
+    volatile uint32_t REVID2;
+    volatile uint32_t PWREMU_MGMT;
+    volatile uint32_t MDR;
+} UartRegs;
 
 /************************
  * Defines and Macros
  ************************/
-// Mask        to enable DLL and DLM
+/* Mask        to enable DLL and DLM */
 #define        DLAB            (0x80)                  // Way to swap mem banks
 
-// for 19200 baudrate for crystal clock        14.7456 MHz
+/* for 19200 baudrate for crystal clock        14.7456 MHz*/
 #define        DLL_VAL         (0x30)
 #define        DLM_VAL         (0x00)
 
-// Macros to be        used for setting baudrate
+/* Macros to be        used for setting baudrate */
 #define        BAUD_RATE_9600          (0x0060)
 #define        BAUD_RATE_19200         (0x0030)
 #define        BAUD_RATE_56000         (0x0010)
 #define        BAUD_RATE_115200        (0x0008)
 
-#define hUartRegs    ((CSL_UartRegs*) CSL_UART_REGS)
+#define hUartRegs    ((UartRegs*) UART_REGS_BASE)
 
+/* Following 2 lines are added due to CSL3.x tools limitations */
+#define THR RBR   /* RBR & THR have same offset */
+#define FCR IIR   /* IIR & FCR have same offset */
+
+#define UART_LSR_THRE_MASK (0x00000020u)
+#define UART_THR_DATA_MASK (0x000000FFu)
 
 /************************
  * Function declarations
 ************************/
-void UartInit(void);
-void UartSetBaudRate(uint16_t uiBaudRate);
-uint16_t UartReadBaudRate(void);
-uint8_t UartReadData(void);
-void UartWriteData(uint8_t uchByte);
-Bool UartIsDataReady(void);
-#endif // _EVM66X_I2C_UART_H_
-
+void uart_init(void);
+void uart_write_string(uint8_t * str, uint32_t length);
+#endif /* _EVM66X_I2C_UART_H_ */