Beispiel #1
0
/*******************************************************************************
* Function Name: BLEIOT_UART_UartStop
********************************************************************************
*
* Summary:
*  Changes the HSIOM settings for the UART output pins (TX and/or RTS) to keep
*  them inactive after the block is disabled. The output pins are controlled by
*  the GPIO data register. Also, the function disables the skip start feature to
*  not cause it to trigger after the component is enabled.
*
* Parameters:
*  None
*
* Return:
*  None
*
*******************************************************************************/
void BLEIOT_UART_UartStop(void)
{
#if(BLEIOT_UART_SCB_MODE_UNCONFIG_CONST_CFG)
    #if (BLEIOT_UART_TX_SDA_MISO_PIN)
        if (BLEIOT_UART_CHECK_TX_SDA_MISO_PIN_USED)
        {
            /* Set GPIO to drive output pin */
            BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_TX_SDA_MISO_HSIOM_REG, BLEIOT_UART_TX_SDA_MISO_HSIOM_MASK,
                                           BLEIOT_UART_TX_SDA_MISO_HSIOM_POS, BLEIOT_UART_HSIOM_GPIO_SEL);
        }
    #endif /* (BLEIOT_UART_TX_SDA_MISO_PIN_PIN) */

    #if (BLEIOT_UART_RTS_SS0_PIN)
        if (BLEIOT_UART_CHECK_RTS_SS0_PIN_USED)
        {
            /* Set output pin state after block is disabled */
            BLEIOT_UART_uart_rts_spi_ss0_Write(BLEIOT_UART_GET_UART_RTS_INACTIVE);

            /* Set GPIO to drive output pin */
            BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_RTS_SS0_HSIOM_REG, BLEIOT_UART_RTS_SS0_HSIOM_MASK,
                                           BLEIOT_UART_RTS_SS0_HSIOM_POS, BLEIOT_UART_HSIOM_GPIO_SEL);
        }
    #endif /* (BLEIOT_UART_SS0_PIN) */

#else
    #if (BLEIOT_UART_UART_TX_PIN)
        /* Set GPIO to drive output pin */
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_TX_HSIOM_REG, BLEIOT_UART_TX_HSIOM_MASK,
                                       BLEIOT_UART_TX_HSIOM_POS, BLEIOT_UART_HSIOM_GPIO_SEL);
    #endif /* (BLEIOT_UART_UART_TX_PIN) */

    #if (BLEIOT_UART_UART_RTS_PIN)
        /* Set output pin state after block is disabled */
        BLEIOT_UART_rts_Write(BLEIOT_UART_GET_UART_RTS_INACTIVE);

        /* Set GPIO to drive output pin */
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_RTS_HSIOM_REG, BLEIOT_UART_RTS_HSIOM_MASK,
                                       BLEIOT_UART_RTS_HSIOM_POS, BLEIOT_UART_HSIOM_GPIO_SEL);
    #endif /* (BLEIOT_UART_UART_RTS_PIN) */

#endif /* (BLEIOT_UART_SCB_MODE_UNCONFIG_CONST_CFG) */

#if (BLEIOT_UART_UART_WAKE_ENABLE_CONST)
    /* Disable skip start feature used for wakeup */
    BLEIOT_UART_UART_RX_CTRL_REG &= (uint32) ~BLEIOT_UART_UART_RX_CTRL_SKIP_START;
#endif /* (BLEIOT_UART_UART_WAKE_ENABLE_CONST) */
}
Beispiel #2
0
/*******************************************************************************
* Function Name: BLEIOT_UART_UartPostEnable
********************************************************************************
*
* Summary:
*  Restores HSIOM settings for the UART output pins (TX and/or RTS) to be 
*  controlled by the SCB UART.
*
* Parameters:
*  None
*
* Return:
*  None
*
*******************************************************************************/
void BLEIOT_UART_UartPostEnable(void)
{
#if (BLEIOT_UART_SCB_MODE_UNCONFIG_CONST_CFG)

#if (BLEIOT_UART_TX_SDA_MISO_PIN)
    if (BLEIOT_UART_CHECK_TX_SDA_MISO_PIN_USED)
    {
        /* Set SCB UART to drive the output pin */
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_TX_SDA_MISO_HSIOM_REG, BLEIOT_UART_TX_SDA_MISO_HSIOM_MASK,
                                       BLEIOT_UART_TX_SDA_MISO_HSIOM_POS, BLEIOT_UART_HSIOM_UART_SEL);
    }
