Files
kunlun/driver/inc/ana.h
2024-09-28 14:24:04 +08:00

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