101 lines
2.8 KiB
C
101 lines
2.8 KiB
C
/****************************************************************************
|
|
|
|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
|
|
|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
|
be copied by any method or incorporated into another program without
|
|
the express written consent of Aerospace C.Power. This Information or any portion
|
|
thereof remains the property of Aerospace C.Power. The Information contained herein
|
|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
|
liability for its use in any way and conveys no license or title under
|
|
any patent or copyright and makes no representation or warranty that this
|
|
Information is free from patent or copyright infringement.
|
|
|
|
****************************************************************************/
|
|
#ifndef __ANA_H
|
|
#define __ANA_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if HW_PLATFORM > HW_PLATFORM_SIMU
|
|
#include "ana_hw.h"
|
|
#endif
|
|
|
|
#define ANA_PLL_CLK_MAX (4)
|
|
|
|
typedef struct _ana_pll_para_t{
|
|
uint8_t clk_id :4,
|
|
pll_n :4;
|
|
uint8_t pll_m;
|
|
} ana_pll_para_t;
|
|
|
|
extern ana_pll_para_t pll_param_tbl[ANA_PLL_CLK_MAX];
|
|
|
|
/**
|
|
*@brief ana_i2c_write.
|
|
*
|
|
* analog register write by hardware i2c protocol.
|
|
*
|
|
*@param reg_id [granite regiter index.]
|
|
*@param wdata [the data will be written to register.]
|
|
*@param mask [the mask for the written data.]
|
|
*@exception [none.]
|
|
*@return [none.]
|
|
*/
|
|
void ana_i2c_write(uint32_t reg_id, uint32_t wdata, uint32_t mask);
|
|
|
|
/**
|
|
*@brief ana_i2c_read.
|
|
*
|
|
* analog register read by hardware i2c protocol.
|
|
*
|
|
*@param reg_id [granite regiter index.]
|
|
*@param rdata [the data will be read from register.]
|
|
*@param rodata [the extern read only data.]
|
|
*@exception [none.]
|
|
*@return [none.]
|
|
*/
|
|
void ana_i2c_read(uint32_t reg_id, uint32_t *rdata, uint8_t *rodata);
|
|
|
|
/**
|
|
*@brief ana_i2c_soft_reset.
|
|
*
|
|
* enable or disable analog i2c soft reset.
|
|
*
|
|
*@param [none.]
|
|
*@exception [none.]
|
|
*@return [none.]
|
|
*/
|
|
void ana_i2c_soft_reset();
|
|
|
|
/**
|
|
*@brief ana_pll_read.
|
|
*
|
|
* read pll M and N parameters from analog register.
|
|
*
|
|
*@param pll_m [Feedback 8-bit divider control.]
|
|
*@param pll_n [Input 4-bit divider control.]
|
|
*@exception [none.]
|
|
*@return [none.]
|
|
*/
|
|
void ana_pll_read(uint8_t *pll_m, uint8_t *pll_n);
|
|
|
|
/**
|
|
*@brief ana_clk_en.
|
|
*
|
|
* enable or disable analog clk.
|
|
*
|
|
*@param en [true for enable or false for disable.]
|
|
*@exception [none.]
|
|
*@return [none.]
|
|
*/
|
|
void ana_clk_en(bool_t en);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif //__ANA_H
|