#endif /* (BLEIOT_UART_TX_SDA_MISO_PIN_PIN) */

#if (BLEIOT_UART_RTS_SS0_PIN)
    if (BLEIOT_UART_CHECK_RTS_SS0_PIN_USED)
    {
        /* Set SCB UART to drive the output pin */
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_RTS_SS0_HSIOM_REG, BLEIOT_UART_RTS_SS0_HSIOM_MASK,
                                       BLEIOT_UART_RTS_SS0_HSIOM_POS, BLEIOT_UART_HSIOM_UART_SEL);
    }
#endif /* (BLEIOT_UART_RTS_SS0_PIN) */

#else
#if (BLEIOT_UART_UART_TX_PIN)
     /* Set SCB UART to drive the output pin */
    BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_TX_HSIOM_REG, BLEIOT_UART_TX_HSIOM_MASK,
                                   BLEIOT_UART_TX_HSIOM_POS, BLEIOT_UART_HSIOM_UART_SEL);
#endif /* (BLEIOT_UART_UART_TX_PIN) */

#if (BLEIOT_UART_UART_RTS_PIN)
    /* Set SCB UART to drive the output pin */
    BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_RTS_HSIOM_REG, BLEIOT_UART_RTS_HSIOM_MASK,
                                   BLEIOT_UART_RTS_HSIOM_POS, BLEIOT_UART_HSIOM_UART_SEL);
#endif /* (BLEIOT_UART_UART_RTS_PIN) */

