UARTCC26XX.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2020, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
377 #ifndef ti_drivers_uart_UARTCC26XX__include
378 #define ti_drivers_uart_UARTCC26XX__include
379 
380 #include <stdint.h>
381 #include <stdbool.h>
382 
383 #include <ti/drivers/UART.h>
385 #include <ti/drivers/Power.h>
387 
388 #include <ti/devices/DeviceFamily.h>
389 #include DeviceFamily_constructPath(driverlib/uart.h)
390 
391 #include <ti/drivers/dpl/HwiP.h>
392 #include <ti/drivers/dpl/SwiP.h>
393 #include <ti/drivers/dpl/ClockP.h>
394 #include <ti/drivers/dpl/SemaphoreP.h>
395 
396 #ifdef __cplusplus
397 extern "C" {
398 #endif
399 
410 /* Add UARTCC26XX_STATUS_* macros here */
411 
431 #define UARTCC26XX_CMD_RETURN_PARTIAL_ENABLE (UART_CMD_RESERVED + 0)
432 
440 #define UARTCC26XX_CMD_RETURN_PARTIAL_DISABLE (UART_CMD_RESERVED + 1)
441 
448 #define UARTCC26XX_CMD_RX_FIFO_FLUSH (UART_CMD_RESERVED + 2)
449 
452 #define UARTCC26XX_FIFO_SIZE 32
453 
460 typedef enum {
471 
472 /* BACKWARDS COMPATIBILITY */
473 #define UARTCC26XX_RETURN_PARTIAL_ENABLE UARTCC26XX_CMD_RETURN_PARTIAL_ENABLE
474 #define UARTCC26XX_RETURN_PARTIAL_DISABLE UARTCC26XX_CMD_RETURN_PARTIAL_DISABLE
475 /* END BACKWARDS COMPATIBILITY */
476 
487 typedef void (*UARTCC26XX_ErrorCallback) (UART_Handle handle, uint32_t error);
488 
489 /* UART function table pointer */
491 
535 typedef struct {
536  uint32_t baseAddr;
537  uint32_t powerMngrId;
538  int intNum;
551  uint8_t intPriority;
557  uint32_t swiPriority;
558  uint8_t txPin;
559  uint8_t rxPin;
560  uint8_t ctsPin;
561  uint8_t rtsPin;
562  unsigned char *ringBufPtr;
563  size_t ringBufSize;
564  UARTCC26XX_FifoThreshold txIntFifoThr;
565  UARTCC26XX_FifoThreshold rxIntFifoThr;
569 
575 typedef enum {
576  UART_TIMED_OUT = 0x10,
577  UART_PARITY_ERROR = UART_RXERROR_PARITY,
578  UART_BRAKE_ERROR = UART_RXERROR_BREAK,
579  UART_OVERRUN_ERROR = UART_RXERROR_OVERRUN,
580  UART_FRAMING_ERROR = UART_RXERROR_FRAMING,
581  UART_OK = 0x0
582 } UART_Status;
583 
589 typedef struct {
590  /* UART control variables */
591  bool opened;
594  unsigned int readTimeout;
595  unsigned int writeTimeout;
608  uint32_t baudRate;
614  /* UART write variables */
615  const void *writeBuf;
616  size_t writeCount;
617  size_t writeSize;
618  bool writeCR;
620  /* UART receive variables */
622  void *readBuf;
623  size_t readCount;
624  size_t readSize;
627  /* PIN driver state object and handle */
630 
632  void *uartPostFxn;
635 
636  /* UART SYS/BIOS objects */
637  HwiP_Struct hwi;
638  SwiP_Struct swi;
639  SemaphoreP_Struct writeSem;
640  SemaphoreP_Struct readSem;
641  ClockP_Struct txFifoEmptyClk;
646 
647 #ifdef __cplusplus
648 }
649 #endif
650 
651 #endif /* ti_drivers_uart_UARTCC26XX__include */
uint8_t rtsPin
Definition: UARTCC26XX.h:561
struct UARTCC26XX_Object * UARTCC26XX_Handle
UART_STOP
UART stop bit settings.
Definition: UART.h:522
UARTCC26XX Hardware attributes.
Definition: UARTCC26XX.h:535
UART_Mode readMode
Definition: UARTCC26XX.h:592
UARTCC26XX_FifoThreshold
UART TX/RX interrupt FIFO threshold select.
Definition: UARTCC26XX.h:460
Definition: UARTCC26XX.h:576
Power_NotifyObj uartPostObj
Definition: UARTCC26XX.h:634
uint32_t baudRate
Baud rate for CC26xx UART.
Definition: UARTCC26XX.h:608
const void * writeBuf
Definition: UARTCC26XX.h:615
size_t writeSize
Definition: UARTCC26XX.h:617
The definition of a UART function table that contains the required set of functions to control a spec...
Definition: UART.h:634
Power Manager.
UART_PAR
UART parity type settings.
Definition: UART.h:532
const UART_FxnTable UARTCC26XX_fxnTable
UART_Mode
UART mode settings.
Definition: UART.h:427
RingBuf_Object ringBuffer
Definition: UARTCC26XX.h:625
SemaphoreP_Struct readSem
Definition: UARTCC26XX.h:640
size_t readSize
Definition: UARTCC26XX.h:624
Definition: UARTCC26XX.h:578
UART_DataMode
UART data mode settings.
Definition: UART.h:482
unsigned int readTimeout
Definition: UARTCC26XX.h:594
UART_ReturnMode
UART return mode settings.
Definition: UART.h:460
Definition: UARTCC26XX.h:461
bool readRetPartial
Definition: UARTCC26XX.h:621
void * uartPostFxn
Definition: UARTCC26XX.h:632
UART_ReturnMode readReturnMode
Definition: UARTCC26XX.h:598
UART_Status
UART status.
Definition: UARTCC26XX.h:575
Definition: UARTCC26XX.h:580
UARTCC26XX Object.
Definition: UARTCC26XX.h:589
UART_Callback readCallback
Definition: UARTCC26XX.h:596
UART Global configuration.
Definition: UART.h:677
bool uartRxPowerConstraint
Definition: UARTCC26XX.h:643
UART_PAR parityType
Definition: UARTCC26XX.h:611
Definition: UARTCC26XX.h:579
size_t readCount
Definition: UARTCC26XX.h:623
UART_LEN dataLength
Definition: UARTCC26XX.h:609
Device-specific pin & GPIO driver for CC26xx family [def].
HwiP_Struct hwi
Definition: UARTCC26XX.h:637
SemaphoreP_Struct writeSem
Definition: UARTCC26XX.h:639
ClockP_Struct txFifoEmptyClk
Definition: UARTCC26XX.h:641
uint32_t baseAddr
Definition: UARTCC26XX.h:536
Definition: UARTCC26XX.h:466
int intNum
Definition: UARTCC26XX.h:538
UART_Status status
Definition: UARTCC26XX.h:612
Definition: UARTCC26XX.h:581
UARTCC26XX_FifoThreshold txIntFifoThr
Definition: UARTCC26XX.h:564
size_t writeCount
Definition: UARTCC26XX.h:616
unsigned int writeTimeout
Definition: UARTCC26XX.h:595
Power notify object structure.
Definition: Power.h:443
bool opened
Definition: UARTCC26XX.h:591
uint8_t intPriority
UART Peripheral&#39;s interrupt priority.
Definition: UARTCC26XX.h:551
Universal Asynchronous Receiver-Transmitter (UART) Driver.
size_t ringBufSize
Definition: UARTCC26XX.h:563
uint8_t rxPin
Definition: UARTCC26XX.h:559
unsigned char * ringBufPtr
Definition: UARTCC26XX.h:562
void(* UARTCC26XX_ErrorCallback)(UART_Handle handle, uint32_t error)
The definition of an optional callback function used by the UART driver to notify the application whe...
Definition: UARTCC26XX.h:487
UART_STOP stopBits
Definition: UARTCC26XX.h:610
bool writeCR
Definition: UARTCC26XX.h:618
Definition: UARTCC26XX.h:577
underlying data structure for type PIN_State
Definition: PIN.h:708
UART_Mode writeMode
Definition: UARTCC26XX.h:593
Definition: UARTCC26XX.h:469
SwiP_Struct swi
Definition: UARTCC26XX.h:638
Definition: UARTCC26XX.h:468
Definition: RingBuf.h:44
Definition: UARTCC26XX.h:467
void * readBuf
Definition: UARTCC26XX.h:622
UART_LEN
UART data length settings.
Definition: UART.h:510
UART_DataMode readDataMode
Definition: UARTCC26XX.h:599
UARTCC26XX_ErrorCallback errorFxn
Definition: UARTCC26XX.h:567
Definition: UARTCC26XX.h:465
UART_DataMode writeDataMode
Definition: UARTCC26XX.h:600
PIN_State pinState
Definition: UARTCC26XX.h:628
uint8_t ctsPin
Definition: UARTCC26XX.h:560
UARTCC26XX_FifoThreshold rxIntFifoThr
Definition: UARTCC26XX.h:565
uint32_t swiPriority
SPI SWI priority. The higher the number, the higher the priority. The minimum is 0 and the maximum is...
Definition: UARTCC26XX.h:557
UART_Callback writeCallback
Definition: UARTCC26XX.h:597
uint32_t powerMngrId
Definition: UARTCC26XX.h:537
PIN_Handle hPin
Definition: UARTCC26XX.h:629
bool uartTxPowerConstraint
Definition: UARTCC26XX.h:644
void(* UART_Callback)(UART_Handle handle, void *buf, size_t count)
The definition of a callback function used by the UART driver when used in UART_MODE_CALLBACK The cal...
Definition: UART.h:420
uint8_t txPin
Definition: UARTCC26XX.h:558
© Copyright 1995-2021, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale