[PATCH] dev/sc16is752: Add name space for field names.
Joel Sherrill
joel at rtems.org
Wed Aug 15 14:56:14 UTC 2018
Thanks Christian! This does indeed resolve the warning on psim so it should
be ok on all other powerpc BSPs. I will build all powerpc BSPs to double
check and then push.
--joel
On Wed, Aug 15, 2018 at 5:26 AM, <list at c-mauderer.de> wrote:
> From: Christian Mauderer <christian.mauderer at embedded-brains.de>
>
> The field names for the registers generated a name collision (MSR_RI on
> the power pc). This patch adds a SC16IS752_ prefix for all field names.
>
> Closes #3501.
> ---
> cpukit/dev/serial/sc16is752-regs.h | 108 ++++++++++++++---------------
> cpukit/dev/serial/sc16is752.c | 85 ++++++++++++-----------
> 2 files changed, 98 insertions(+), 95 deletions(-)
>
> diff --git a/cpukit/dev/serial/sc16is752-regs.h
> b/cpukit/dev/serial/sc16is752-regs.h
> index 21d425a118..b07e489a3e 100644
> --- a/cpukit/dev/serial/sc16is752-regs.h
> +++ b/cpukit/dev/serial/sc16is752-regs.h
> @@ -52,76 +52,76 @@ extern "C" {
> #define SC16IS752_XOFF2 0x7
>
> /* FCR */
> -#define FCR_FIFO_EN 0x01
> -#define FCR_RX_FIFO_RST 0x02
> -#define FCR_TX_FIFO_RST 0x04
> -#define FCR_TX_FIFO_TRG_8 0x00
> -#define FCR_TX_FIFO_TRG_16 0x10
> -#define FCR_TX_FIFO_TRG_32 0x20
> -#define FCR_TX_FIFO_TRG_56 0x30
> -#define FCR_RX_FIFO_TRG_8 0x00
> -#define FCR_RX_FIFO_TRG_16 0x40
> -#define FCR_RX_FIFO_TRG_56 0x80
> -#define FCR_RX_FIFO_TRG_60 0xc0
> +#define SC16IS752_FCR_FIFO_EN 0x01
> +#define SC16IS752_FCR_RX_FIFO_RST 0x02
> +#define SC16IS752_FCR_TX_FIFO_RST 0x04
> +#define SC16IS752_FCR_TX_FIFO_TRG_8 0x00
> +#define SC16IS752_FCR_TX_FIFO_TRG_16 0x10
> +#define SC16IS752_FCR_TX_FIFO_TRG_32 0x20
> +#define SC16IS752_FCR_TX_FIFO_TRG_56 0x30
> +#define SC16IS752_FCR_RX_FIFO_TRG_8 0x00
> +#define SC16IS752_FCR_RX_FIFO_TRG_16 0x40
> +#define SC16IS752_FCR_RX_FIFO_TRG_56 0x80
> +#define SC16IS752_FCR_RX_FIFO_TRG_60 0xc0
>
> /* EFCR */
> -#define EFCR_RS485_ENABLE (1u << 0)
> -#define EFCR_RX_DISABLE (1u << 1)
> -#define EFCR_TX_DISABLE (1u << 2)
> +#define SC16IS752_EFCR_RS485_ENABLE (1u << 0)
> +#define SC16IS752_EFCR_RX_DISABLE (1u << 1)
> +#define SC16IS752_EFCR_TX_DISABLE (1u << 2)
>
> /* IER */
> -#define IER_RHR (1u << 0)
> -#define IER_THR (1u << 1)
> -#define IER_RECEIVE_LINE_STATUS (1u << 2)
> -#define IER_MODEM_STATUS (1u << 3)
> -#define IER_SLEEP_MODE (1u << 4)
> -#define IER_XOFF (1u << 5)
> -#define IER_RTS (1u << 6)
> -#define IER_CTS (1u << 7)
> +#define SC16IS752_IER_RHR (1u << 0)
> +#define SC16IS752_IER_THR (1u << 1)
> +#define SC16IS752_IER_RECEIVE_LINE_STATUS (1u << 2)
> +#define SC16IS752_IER_MODEM_STATUS (1u << 3)
> +#define SC16IS752_IER_SLEEP_MODE (1u << 4)
> +#define SC16IS752_IER_XOFF (1u << 5)
> +#define SC16IS752_IER_RTS (1u << 6)
> +#define SC16IS752_IER_CTS (1u << 7)
>
> /* IIR */
> -#define IIR_TX_INTERRUPT (1u << 1)
> -#define IIR_RX_INTERRUPT (1u << 2)
> +#define SC16IS752_IIR_TX_INTERRUPT (1u << 1)
> +#define SC16IS752_IIR_RX_INTERRUPT (1u << 2)
>
> /* LCR */
> -#define LCR_CHRL_5_BIT (0u << 1) | (0u << 0)
> -#define LCR_CHRL_6_BIT (0u << 1) | (1u << 0)
> -#define LCR_CHRL_7_BIT (1u << 1) | (0u << 0)
> -#define LCR_CHRL_8_BIT (1u << 1) | (1u << 0)
> -#define LCR_2_STOP_BIT (1u << 2)
> -#define LCR_SET_PARITY (1u << 3)
> -#define LCR_EVEN_PARITY (1u << 4)
> -#define LCR_ENABLE_DIVISOR (1u << 7)
> +#define SC16IS752_LCR_CHRL_5_BIT (0u << 1) | (0u << 0)
> +#define SC16IS752_LCR_CHRL_6_BIT (0u << 1) | (1u << 0)
> +#define SC16IS752_LCR_CHRL_7_BIT (1u << 1) | (0u << 0)
> +#define SC16IS752_LCR_CHRL_8_BIT (1u << 1) | (1u << 0)
> +#define SC16IS752_LCR_2_STOP_BIT (1u << 2)
> +#define SC16IS752_LCR_SET_PARITY (1u << 3)
> +#define SC16IS752_LCR_EVEN_PARITY (1u << 4)
> +#define SC16IS752_LCR_ENABLE_DIVISOR (1u << 7)
>
> /* LSR */
> -#define LSR_TXEMPTY (1u << 5)
> -#define LSR_RXRDY (1u << 0)
> -#define LSR_ERROR_BITS (7u << 2)
> +#define SC16IS752_LSR_TXEMPTY (1u << 5)
> +#define SC16IS752_LSR_RXRDY (1u << 0)
> +#define SC16IS752_LSR_ERROR_BITS (7u << 2)
>
> /* MCR */
> -#define MCR_DTR (1u << 0)
> -#define MCR_RTS (1u << 1)
> -#define MCR_TCR_TLR (1u << 2)
> -#define MCR_LOOPBACK (1u << 4)
> -#define MCR_XON_ANY (1u << 5)
> -#define MCR_IRDA_ENABLE (1u << 6)
> -#define MCR_PRESCALE_NEEDED (1u << 7)
> +#define SC16IS752_MCR_DTR (1u << 0)
> +#define SC16IS752_MCR_RTS (1u << 1)
> +#define SC16IS752_MCR_TCR_TLR (1u << 2)
> +#define SC16IS752_MCR_LOOPBACK (1u << 4)
> +#define SC16IS752_MCR_XON_ANY (1u << 5)
> +#define SC16IS752_MCR_IRDA_ENABLE (1u << 6)
> +#define SC16IS752_MCR_PRESCALE_NEEDED (1u << 7)
>
> /* MSR */
> -#define MSR_dCTS (1u << 0)
> -#define MSR_dDSR (1u << 1)
> -#define MSR_dRI (1u << 2)
> -#define MSR_dCD (1u << 3)
> -#define MSR_CTS (1u << 4)
> -#define MSR_DSR (1u << 5)
> -#define MSR_RI (1u << 6)
> -#define MSR_CD (1u << 7)
> +#define SC16IS752_MSR_dCTS (1u << 0)
> +#define SC16IS752_MSR_dDSR (1u << 1)
> +#define SC16IS752_MSR_dRI (1u << 2)
> +#define SC16IS752_MSR_dCD (1u << 3)
> +#define SC16IS752_MSR_CTS (1u << 4)
> +#define SC16IS752_MSR_DSR (1u << 5)
> +#define SC16IS752_MSR_RI (1u << 6)
> +#define SC16IS752_MSR_CD (1u << 7)
>
> /* EFR */
> -#define EFR_ENHANCED_FUNC_ENABLE (1u << 4)
> -#define EFR_SPECIAL_CHAR_DETECT (1u << 5)
> -#define EFR_RTS_FLOW_CTRL_EN (1u << 6)
> -#define EFR_CTS_FLOW_CTRL_EN (1u << 7)
> +#define SC16IS752_EFR_ENHANCED_FUNC_ENABLE (1u << 4)
> +#define SC16IS752_EFR_SPECIAL_CHAR_DETECT (1u << 5)
> +#define SC16IS752_EFR_RTS_FLOW_CTRL_EN (1u << 6)
> +#define SC16IS752_EFR_CTS_FLOW_CTRL_EN (1u << 7)
>
> /* IOCONTROL: User accessible. Therefore see sc16is752.h for the defines.
> */
>
> diff --git a/cpukit/dev/serial/sc16is752.c b/cpukit/dev/serial/sc16is752.c
> index ac88c8389f..0dcf21765a 100644
> --- a/cpukit/dev/serial/sc16is752.c
> +++ b/cpukit/dev/serial/sc16is752.c
> @@ -57,15 +57,15 @@ static void read_2_reg(
>
> static bool is_sleep_mode_enabled(sc16is752_context *ctx)
> {
> - return (ctx->ier & IER_SLEEP_MODE) != 0;
> + return (ctx->ier & SC16IS752_IER_SLEEP_MODE) != 0;
> }
>
> static void set_sleep_mode(sc16is752_context *ctx, bool enable)
> {
> if (enable) {
> - ctx->ier |= IER_SLEEP_MODE;
> + ctx->ier |= SC16IS752_IER_SLEEP_MODE;
> } else {
> - ctx->ier &= ~IER_SLEEP_MODE;
> + ctx->ier &= ~SC16IS752_IER_SLEEP_MODE;
> }
>
> write_reg(ctx, SC16IS752_IER, &ctx->ier, 1);
> @@ -85,14 +85,14 @@ static void set_mcr_dll_dlh(
> set_sleep_mode(ctx, false);
> }
>
> - ctx->lcr |= LCR_ENABLE_DIVISOR;
> + ctx->lcr |= SC16IS752_LCR_ENABLE_DIVISOR;
> write_reg(ctx, SC16IS752_LCR, &ctx->lcr, 1);
>
> write_reg(ctx, SC16IS752_MCR, &mcr, 1);
> write_reg(ctx, SC16IS752_DLH, &dlh, 1);
> write_reg(ctx, SC16IS752_DLL, &dll, 1);
>
> - ctx->lcr &= ~LCR_ENABLE_DIVISOR;
> + ctx->lcr &= ~SC16IS752_LCR_ENABLE_DIVISOR;
> write_reg(ctx, SC16IS752_LCR, &ctx->lcr, 1);
>
> if (sleep_mode) {
> @@ -127,10 +127,10 @@ static bool set_baud(sc16is752_context *ctx,
> rtems_termios_baud_t baud)
> if (divisor > 0xFFFF){
> return false;
> } else {
> - mcr |= MCR_PRESCALE_NEEDED;
> + mcr |= SC16IS752_MCR_PRESCALE_NEEDED;
> }
> } else {
> - mcr &= ~MCR_PRESCALE_NEEDED;
> + mcr &= ~SC16IS752_MCR_PRESCALE_NEEDED;
> }
>
> set_mcr_dll_dlh(ctx, mcr, divisor);
> @@ -155,42 +155,42 @@ static bool sc16is752_set_attributes(
> }
>
> if ((term->c_cflag & CREAD) == 0){
> - ctx->efcr |= EFCR_RX_DISABLE;
> + ctx->efcr |= SC16IS752_EFCR_RX_DISABLE;
> } else {
> - ctx->efcr &= ~EFCR_RX_DISABLE;
> + ctx->efcr &= ~SC16IS752_EFCR_RX_DISABLE;
> }
>
> write_reg(ctx, SC16IS752_EFCR, &ctx->efcr, 1);
>
> switch (term->c_cflag & CSIZE) {
> case CS5:
> - ctx->lcr |= LCR_CHRL_5_BIT;
> + ctx->lcr |= SC16IS752_LCR_CHRL_5_BIT;
> break;
> case CS6:
> - ctx->lcr |= LCR_CHRL_6_BIT;
> + ctx->lcr |= SC16IS752_LCR_CHRL_6_BIT;
> break;
> case CS7:
> - ctx->lcr |= LCR_CHRL_7_BIT;
> + ctx->lcr |= SC16IS752_LCR_CHRL_7_BIT;
> break;
> case CS8:
> - ctx->lcr |= LCR_CHRL_8_BIT;
> + ctx->lcr |= SC16IS752_LCR_CHRL_8_BIT;
> break;
> }
>
> if ((term->c_cflag & PARENB) != 0){
> if ((term->c_cflag & PARODD) != 0) {
> - ctx->lcr &= ~LCR_EVEN_PARITY;
> + ctx->lcr &= ~SC16IS752_LCR_EVEN_PARITY;
> } else {
> - ctx->lcr |= LCR_EVEN_PARITY;
> + ctx->lcr |= SC16IS752_LCR_EVEN_PARITY;
> }
> } else {
> - ctx->lcr &= ~LCR_SET_PARITY;
> + ctx->lcr &= ~SC16IS752_LCR_SET_PARITY;
> }
>
> if ((term->c_cflag & CSTOPB) != 0) {
> - ctx->lcr |= LCR_2_STOP_BIT;
> + ctx->lcr |= SC16IS752_LCR_2_STOP_BIT;
> } else {
> - ctx->lcr &= ~LCR_2_STOP_BIT;
> + ctx->lcr &= ~SC16IS752_LCR_2_STOP_BIT;
> }
>
> write_reg(ctx, SC16IS752_LCR, &ctx->lcr, 1);
> @@ -218,20 +218,23 @@ static bool sc16is752_first_open(
> }
>
> if (ctx->mode == SC16IS752_MODE_RS485) {
> - ctx->efcr = EFCR_RS485_ENABLE;
> + ctx->efcr = SC16IS752_EFCR_RS485_ENABLE;
> } else {
> ctx->efcr = 0;
> }
>
> write_reg(ctx, SC16IS752_FCR, &ctx->efcr, 1);
>
> - fcr = FCR_FIFO_EN | FCR_RX_FIFO_RST | FCR_TX_FIFO_RST
> - | FCR_RX_FIFO_TRG_16 | FCR_TX_FIFO_TRG_32;
> + fcr = SC16IS752_FCR_FIFO_EN
> + | SC16IS752_FCR_RX_FIFO_RST
> + | SC16IS752_FCR_TX_FIFO_RST
> + | SC16IS752_FCR_RX_FIFO_TRG_16
> + | SC16IS752_FCR_TX_FIFO_TRG_32;
> write_reg(ctx, SC16IS752_FCR, &fcr, 1);
>
> - ctx->ier = IER_RHR;
> + ctx->ier = SC16IS752_IER_RHR;
> write_reg(ctx, SC16IS752_IER, &ctx->ier, 1);
> - set_efr(ctx, EFR_ENHANCED_FUNC_ENABLE);
> + set_efr(ctx, SC16IS752_EFR_ENHANCED_FUNC_ENABLE);
>
> rtems_termios_set_initial_baud(tty, 115200);
> ok = sc16is752_set_attributes(base, term);
> @@ -265,14 +268,14 @@ static void sc16is752_write(
> sc16is752_context *ctx = (sc16is752_context *)base;
>
> if (len > 0) {
> - ctx->ier |= IER_THR;
> + ctx->ier |= SC16IS752_IER_THR;
> len = MIN(len, 32);
> ctx->tx_in_progress = (uint8_t)len;
> write_reg(ctx, SC16IS752_THR, (const uint8_t *)&buf[0], len);
> write_reg(ctx, SC16IS752_IER, &ctx->ier, 1);
> } else {
> ctx->tx_in_progress = 0;
> - ctx->ier &= ~IER_THR;
> + ctx->ier &= ~SC16IS752_IER_THR;
> write_reg(ctx, SC16IS752_IER, &ctx->ier, 1);
> }
> }
> @@ -286,22 +289,22 @@ static void sc16is752_get_modem_bits(sc16is752_context
> *ctx, int *bits)
> read_reg(ctx, SC16IS752_MSR, &msr, 1);
> read_reg(ctx, SC16IS752_MCR, &mcr, 1);
>
> - if (msr & MSR_CTS) {
> + if (msr & SC16IS752_MSR_CTS) {
> *bits |= TIOCM_CTS;
> }
> - if (msr & MSR_DSR) {
> + if (msr & SC16IS752_MSR_DSR) {
> *bits |= TIOCM_DSR;
> }
> - if (msr & MSR_RI) {
> + if (msr & SC16IS752_MSR_RI) {
> *bits |= TIOCM_RI;
> }
> - if (msr & MSR_CD) {
> + if (msr & SC16IS752_MSR_CD) {
> *bits |= TIOCM_CD;
> }
> - if ((mcr & MCR_DTR) == 0) {
> + if ((mcr & SC16IS752_MCR_DTR) == 0) {
> *bits |= TIOCM_DTR;
> }
> - if ((mcr & MCR_RTS) == 0) {
> + if ((mcr & SC16IS752_MCR_RTS) == 0) {
> *bits |= TIOCM_RTS;
> }
> }
> @@ -316,29 +319,29 @@ static void sc16is752_set_modem_bits(
>
> if (bits != NULL) {
> if ((*bits & TIOCM_DTR) == 0) {
> - mcr |= MCR_DTR;
> + mcr |= SC16IS752_MCR_DTR;
> } else {
> - mcr &= ~MCR_DTR;
> + mcr &= ~SC16IS752_MCR_DTR;
> }
>
> if ((*bits & TIOCM_RTS) == 0) {
> - mcr |= MCR_RTS;
> + mcr |= SC16IS752_MCR_RTS;
> } else {
> - mcr &= ~MCR_RTS;
> + mcr &= ~SC16IS752_MCR_RTS;
> }
> }
>
> if ((set & TIOCM_DTR) != 0) {
> - mcr &= ~MCR_DTR;
> + mcr &= ~SC16IS752_MCR_DTR;
> }
> if ((set & TIOCM_RTS) != 0) {
> - mcr &= ~MCR_RTS;
> + mcr &= ~SC16IS752_MCR_RTS;
> }
> if ((clear & TIOCM_DTR) != 0) {
> - mcr |= MCR_DTR;
> + mcr |= SC16IS752_MCR_DTR;
> }
> if ((clear & TIOCM_RTS) != 0) {
> - mcr |= MCR_RTS;
> + mcr |= SC16IS752_MCR_RTS;
> }
>
> write_reg(ctx, SC16IS752_MCR, &mcr, 1);
> @@ -416,11 +419,11 @@ void sc16is752_interrupt_handler(void *arg)
> read_2_reg(ctx, SC16IS752_IIR, SC16IS752_RXLVL, data);
> iir = data[0];
>
> - if ((iir & IIR_TX_INTERRUPT) != 0 && ctx->tx_in_progress > 0) {
> + if ((iir & SC16IS752_IIR_TX_INTERRUPT) != 0 && ctx->tx_in_progress > 0)
> {
> rtems_termios_dequeue_characters(ctx->tty, ctx->tx_in_progress);
> }
>
> - if ((iir & IIR_RX_INTERRUPT) != 0) {
> + if ((iir & SC16IS752_IIR_RX_INTERRUPT) != 0) {
> uint8_t buf[SC16IS752_FIFO_DEPTH];
> uint8_t rxlvl = data[1];
>
> --
> 2.18.0
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20180815/3c8ed285/attachment-0002.html>
More information about the devel
mailing list