/* * 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_ */