11bd4fe43Sopenharmony_ci/**
21bd4fe43Sopenharmony_ci * @file hi_clock.h
31bd4fe43Sopenharmony_ci *
41bd4fe43Sopenharmony_ci * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
51bd4fe43Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
61bd4fe43Sopenharmony_ci * you may not use this file except in compliance with the License.
71bd4fe43Sopenharmony_ci * You may obtain a copy of the License at
81bd4fe43Sopenharmony_ci *
91bd4fe43Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
101bd4fe43Sopenharmony_ci *
111bd4fe43Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
121bd4fe43Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
131bd4fe43Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
141bd4fe43Sopenharmony_ci * See the License for the specific language governing permissions and
151bd4fe43Sopenharmony_ci * limitations under the License.
161bd4fe43Sopenharmony_ci */
171bd4fe43Sopenharmony_ci
181bd4fe43Sopenharmony_ci/**
191bd4fe43Sopenharmony_ci * @defgroup iot_clock Crystal Clock
201bd4fe43Sopenharmony_ci * @ingroup drivers
211bd4fe43Sopenharmony_ci */
221bd4fe43Sopenharmony_ci
231bd4fe43Sopenharmony_ci#ifndef __HI_CLOCK_H__
241bd4fe43Sopenharmony_ci#define __HI_CLOCK_H__
251bd4fe43Sopenharmony_ci#include <hi_types_base.h>
261bd4fe43Sopenharmony_ci
271bd4fe43Sopenharmony_ci#ifdef __cplusplus
281bd4fe43Sopenharmony_ciextern "C" {
291bd4fe43Sopenharmony_ci#endif
301bd4fe43Sopenharmony_ci
311bd4fe43Sopenharmony_ci#define HI_XTAL_24MHZ_VAL   24000000
321bd4fe43Sopenharmony_ci#define HI_XTAL_40MHZ_VAL   40000000
331bd4fe43Sopenharmony_ci
341bd4fe43Sopenharmony_ci/**
351bd4fe43Sopenharmony_ci * @ingroup iot_clock Xtal Clock Configuration
361bd4fe43Sopenharmony_ci *
371bd4fe43Sopenharmony_ci * Crystal clock frequency.CNcomment:晶体时钟频率。CNend
381bd4fe43Sopenharmony_ci */
391bd4fe43Sopenharmony_citypedef enum {
401bd4fe43Sopenharmony_ci    HI_XTAL_CLOCK_24M,   /**< 24M crystal clock frequency.CNcomment:24M晶体时钟CNend */
411bd4fe43Sopenharmony_ci    HI_XTAL_CLOCK_40M,   /**< 40M crystal clock frequency.CNcomment:40M晶体时钟CNend */
421bd4fe43Sopenharmony_ci    HI_XTAL_CLOCK_MAX    /**< MAX value, invalid.CNcomment:最大值,不可使用CNend */
431bd4fe43Sopenharmony_ci}hi_xtal_clock;
441bd4fe43Sopenharmony_ci
451bd4fe43Sopenharmony_ci/**
461bd4fe43Sopenharmony_ci* @ingroup  iot_clock
471bd4fe43Sopenharmony_ci* @brief Obtains the crystal clock frequency.CNcomment:获取晶体时钟频率。CNend
481bd4fe43Sopenharmony_ci*
491bd4fe43Sopenharmony_ci* @par 描述:
501bd4fe43Sopenharmony_ci*           Obtains the crystal clock frequency.CNcomment:获取晶体时钟频率。CNend
511bd4fe43Sopenharmony_ci*
521bd4fe43Sopenharmony_ci* @attention None
531bd4fe43Sopenharmony_ci* @param     None
541bd4fe43Sopenharmony_ci*
551bd4fe43Sopenharmony_ci* @retval #HI_XTAL_CLOCK_24M  24M crystal clock frequency.CNcomment:24M晶体时钟。CNend
561bd4fe43Sopenharmony_ci* @retval #HI_XTAL_CLOCK_40M  40M crystal clock frequency.CNcomment:40M晶体时钟。CNend
571bd4fe43Sopenharmony_ci* @retval #HI_XTAL_CLOCK_MAX  MAX value, invalid.CNcomment:最大值,不可使用。CNend
581bd4fe43Sopenharmony_ci* @par 依赖:
591bd4fe43Sopenharmony_ci*            @li hi_clock.h:Describes hardware clock APIS.
601bd4fe43Sopenharmony_ciCNcomment:文件用于描述硬件时钟相关接口。CNend
611bd4fe43Sopenharmony_ci* @see None
621bd4fe43Sopenharmony_ci*/
631bd4fe43Sopenharmony_ciHI_EXTERN hi_xtal_clock hi_get_xtal_clock(hi_void);
641bd4fe43Sopenharmony_ci
651bd4fe43Sopenharmony_ci/**
661bd4fe43Sopenharmony_ci* @ingroup  iot_clock
671bd4fe43Sopenharmony_ci* @brief Configure the frequency divider of the 24M/40M crystal oscillator to generate the 32K clock.
681bd4fe43Sopenharmony_ciCNcomment:配置24M/40M晶体分频值,产生32K时钟。CNend
691bd4fe43Sopenharmony_ci*
701bd4fe43Sopenharmony_ci* @par 描述:
711bd4fe43Sopenharmony_ci*        Configure the frequency divider of the 24M/40M crystal oscillator to generate the 32K clock.
721bd4fe43Sopenharmony_ciCNcomment:配置24M/40M晶体分频值,产生32K时钟。CNend
731bd4fe43Sopenharmony_ci*
741bd4fe43Sopenharmony_ci* @attention Impact Scope:systick、rtc.CNcomment:影响范围:systick、rtc。CNend
751bd4fe43Sopenharmony_ci* @param     None
761bd4fe43Sopenharmony_ci*
771bd4fe43Sopenharmony_ci* @retval None
781bd4fe43Sopenharmony_ci* @par 依赖:
791bd4fe43Sopenharmony_ci*            @li hi_clock.h:Describes hardware clock APIS.
801bd4fe43Sopenharmony_ciCNcomment:文件用于描述硬件时钟相关接口。CNend
811bd4fe43Sopenharmony_ci* @see None
821bd4fe43Sopenharmony_ci*/
831bd4fe43Sopenharmony_ciHI_EXTERN hi_void hi_cfg_xtal_clk_div(hi_void);
841bd4fe43Sopenharmony_ci
851bd4fe43Sopenharmony_ci#ifdef __cplusplus
861bd4fe43Sopenharmony_ci}
871bd4fe43Sopenharmony_ci#endif
881bd4fe43Sopenharmony_ci
891bd4fe43Sopenharmony_ci#endif
90