#endif /* (BLEIOT_UART_SCB_MODE_UNCONFIG_CONST_CFG) */
}
Beispiel #3
0
    /*******************************************************************************
    * Function Name: BLEIOT_UART_SetPins
    ********************************************************************************
    *
    * Summary:
    *  Sets the pins settings accordingly to the selected operation mode.
    *  Only available in the Unconfigured operation mode. The mode specific
    *  initialization function calls it.
    *  Pins configuration is set by PSoC Creator when a specific mode of operation
    *  is selected in design time.
    *
    * Parameters:
    *  mode:      Mode of SCB operation.
    *  subMode:   Sub-mode of SCB operation. It is only required for SPI and UART
    *             modes.
    *  uartEnableMask: enables TX or RX direction and RTS and CTS signals.
    *
    * Return:
    *  None
    *
    *******************************************************************************/
    void BLEIOT_UART_SetPins(uint32 mode, uint32 subMode, uint32 uartEnableMask)
    {
        uint32 hsiomSel [BLEIOT_UART_SCB_PINS_NUMBER];
        uint32 pinsDm   [BLEIOT_UART_SCB_PINS_NUMBER];

    #if (!BLEIOT_UART_CY_SCBIP_V1)
        uint32 pinsInBuf = 0u;
    #endif /* (!BLEIOT_UART_CY_SCBIP_V1) */

        uint32 i;

        /* Set default HSIOM to GPIO and Drive Mode to Analog Hi-Z */
        for (i = 0u; i < BLEIOT_UART_SCB_PINS_NUMBER; i++)
        {
            hsiomSel[i]  = BLEIOT_UART_HSIOM_DEF_SEL;
            pinsDm[i]    = BLEIOT_UART_PIN_DM_ALG_HIZ;
        }

        if ((BLEIOT_UART_SCB_MODE_I2C   == mode) ||
           (BLEIOT_UART_SCB_MODE_EZI2C == mode))
        {
            hsiomSel[BLEIOT_UART_RX_SCL_MOSI_PIN_INDEX] = BLEIOT_UART_HSIOM_I2C_SEL;
            hsiomSel[BLEIOT_UART_TX_SDA_MISO_PIN_INDEX] = BLEIOT_UART_HSIOM_I2C_SEL;

            pinsDm[BLEIOT_UART_RX_SCL_MOSI_PIN_INDEX] = BLEIOT_UART_PIN_DM_OD_LO;
            pinsDm[BLEIOT_UART_TX_SDA_MISO_PIN_INDEX] = BLEIOT_UART_PIN_DM_OD_LO;
        }
    #if (!BLEIOT_UART_CY_SCBIP_V1)
        else if (BLEIOT_UART_SCB_MODE_SPI == mode)
        {
            hsiomSel[BLEIOT_UART_RX_SCL_MOSI_PIN_INDEX] = BLEIOT_UART_HSIOM_SPI_SEL;
            hsiomSel[BLEIOT_UART_TX_SDA_MISO_PIN_INDEX] = BLEIOT_UART_HSIOM_SPI_SEL;
            hsiomSel[BLEIOT_UART_CTS_SCLK_PIN_INDEX] = BLEIOT_UART_HSIOM_SPI_SEL;

            if (BLEIOT_UART_SPI_SLAVE == subMode)
            {
                /* Slave */
                pinsDm[BLEIOT_UART_RX_SCL_MOSI_PIN_INDEX] = BLEIOT_UART_PIN_DM_DIG_HIZ;
                pinsDm[BLEIOT_UART_TX_SDA_MISO_PIN_INDEX] = BLEIOT_UART_PIN_DM_STRONG;
                pinsDm[BLEIOT_UART_CTS_SCLK_PIN_INDEX] = BLEIOT_UART_PIN_DM_DIG_HIZ;

            #if (BLEIOT_UART_RTS_SS0_PIN)
                /* Only SS0 is valid choice for Slave */
                hsiomSel[BLEIOT_UART_RTS_SS0_PIN_INDEX] = BLEIOT_UART_HSIOM_SPI_SEL;
                pinsDm  [BLEIOT_UART_RTS_SS0_PIN_INDEX] = BLEIOT_UART_PIN_DM_DIG_HIZ;
            #endif /* (BLEIOT_UART_RTS_SS0_PIN) */

            #if (BLEIOT_UART_TX_SDA_MISO_PIN)
                /* Disable input buffer */
                 pinsInBuf |= BLEIOT_UART_TX_SDA_MISO_PIN_MASK;
            #endif /* (BLEIOT_UART_TX_SDA_MISO_PIN) */
            }
            else /* (Master) */
            {
                pinsDm[BLEIOT_UART_RX_SCL_MOSI_PIN_INDEX] = BLEIOT_UART_PIN_DM_STRONG;
                pinsDm[BLEIOT_UART_TX_SDA_MISO_PIN_INDEX] = BLEIOT_UART_PIN_DM_DIG_HIZ;
                pinsDm[BLEIOT_UART_CTS_SCLK_PIN_INDEX] = BLEIOT_UART_PIN_DM_STRONG;

            #if (BLEIOT_UART_RTS_SS0_PIN)
                hsiomSel [BLEIOT_UART_RTS_SS0_PIN_INDEX] = BLEIOT_UART_HSIOM_SPI_SEL;
                pinsDm   [BLEIOT_UART_RTS_SS0_PIN_INDEX] = BLEIOT_UART_PIN_DM_STRONG;
                pinsInBuf |= BLEIOT_UART_RTS_SS0_PIN_MASK;
            #endif /* (BLEIOT_UART_RTS_SS0_PIN) */

            #if (BLEIOT_UART_SS1_PIN)
                hsiomSel [BLEIOT_UART_SS1_PIN_INDEX] = BLEIOT_UART_HSIOM_SPI_SEL;
                pinsDm   [BLEIOT_UART_SS1_PIN_INDEX] = BLEIOT_UART_PIN_DM_STRONG;
                pinsInBuf |= BLEIOT_UART_SS1_PIN_MASK;
            #endif /* (BLEIOT_UART_SS1_PIN) */

            #if (BLEIOT_UART_SS2_PIN)
                hsiomSel [BLEIOT_UART_SS2_PIN_INDEX] = BLEIOT_UART_HSIOM_SPI_SEL;
                pinsDm   [BLEIOT_UART_SS2_PIN_INDEX] = BLEIOT_UART_PIN_DM_STRONG;
                pinsInBuf |= BLEIOT_UART_SS2_PIN_MASK;
            #endif /* (BLEIOT_UART_SS2_PIN) */

            #if (BLEIOT_UART_SS3_PIN)
                hsiomSel [BLEIOT_UART_SS3_PIN_INDEX] = BLEIOT_UART_HSIOM_SPI_SEL;
                pinsDm   [BLEIOT_UART_SS3_PIN_INDEX] = BLEIOT_UART_PIN_DM_STRONG;
                pinsInBuf |= BLEIOT_UART_SS3_PIN_MASK;
            #endif /* (BLEIOT_UART_SS3_PIN) */

                /* Disable input buffers */
            #if (BLEIOT_UART_RX_SCL_MOSI_PIN)
                pinsInBuf |= BLEIOT_UART_RX_SCL_MOSI_PIN_MASK;
            #endif /* (BLEIOT_UART_RX_SCL_MOSI_PIN) */

             #if (BLEIOT_UART_RX_WAKE_SCL_MOSI_PIN)
                pinsInBuf |= BLEIOT_UART_RX_WAKE_SCL_MOSI_PIN_MASK;
            #endif /* (BLEIOT_UART_RX_WAKE_SCL_MOSI_PIN) */

            #if (BLEIOT_UART_CTS_SCLK_PIN)
                pinsInBuf |= BLEIOT_UART_CTS_SCLK_PIN_MASK;
            #endif /* (BLEIOT_UART_CTS_SCLK_PIN) */
            }
        }
        else /* UART */
        {
            if (BLEIOT_UART_UART_MODE_SMARTCARD == subMode)
            {
                /* SmartCard */
                hsiomSel[BLEIOT_UART_TX_SDA_MISO_PIN_INDEX] = BLEIOT_UART_HSIOM_UART_SEL;
                pinsDm  [BLEIOT_UART_TX_SDA_MISO_PIN_INDEX] = BLEIOT_UART_PIN_DM_OD_LO;
            }
            else /* Standard or IrDA */
            {
                if (0u != (BLEIOT_UART_UART_RX_PIN_ENABLE & uartEnableMask))
                {
                    hsiomSel[BLEIOT_UART_RX_SCL_MOSI_PIN_INDEX] = BLEIOT_UART_HSIOM_UART_SEL;
                    pinsDm  [BLEIOT_UART_RX_SCL_MOSI_PIN_INDEX] = BLEIOT_UART_PIN_DM_DIG_HIZ;
                }

                if (0u != (BLEIOT_UART_UART_TX_PIN_ENABLE & uartEnableMask))
                {
                    hsiomSel[BLEIOT_UART_TX_SDA_MISO_PIN_INDEX] = BLEIOT_UART_HSIOM_UART_SEL;
                    pinsDm  [BLEIOT_UART_TX_SDA_MISO_PIN_INDEX] = BLEIOT_UART_PIN_DM_STRONG;

                #if (BLEIOT_UART_TX_SDA_MISO_PIN)
                     pinsInBuf |= BLEIOT_UART_TX_SDA_MISO_PIN_MASK;
                #endif /* (BLEIOT_UART_TX_SDA_MISO_PIN) */
                }

            #if !(BLEIOT_UART_CY_SCBIP_V0 || BLEIOT_UART_CY_SCBIP_V1)
                if (BLEIOT_UART_UART_MODE_STD == subMode)
                {
                    if (0u != (BLEIOT_UART_UART_CTS_PIN_ENABLE & uartEnableMask))
                    {
                        /* CTS input is multiplexed with SCLK */
                        hsiomSel[BLEIOT_UART_CTS_SCLK_PIN_INDEX] = BLEIOT_UART_HSIOM_UART_SEL;
                        pinsDm  [BLEIOT_UART_CTS_SCLK_PIN_INDEX] = BLEIOT_UART_PIN_DM_DIG_HIZ;
                    }

                    if (0u != (BLEIOT_UART_UART_RTS_PIN_ENABLE & uartEnableMask))
                    {
                        /* RTS output is multiplexed with SS0 */
                        hsiomSel[BLEIOT_UART_RTS_SS0_PIN_INDEX] = BLEIOT_UART_HSIOM_UART_SEL;
                        pinsDm  [BLEIOT_UART_RTS_SS0_PIN_INDEX] = BLEIOT_UART_PIN_DM_STRONG;

                    #if (BLEIOT_UART_RTS_SS0_PIN)
                        /* Disable input buffer */
                        pinsInBuf |= BLEIOT_UART_RTS_SS0_PIN_MASK;
                    #endif /* (BLEIOT_UART_RTS_SS0_PIN) */
                    }
                }
            #endif /* !(BLEIOT_UART_CY_SCBIP_V0 || BLEIOT_UART_CY_SCBIP_V1) */
            }
        }
    #endif /* (!BLEIOT_UART_CY_SCBIP_V1) */

    /* Configure pins: set HSIOM, DM and InputBufEnable */
    /* Note: the DR register settings do not effect the pin output if HSIOM is other than GPIO */

    #if (BLEIOT_UART_RX_WAKE_SCL_MOSI_PIN)
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_RX_WAKE_SCL_MOSI_HSIOM_REG,
                                       BLEIOT_UART_RX_WAKE_SCL_MOSI_HSIOM_MASK,
                                       BLEIOT_UART_RX_WAKE_SCL_MOSI_HSIOM_POS,
                                       hsiomSel[BLEIOT_UART_RX_WAKE_SCL_MOSI_PIN_INDEX]);

        BLEIOT_UART_uart_rx_wake_i2c_scl_spi_mosi_SetDriveMode((uint8)
                                                               pinsDm[BLEIOT_UART_RX_WAKE_SCL_MOSI_PIN_INDEX]);

        BLEIOT_UART_SET_INP_DIS(BLEIOT_UART_uart_rx_wake_i2c_scl_spi_mosi_INP_DIS,
                                     BLEIOT_UART_uart_rx_wake_i2c_scl_spi_mosi_MASK,
                                     (0u != (pinsInBuf & BLEIOT_UART_RX_WAKE_SCL_MOSI_PIN_MASK)));

         /* Set interrupt on falling edge */
        BLEIOT_UART_SET_INCFG_TYPE(BLEIOT_UART_RX_WAKE_SCL_MOSI_INTCFG_REG,
                                        BLEIOT_UART_RX_WAKE_SCL_MOSI_INTCFG_TYPE_MASK,
                                        BLEIOT_UART_RX_WAKE_SCL_MOSI_INTCFG_TYPE_POS,
                                        BLEIOT_UART_INTCFG_TYPE_FALLING_EDGE);
    #endif /* (BLEIOT_UART_RX_WAKE_SCL_MOSI_PIN) */

    #if (BLEIOT_UART_RX_SCL_MOSI_PIN)
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_RX_SCL_MOSI_HSIOM_REG,
                                       BLEIOT_UART_RX_SCL_MOSI_HSIOM_MASK,
                                       BLEIOT_UART_RX_SCL_MOSI_HSIOM_POS,
                                        hsiomSel[BLEIOT_UART_RX_SCL_MOSI_PIN_INDEX]);

        BLEIOT_UART_uart_rx_i2c_scl_spi_mosi_SetDriveMode((uint8) pinsDm[BLEIOT_UART_RX_SCL_MOSI_PIN_INDEX]);

    #if (!BLEIOT_UART_CY_SCBIP_V1)
        BLEIOT_UART_SET_INP_DIS(BLEIOT_UART_uart_rx_i2c_scl_spi_mosi_INP_DIS,
                                     BLEIOT_UART_uart_rx_i2c_scl_spi_mosi_MASK,
                                     (0u != (pinsInBuf & BLEIOT_UART_RX_SCL_MOSI_PIN_MASK)));
    #endif /* (!BLEIOT_UART_CY_SCBIP_V1) */
    #endif /* (BLEIOT_UART_RX_SCL_MOSI_PIN) */

    #if (BLEIOT_UART_TX_SDA_MISO_PIN)
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_TX_SDA_MISO_HSIOM_REG,
                                       BLEIOT_UART_TX_SDA_MISO_HSIOM_MASK,
                                       BLEIOT_UART_TX_SDA_MISO_HSIOM_POS,
                                        hsiomSel[BLEIOT_UART_TX_SDA_MISO_PIN_INDEX]);

        BLEIOT_UART_uart_tx_i2c_sda_spi_miso_SetDriveMode((uint8) pinsDm[BLEIOT_UART_TX_SDA_MISO_PIN_INDEX]);

    #if (!BLEIOT_UART_CY_SCBIP_V1)
        BLEIOT_UART_SET_INP_DIS(BLEIOT_UART_uart_tx_i2c_sda_spi_miso_INP_DIS,
                                     BLEIOT_UART_uart_tx_i2c_sda_spi_miso_MASK,
                                    (0u != (pinsInBuf & BLEIOT_UART_TX_SDA_MISO_PIN_MASK)));
    #endif /* (!BLEIOT_UART_CY_SCBIP_V1) */
    #endif /* (BLEIOT_UART_RX_SCL_MOSI_PIN) */

    #if (BLEIOT_UART_CTS_SCLK_PIN)
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_CTS_SCLK_HSIOM_REG,
                                       BLEIOT_UART_CTS_SCLK_HSIOM_MASK,
                                       BLEIOT_UART_CTS_SCLK_HSIOM_POS,
                                       hsiomSel[BLEIOT_UART_CTS_SCLK_PIN_INDEX]);

        BLEIOT_UART_uart_cts_spi_sclk_SetDriveMode((uint8) pinsDm[BLEIOT_UART_CTS_SCLK_PIN_INDEX]);

        BLEIOT_UART_SET_INP_DIS(BLEIOT_UART_uart_cts_spi_sclk_INP_DIS,
                                     BLEIOT_UART_uart_cts_spi_sclk_MASK,
                                     (0u != (pinsInBuf & BLEIOT_UART_CTS_SCLK_PIN_MASK)));
    #endif /* (BLEIOT_UART_CTS_SCLK_PIN) */

    #if (BLEIOT_UART_RTS_SS0_PIN)
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_RTS_SS0_HSIOM_REG,
                                       BLEIOT_UART_RTS_SS0_HSIOM_MASK,
                                       BLEIOT_UART_RTS_SS0_HSIOM_POS,
                                       hsiomSel[BLEIOT_UART_RTS_SS0_PIN_INDEX]);

        BLEIOT_UART_uart_rts_spi_ss0_SetDriveMode((uint8) pinsDm[BLEIOT_UART_RTS_SS0_PIN_INDEX]);

        BLEIOT_UART_SET_INP_DIS(BLEIOT_UART_uart_rts_spi_ss0_INP_DIS,
                                     BLEIOT_UART_uart_rts_spi_ss0_MASK,
                                     (0u != (pinsInBuf & BLEIOT_UART_RTS_SS0_PIN_MASK)));
    #endif /* (BLEIOT_UART_RTS_SS0_PIN) */

    #if (BLEIOT_UART_SS1_PIN)
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_SS1_HSIOM_REG,
                                       BLEIOT_UART_SS1_HSIOM_MASK,
                                       BLEIOT_UART_SS1_HSIOM_POS,
                                       hsiomSel[BLEIOT_UART_SS1_PIN_INDEX]);

        BLEIOT_UART_spi_ss1_SetDriveMode((uint8) pinsDm[BLEIOT_UART_SS1_PIN_INDEX]);

        BLEIOT_UART_SET_INP_DIS(BLEIOT_UART_spi_ss1_INP_DIS,
                                     BLEIOT_UART_spi_ss1_MASK,
                                     (0u != (pinsInBuf & BLEIOT_UART_SS1_PIN_MASK)));
    #endif /* (BLEIOT_UART_SS1_PIN) */

    #if (BLEIOT_UART_SS2_PIN)
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_SS2_HSIOM_REG,
                                       BLEIOT_UART_SS2_HSIOM_MASK,
                                       BLEIOT_UART_SS2_HSIOM_POS,
                                       hsiomSel[BLEIOT_UART_SS2_PIN_INDEX]);

        BLEIOT_UART_spi_ss2_SetDriveMode((uint8) pinsDm[BLEIOT_UART_SS2_PIN_INDEX]);

        BLEIOT_UART_SET_INP_DIS(BLEIOT_UART_spi_ss2_INP_DIS,
                                     BLEIOT_UART_spi_ss2_MASK,
                                     (0u != (pinsInBuf & BLEIOT_UART_SS2_PIN_MASK)));
    #endif /* (BLEIOT_UART_SS2_PIN) */

    #if (BLEIOT_UART_SS3_PIN)
        BLEIOT_UART_SET_HSIOM_SEL(BLEIOT_UART_SS3_HSIOM_REG,
                                       BLEIOT_UART_SS3_HSIOM_MASK,
                                       BLEIOT_UART_SS3_HSIOM_POS,
                                       hsiomSel[BLEIOT_UART_SS3_PIN_INDEX]);

        BLEIOT_UART_spi_ss3_SetDriveMode((uint8) pinsDm[BLEIOT_UART_SS3_PIN_INDEX]);

        BLEIOT_UART_SET_INP_DIS(BLEIOT_UART_spi_ss3_INP_DIS,
                                     BLEIOT_UART_spi_ss3_MASK,
                                     (0u != (pinsInBuf & BLEIOT_UART_SS3_PIN_MASK)));
    #endif /* (BLEIOT_UART_SS3_PIN) */
    }