* arch/arm/src/kl/hardware/kl_uart.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
#ifndef __ARCH_ARM_SRC_KL_HARDWARE_KL_UART_H
#define __ARCH_ARM_SRC_KL_HARDWARE_KL_UART_H
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include "kl_memorymap.h"
* Pre-processor Definitions
****************************************************************************/
#define KL_UART_BDH_OFFSET 0x0000
#define KL_UART_BDL_OFFSET 0x0001
#define KL_UART_C1_OFFSET 0x0002
#define KL_UART_C2_OFFSET 0x0003
#define KL_UART_S1_OFFSET 0x0004
#define KL_UART_S2_OFFSET 0x0005
#define KL_UART_C3_OFFSET 0x0006
#define KL_UART_D_OFFSET 0x0007
#define KL_UART_MA1_OFFSET 0x0008
#define KL_UART_MA2_OFFSET 0x0009
#define KL_UART_C4_OFFSET 0x000a
#define KL_UART_C5_OFFSET 0x000b
#if (KL_NUART) > 0
# define KL_UART0_BDH (KL_UART0_BASE+KL_UART_BDH_OFFSET)
# define KL_UART0_BDL (KL_UART0_BASE+KL_UART_BDL_OFFSET)
# define KL_UART0_C1 (KL_UART0_BASE+KL_UART_C1_OFFSET)
# define KL_UART0_C2 (KL_UART0_BASE+KL_UART_C2_OFFSET)
# define KL_UART0_S1 (KL_UART0_BASE+KL_UART_S1_OFFSET)
# define KL_UART0_S2 (KL_UART0_BASE+KL_UART_S2_OFFSET)
# define KL_UART0_C3 (KL_UART0_BASE+KL_UART_C3_OFFSET)
# define KL_UART0_D (KL_UART0_BASE+KL_UART_D_OFFSET)
# define KL_UART0_MA1 (KL_UART0_BASE+KL_UART_MA1_OFFSET)
# define KL_UART0_MA2 (KL_UART0_BASE+KL_UART_MA2_OFFSET)
# define KL_UART0_C4 (KL_UART0_BASE+KL_UART_C4_OFFSET)
# define KL_UART0_C5 (KL_UART0_BASE+KL_UART_C5_OFFSET)
#endif
#if (KL_NUART) > 1
# define KL_UART1_BDH (KL_UART1_BASE+KL_UART_BDH_OFFSET)
# define KL_UART1_BDL (KL_UART1_BASE+KL_UART_BDL_OFFSET)
# define KL_UART1_C1 (KL_UART1_BASE+KL_UART_C1_OFFSET)
# define KL_UART1_C2 (KL_UART1_BASE+KL_UART_C2_OFFSET)
# define KL_UART1_S1 (KL_UART1_BASE+KL_UART_S1_OFFSET)
# define KL_UART1_S2 (KL_UART1_BASE+KL_UART_S2_OFFSET)
# define KL_UART1_C3 (KL_UART1_BASE+KL_UART_C3_OFFSET)
# define KL_UART1_D (KL_UART1_BASE+KL_UART_D_OFFSET)
# define KL_UART1_C4 (KL_UART1_BASE+KL_UART_C4_OFFSET)
#endif
#if (KL_NUART) > 2
# define KL_UART2_BDH (KL_UART2_BASE+KL_UART_BDH_OFFSET)
# define KL_UART2_BDL (KL_UART2_BASE+KL_UART_BDL_OFFSET)
# define KL_UART2_C1 (KL_UART2_BASE+KL_UART_C1_OFFSET)
# define KL_UART2_C2 (KL_UART2_BASE+KL_UART_C2_OFFSET)
# define KL_UART2_S1 (KL_UART2_BASE+KL_UART_S1_OFFSET)
# define KL_UART2_S2 (KL_UART2_BASE+KL_UART_S2_OFFSET)
# define KL_UART2_C3 (KL_UART2_BASE+KL_UART_C3_OFFSET)
# define KL_UART2_D (KL_UART2_BASE+KL_UART_D_OFFSET)
# define KL_UART2_C4 (KL_UART2_BASE+KL_UART_C4_OFFSET)
#endif
#define UART_BDH_SBR_SHIFT (0)
#define UART_BDH_SBR_MASK (31 << UART_BDH_SBR_SHIFT)
# define UART_BDH_SBR(x) (((uint8_t)(((uint8_t)(x))<<UART_BDH_SBR_SHIFT))&UART_BDH_SBR_MASK)
#define UART_BDH_SBNS (1 << 5)
#define UART_BDH_RXEDGIE (1 << 6)
#define UART_BDH_LBKDIE (1 << 7)
#define UART_BDL_SBR_MASK 0xffu
#define UART_BDL_SBR_SHIFT 0
# define UART_BDL_SBR(x) (((uint8_t)(((uint8_t)(x))<<UART_BDL_SBR_SHIFT))&UART_BDL_SBR_MASK)
#define UART_C1_PT (1 << 0)
#define UART_C1_PE (1 << 1)
#define UART_C1_ILT (1 << 2)
#define UART_C1_WAKE (1 << 3)
#define UART_C1_M (1 << 4)
#define UART_C1_RSRC (1 << 5)
#define UART_C1_DOZEEN (1 << 6)
#define UART_C1_UARTSWAI (1 << 6)
#define UART_C1_LOOPS (1 << 7)
#define UART_C2_SBK (1 << 0)
#define UART_C2_RWU (1 << 1)
#define UART_C2_RE (1 << 2)
#define UART_C2_TE (1 << 3)
#define UART_C2_ILIE (1 << 4)
#define UART_C2_RIE (1 << 5)
#define UART_C2_TCIE (1 << 6)
#define UART_C2_TIE (1 << 7)
#define UART_C2_ALLINTS (0xf0)
#define UART_S1_PF (1 << 0)
#define UART_S1_FE (1 << 1)
#define UART_S1_NF (1 << 2)
#define UART_S1_OR (1 << 3)
#define UART_S1_IDLE (1 << 4)
#define UART_S1_RDRF (1 << 5)
#define UART_S1_TC (1 << 6)
#define UART_S1_TDRE (1 << 7)
#define UART_S1_ERRORS (0x0f)
#define UART_S2_RAF (1 << 0)
#define UART_S2_LBKDE (1 << 1)
#define UART_S2_BRK13 (1 << 2)
#define UART_S2_RWUID (1 << 3)
#define UART_S2_RXINV (1 << 4)
#define UART_S2_MSBF (1 << 5)
#define UART_S2_RXEDGIF (1 << 6)
#define UART_S2_LBKDIF (1 << 7)
#define UART_C3_PEIE (1 << 0)
#define UART_C3_FEIE (1 << 1)
#define UART_C3_NEIE (1 << 2)
#define UART_C3_ORIE (1 << 3)
#define UART_C3_TXINV (1 << 4)
#define UART_C3_TXDIR (1 << 5)
#define UART_C3_R9 (1 << 6)
#define UART_C3_T8 (1 << 6)
#define UART_C3_T9 (1 << 7)
#define UART_C3_R8 (1 << 7)
#define UART_C4_OSR_SHIFT (0)
#define UART_C4_OSR_MASK (0x1f << UART_C4_OSR_SHIFT)
#define UART_C4_M10 (1 << 5)
#define UART_C4_MAEN2 (1 << 6)
#define UART_C4_MAEN1 (1 << 7)
#define UART_C4_RDMAS (1 << 5)
#define UART_C4_TDMAS (1 << 7)
#define UART_C5_RESYNCDIS (1 << 0)
#define UART_C5_BOTHEDGE (1 << 1)
#define UART_C5_RDMAE (1 << 5)
#define UART_C5_TDMAE (1 << 7)
* Public Types
****************************************************************************/
* Public Data
****************************************************************************/
* Public Functions Prototypes
****************************************************************************/
#endif