187 lines
6.1 KiB
C
187 lines
6.1 KiB
C
/*
|
|
* Copyright 2019 NXP
|
|
* All rights reserved.
|
|
*
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef FSL_SYSCTL_H_
|
|
#define FSL_SYSCTL_H_
|
|
|
|
#include "fsl_common.h"
|
|
/*******************************************************************************
|
|
* Definitions
|
|
******************************************************************************/
|
|
|
|
/*!
|
|
* @addtogroup sysctl
|
|
* @{
|
|
*/
|
|
|
|
/*! @file */
|
|
/*! @file fsl_sysctl.h */
|
|
|
|
/*******************************************************************************
|
|
* Definitions
|
|
******************************************************************************/
|
|
|
|
/*! @name Driver version */
|
|
/*! @{ */
|
|
/*! @brief Group sysctl driver version for SDK */
|
|
#define FSL_SYSCTL_DRIVER_VERSION (MAKE_VERSION(2, 0, 5)) /*!< Version 2.0.5. */
|
|
/*! @} */
|
|
|
|
/*! @brief SYSCTL share set*/
|
|
enum _sysctl_share_set_index
|
|
{
|
|
kSYSCTL_ShareSet0 = 0, /*!< share set 0 */
|
|
kSYSCTL_ShareSet1 = 1, /*!< share set 1 */
|
|
};
|
|
|
|
/*! @brief SYSCTL flexcomm signal */
|
|
typedef enum _sysctl_fcctrlsel_signal
|
|
{
|
|
kSYSCTL_FlexcommSignalSCK = SYSCTL_FCCTRLSEL_SCKINSEL_SHIFT, /*!< SCK signal */
|
|
kSYSCTL_FlexcommSignalWS = SYSCTL_FCCTRLSEL_WSINSEL_SHIFT, /*!< WS signal */
|
|
kSYSCTL_FlexcommSignalDataIn = SYSCTL_FCCTRLSEL_DATAINSEL_SHIFT, /*!< Data in signal */
|
|
kSYSCTL_FlexcommSignalDataOut = SYSCTL_FCCTRLSEL_DATAOUTSEL_SHIFT, /*!< Data out signal */
|
|
} sysctl_fcctrlsel_signal_t;
|
|
|
|
/*! @brief SYSCTL flexcomm index*/
|
|
enum _sysctl_share_src
|
|
{
|
|
kSYSCTL_Flexcomm0 = 0, /*!< share set 0 */
|
|
kSYSCTL_Flexcomm1 = 1, /*!< share set 1 */
|
|
kSYSCTL_Flexcomm2 = 2, /*!< share set 2 */
|
|
kSYSCTL_Flexcomm4 = 4, /*!< share set 4 */
|
|
kSYSCTL_Flexcomm5 = 5, /*!< share set 5 */
|
|
kSYSCTL_Flexcomm6 = 6, /*!< share set 6 */
|
|
kSYSCTL_Flexcomm7 = 7, /*!< share set 7 */
|
|
};
|
|
|
|
/*! @brief SYSCTL shared data out mask */
|
|
enum _sysctl_dataout_mask
|
|
{
|
|
kSYSCTL_Flexcomm0DataOut = SYSCTL_SHAREDCTRLSET_FC0DATAOUTEN_MASK, /*!< share set 0 */
|
|
kSYSCTL_Flexcomm1DataOut = SYSCTL_SHAREDCTRLSET_FC1DATAOUTEN_MASK, /*!< share set 1 */
|
|
kSYSCTL_Flexcomm2DataOut = SYSCTL_SHAREDCTRLSET_FC2DATAOUTEN_MASK, /*!< share set 2 */
|
|
kSYSCTL_Flexcomm4DataOut = SYSCTL_SHAREDCTRLSET_FC4DATAOUTEN_MASK, /*!< share set 4 */
|
|
kSYSCTL_Flexcomm5DataOut = SYSCTL_SHAREDCTRLSET_FC5DATAOUTEN_MASK, /*!< share set 5 */
|
|
kSYSCTL_Flexcomm6DataOut = SYSCTL_SHAREDCTRLSET_FC6DATAOUTEN_MASK, /*!< share set 6 */
|
|
kSYSCTL_Flexcomm7DataOut = SYSCTL_SHAREDCTRLSET_FC7DATAOUTEN_MASK, /*!< share set 7 */
|
|
};
|
|
|
|
/*! @brief SYSCTL flexcomm signal */
|
|
typedef enum _sysctl_sharedctrlset_signal
|
|
{
|
|
kSYSCTL_SharedCtrlSignalSCK = SYSCTL_SHAREDCTRLSET_SHAREDSCKSEL_SHIFT, /*!< SCK signal */
|
|
kSYSCTL_SharedCtrlSignalWS = SYSCTL_SHAREDCTRLSET_SHAREDWSSEL_SHIFT, /*!< WS signal */
|
|
kSYSCTL_SharedCtrlSignalDataIn = SYSCTL_SHAREDCTRLSET_SHAREDDATASEL_SHIFT, /*!< Data in signal */
|
|
kSYSCTL_SharedCtrlSignalDataOut = SYSCTL_SHAREDCTRLSET_FC0DATAOUTEN_SHIFT, /*!< Data out signal */
|
|
} sysctl_sharedctrlset_signal_t;
|
|
/*******************************************************************************
|
|
* API
|
|
******************************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*!
|
|
* @name Initialization and deinitialization
|
|
* @{
|
|
*/
|
|
|
|
/*!
|
|
* @brief SYSCTL initial
|
|
*
|
|
* @param base Base address of the SYSCTL peripheral.
|
|
*/
|
|
void SYSCTL_Init(SYSCTL_Type *base);
|
|
|
|
/*!
|
|
* @brief SYSCTL deinit
|
|
*
|
|
* @param base Base address of the SYSCTL peripheral.
|
|
*/
|
|
void SYSCTL_Deinit(SYSCTL_Type *base);
|
|
|
|
/*! @} */
|
|
|
|
/*!
|
|
* @name SYSCTL share signal configure
|
|
* @{
|
|
*/
|
|
|
|
/*!
|
|
* @brief SYSCTL share set configure for flexcomm
|
|
*
|
|
* @param base Base address of the SYSCTL peripheral.
|
|
* @param flexCommIndex index of flexcomm, reference _sysctl_share_src
|
|
* @param sckSet share set for sck,reference _sysctl_share_set_index
|
|
* @param wsSet share set for ws, reference _sysctl_share_set_index
|
|
* @param dataInSet share set for data in, reference _sysctl_share_set_index
|
|
* @param dataOutSet share set for data out, reference _sysctl_dataout_mask
|
|
*
|
|
*/
|
|
void SYSCTL_SetFlexcommShareSet(SYSCTL_Type *base,
|
|
uint32_t flexCommIndex,
|
|
uint32_t sckSet,
|
|
uint32_t wsSet,
|
|
uint32_t dataInSet,
|
|
uint32_t dataOutSet);
|
|
|
|
/*!
|
|
* @brief SYSCTL share set configure for separate signal
|
|
*
|
|
* @param base Base address of the SYSCTL peripheral
|
|
* @param flexCommIndex index of flexcomm,reference _sysctl_share_src
|
|
* @param signal FCCTRLSEL signal shift
|
|
* @param set share set for sck, reference _sysctl_share_set_index
|
|
*
|
|
*/
|
|
void SYSCTL_SetShareSet(SYSCTL_Type *base, uint32_t flexCommIndex, sysctl_fcctrlsel_signal_t signal, uint32_t set);
|
|
|
|
/*!
|
|
* @brief SYSCTL share set source configure
|
|
*
|
|
* @param base Base address of the SYSCTL peripheral
|
|
* @param setIndex index of share set, reference _sysctl_share_set_index
|
|
* @param sckShareSrc sck source for this share set,reference _sysctl_share_src
|
|
* @param wsShareSrc ws source for this share set,reference _sysctl_share_src
|
|
* @param dataInShareSrc data in source for this share set,reference _sysctl_share_src
|
|
* @param dataOutShareSrc data out source for this share set,reference _sysctl_dataout_mask
|
|
*
|
|
*/
|
|
void SYSCTL_SetShareSetSrc(SYSCTL_Type *base,
|
|
uint32_t setIndex,
|
|
uint32_t sckShareSrc,
|
|
uint32_t wsShareSrc,
|
|
uint32_t dataInShareSrc,
|
|
uint32_t dataOutShareSrc);
|
|
|
|
/*!
|
|
* @brief SYSCTL sck source configure
|
|
*
|
|
* @param base Base address of the SYSCTL peripheral
|
|
* @param setIndex index of share set, reference _sysctl_share_set_index
|
|
* @param signal FCCTRLSEL signal shift
|
|
* @param shareSrc sck source fro this share set,reference _sysctl_share_src
|
|
*
|
|
*/
|
|
void SYSCTL_SetShareSignalSrc(SYSCTL_Type *base,
|
|
uint32_t setIndex,
|
|
sysctl_sharedctrlset_signal_t signal,
|
|
uint32_t shareSrc);
|
|
|
|
/*! @} */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/*! @} */
|
|
|
|
#endif /* FSL_SYSCTL_H_ */
|