Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:42

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /**
0004  * @file
0005  *
0006  * @ingroup RTEMSDeviceGRLIBAPBUART
0007  *
0008  * @brief This header file defines the APBUART register block interface.
0009  */
0010 
0011 /*
0012  * Copyright (C) 2021 embedded brains GmbH & Co. KG
0013  *
0014  * Redistribution and use in source and binary forms, with or without
0015  * modification, are permitted provided that the following conditions
0016  * are met:
0017  * 1. Redistributions of source code must retain the above copyright
0018  *    notice, this list of conditions and the following disclaimer.
0019  * 2. Redistributions in binary form must reproduce the above copyright
0020  *    notice, this list of conditions and the following disclaimer in the
0021  *    documentation and/or other materials provided with the distribution.
0022  *
0023  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0024  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0025  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0026  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0027  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0028  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0029  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0030  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0031  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0032  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0033  * POSSIBILITY OF SUCH DAMAGE.
0034  */
0035 
0036 /*
0037  * This file is part of the RTEMS quality process and was automatically
0038  * generated.  If you find something that needs to be fixed or
0039  * worded better please post a report or patch to an RTEMS mailing list
0040  * or raise a bug report:
0041  *
0042  * https://www.rtems.org/bugs.html
0043  *
0044  * For information on updating and regenerating please refer to the How-To
0045  * section in the Software Requirements Engineering chapter of the
0046  * RTEMS Software Engineering manual.  The manual is provided as a part of
0047  * a release.  For development sources please refer to the online
0048  * documentation at:
0049  *
0050  * https://docs.rtems.org
0051  */
0052 
0053 /* Generated from spec:/dev/grlib/if/apbuart-header */
0054 
0055 #ifndef _GRLIB_APBUART_REGS_H
0056 #define _GRLIB_APBUART_REGS_H
0057 
0058 #include <stdint.h>
0059 
0060 #ifdef __cplusplus
0061 extern "C" {
0062 #endif
0063 
0064 /* Generated from spec:/dev/grlib/if/apbuart */
0065 
0066 /**
0067  * @defgroup RTEMSDeviceGRLIBAPBUART APBUART
0068  *
0069  * @ingroup RTEMSDeviceGRLIB
0070  *
0071  * @brief This group contains the APBUART interfaces.
0072  *
0073  * @{
0074  */
0075 
0076 /**
0077  * @defgroup RTEMSDeviceGRLIBAPBUARTDATA UART data register (DATA)
0078  *
0079  * @brief This group contains register bit definitions.
0080  *
0081  * @{
0082  */
0083 
0084 #define APBUART_DATA_DATA_SHIFT 0
0085 #define APBUART_DATA_DATA_MASK 0xffU
0086 #define APBUART_DATA_DATA_GET( _reg ) \
0087   ( ( ( _reg ) & APBUART_DATA_DATA_MASK ) >> \
0088     APBUART_DATA_DATA_SHIFT )
0089 #define APBUART_DATA_DATA_SET( _reg, _val ) \
0090   ( ( ( _reg ) & ~APBUART_DATA_DATA_MASK ) | \
0091     ( ( ( _val ) << APBUART_DATA_DATA_SHIFT ) & \
0092       APBUART_DATA_DATA_MASK ) )
0093 #define APBUART_DATA_DATA( _val ) \
0094   ( ( ( _val ) << APBUART_DATA_DATA_SHIFT ) & \
0095     APBUART_DATA_DATA_MASK )
0096 
0097 /** @} */
0098 
0099 /**
0100  * @defgroup RTEMSDeviceGRLIBAPBUARTSTATUS UART status register (STATUS)
0101  *
0102  * @brief This group contains register bit definitions.
0103  *
0104  * @{
0105  */
0106 
0107 #define APBUART_STATUS_RCNT_SHIFT 26
0108 #define APBUART_STATUS_RCNT_MASK 0xfc000000U
0109 #define APBUART_STATUS_RCNT_GET( _reg ) \
0110   ( ( ( _reg ) & APBUART_STATUS_RCNT_MASK ) >> \
0111     APBUART_STATUS_RCNT_SHIFT )
0112 #define APBUART_STATUS_RCNT_SET( _reg, _val ) \
0113   ( ( ( _reg ) & ~APBUART_STATUS_RCNT_MASK ) | \
0114     ( ( ( _val ) << APBUART_STATUS_RCNT_SHIFT ) & \
0115       APBUART_STATUS_RCNT_MASK ) )
0116 #define APBUART_STATUS_RCNT( _val ) \
0117   ( ( ( _val ) << APBUART_STATUS_RCNT_SHIFT ) & \
0118     APBUART_STATUS_RCNT_MASK )
0119 
0120 #define APBUART_STATUS_TCNT_SHIFT 20
0121 #define APBUART_STATUS_TCNT_MASK 0x3f00000U
0122 #define APBUART_STATUS_TCNT_GET( _reg ) \
0123   ( ( ( _reg ) & APBUART_STATUS_TCNT_MASK ) >> \
0124     APBUART_STATUS_TCNT_SHIFT )
0125 #define APBUART_STATUS_TCNT_SET( _reg, _val ) \
0126   ( ( ( _reg ) & ~APBUART_STATUS_TCNT_MASK ) | \
0127     ( ( ( _val ) << APBUART_STATUS_TCNT_SHIFT ) & \
0128       APBUART_STATUS_TCNT_MASK ) )
0129 #define APBUART_STATUS_TCNT( _val ) \
0130   ( ( ( _val ) << APBUART_STATUS_TCNT_SHIFT ) & \
0131     APBUART_STATUS_TCNT_MASK )
0132 
0133 #define APBUART_STATUS_RF 0x400U
0134 
0135 #define APBUART_STATUS_TF 0x200U
0136 
0137 #define APBUART_STATUS_RH 0x100U
0138 
0139 #define APBUART_STATUS_TH 0x80U
0140 
0141 #define APBUART_STATUS_FE 0x40U
0142 
0143 #define APBUART_STATUS_PE 0x20U
0144 
0145 #define APBUART_STATUS_OV 0x10U
0146 
0147 #define APBUART_STATUS_BR 0x8U
0148 
0149 #define APBUART_STATUS_TE 0x4U
0150 
0151 #define APBUART_STATUS_TS 0x2U
0152 
0153 #define APBUART_STATUS_DR 0x1U
0154 
0155 /** @} */
0156 
0157 /**
0158  * @defgroup RTEMSDeviceGRLIBAPBUARTCTRL UART control register (CTRL)
0159  *
0160  * @brief This group contains register bit definitions.
0161  *
0162  * @{
0163  */
0164 
0165 #define APBUART_CTRL_FA 0x80000000U
0166 
0167 #define APBUART_CTRL_SI 0x4000U
0168 
0169 #define APBUART_CTRL_DI 0x2000U
0170 
0171 #define APBUART_CTRL_BI 0x1000U
0172 
0173 #define APBUART_CTRL_DB 0x800U
0174 
0175 #define APBUART_CTRL_RF 0x400U
0176 
0177 #define APBUART_CTRL_TF 0x200U
0178 
0179 #define APBUART_CTRL_EC 0x100U
0180 
0181 #define APBUART_CTRL_LB 0x80U
0182 
0183 #define APBUART_CTRL_FL 0x40U
0184 
0185 #define APBUART_CTRL_PE 0x20U
0186 
0187 #define APBUART_CTRL_PS 0x10U
0188 
0189 #define APBUART_CTRL_TI 0x8U
0190 
0191 #define APBUART_CTRL_RI 0x4U
0192 
0193 #define APBUART_CTRL_TE 0x2U
0194 
0195 #define APBUART_CTRL_RE 0x1U
0196 
0197 /** @} */
0198 
0199 /**
0200  * @defgroup RTEMSDeviceGRLIBAPBUARTSCALER UART scaler reload register (SCALER)
0201  *
0202  * @brief This group contains register bit definitions.
0203  *
0204  * @{
0205  */
0206 
0207 #define APBUART_SCALER_SCALER_RELOAD_VALUE_SHIFT 0
0208 #define APBUART_SCALER_SCALER_RELOAD_VALUE_MASK 0xfffffU
0209 #define APBUART_SCALER_SCALER_RELOAD_VALUE_GET( _reg ) \
0210   ( ( ( _reg ) & APBUART_SCALER_SCALER_RELOAD_VALUE_MASK ) >> \
0211     APBUART_SCALER_SCALER_RELOAD_VALUE_SHIFT )
0212 #define APBUART_SCALER_SCALER_RELOAD_VALUE_SET( _reg, _val ) \
0213   ( ( ( _reg ) & ~APBUART_SCALER_SCALER_RELOAD_VALUE_MASK ) | \
0214     ( ( ( _val ) << APBUART_SCALER_SCALER_RELOAD_VALUE_SHIFT ) & \
0215       APBUART_SCALER_SCALER_RELOAD_VALUE_MASK ) )
0216 #define APBUART_SCALER_SCALER_RELOAD_VALUE( _val ) \
0217   ( ( ( _val ) << APBUART_SCALER_SCALER_RELOAD_VALUE_SHIFT ) & \
0218     APBUART_SCALER_SCALER_RELOAD_VALUE_MASK )
0219 
0220 /** @} */
0221 
0222 /**
0223  * @defgroup RTEMSDeviceGRLIBAPBUARTFIFO UART FIFO debug register (FIFO)
0224  *
0225  * @brief This group contains register bit definitions.
0226  *
0227  * @{
0228  */
0229 
0230 #define APBUART_FIFO_DATA_SHIFT 0
0231 #define APBUART_FIFO_DATA_MASK 0xffU
0232 #define APBUART_FIFO_DATA_GET( _reg ) \
0233   ( ( ( _reg ) & APBUART_FIFO_DATA_MASK ) >> \
0234     APBUART_FIFO_DATA_SHIFT )
0235 #define APBUART_FIFO_DATA_SET( _reg, _val ) \
0236   ( ( ( _reg ) & ~APBUART_FIFO_DATA_MASK ) | \
0237     ( ( ( _val ) << APBUART_FIFO_DATA_SHIFT ) & \
0238       APBUART_FIFO_DATA_MASK ) )
0239 #define APBUART_FIFO_DATA( _val ) \
0240   ( ( ( _val ) << APBUART_FIFO_DATA_SHIFT ) & \
0241     APBUART_FIFO_DATA_MASK )
0242 
0243 /** @} */
0244 
0245 /**
0246  * @brief This structure defines the APBUART register block memory map.
0247  */
0248 typedef struct apbuart {
0249   /**
0250    * @brief See @ref RTEMSDeviceGRLIBAPBUARTDATA.
0251    */
0252   uint32_t data;
0253 
0254   /**
0255    * @brief See @ref RTEMSDeviceGRLIBAPBUARTSTATUS.
0256    */
0257   uint32_t status;
0258 
0259   /**
0260    * @brief See @ref RTEMSDeviceGRLIBAPBUARTCTRL.
0261    */
0262   uint32_t ctrl;
0263 
0264   /**
0265    * @brief See @ref RTEMSDeviceGRLIBAPBUARTSCALER.
0266    */
0267   uint32_t scaler;
0268 
0269   /**
0270    * @brief See @ref RTEMSDeviceGRLIBAPBUARTFIFO.
0271    */
0272   uint32_t fifo;
0273 } apbuart;
0274 
0275 /** @} */
0276 
0277 #ifdef __cplusplus
0278 }
0279 #endif
0280 
0281 #endif /* _GRLIB_APBUART_REGS_H */