8 #ifndef HPM_OPAMP_DRV_H
9 #define HPM_OPAMP_DRV_H
13 #include "hpm_soc_feature.h"
22 #define OPAMP_MODE_FOLLOW_KEY (0x06)
23 #define OPAMP_MODE_INVERT_INDEX0_KEY (0x08)
24 #define OPAMP_MODE_INVERT_INDEX1_KEY (0x18)
25 #define OPAMP_MODE_NON_INVERT_INDEX0_KEY (0x01)
26 #define OPAMP_MODE_NON_INVERT_INDEX1_KEY (0x09)
27 #define OPAMP_MODE_NON_INVERT_INDEX2_KEY (0x11)
28 #define OPAMP_MODE_NON_INVERT_INDEX3_KEY (0x19)
29 #define OPAMP_MODE_NON_INVERT_INDEX4_KEY (0x09)
30 #define OPAMP_MODE_USER_DEFINE_KEY (0x04)
uint32_t hpm_stat_t
Definition: hpm_common.h:126
static void opamp_preset_phase_margin_cap_enable(OPAMP_Type *opamp, uint8_t preset_chn)
enable phase margin compensation cap preset
Definition: hpm_opamp_drv.h:254
static void opamp_miller_cap_select(OPAMP_Type *opamp, opamp_miller_cap_t select)
opamp miller cap selection
Definition: hpm_opamp_drv.h:221
hpm_stat_t opamp_init(OPAMP_Type *opamp, opamp_cfg_t *cfg)
opamp initialisation functions Use this function to initialise the op-amp to different modes
Definition: hpm_opamp_drv.c:3
static void opamp_preset_mode_set(OPAMP_Type *opamp, uint8_t preset_chn, uint8_t mode)
opamp preset set mode
Definition: hpm_opamp_drv.h:532
static void opamp_phase_margin_cap_disable(OPAMP_Type *opamp)
disable phase margin compensation cap
Definition: hpm_opamp_drv.h:264
static void opamp_phase_margin_cap_enable(OPAMP_Type *opamp)
enable phase margin compensation cap
Definition: hpm_opamp_drv.h:243
static void opamp_disable_sw_preset(OPAMP_Type *opamp)
Disable software preset.
Definition: hpm_opamp_drv.h:464
static void opamp_enable_sw_preset(OPAMP_Type *opamp)
Enable software preset.
Definition: hpm_opamp_drv.h:454
opamp_inm_pad_t
Reverse Input Pin Selection.
Definition: hpm_opamp_drv.h:36
static void opamp_set_sw_preset_val(OPAMP_Type *opamp, opamp_cfg_preset_chn_t val)
Set opamp preset value.
Definition: hpm_opamp_drv.h:444
static void opamp_preset_enable_hw_trig(OPAMP_Type *opamp, uint8_t preset_chn)
opamp enable preset hardware trig
Definition: hpm_opamp_drv.h:498
opamp_gain_t
Gain multiplier selection.
Definition: hpm_opamp_drv.h:48
opamp_inp_pad_t
Positive Input Pin Selection.
Definition: hpm_opamp_drv.h:77
static void opamp_disable(OPAMP_Type *opamp)
disable opamp function
Definition: hpm_opamp_drv.h:199
static void opamp_set_preset_x_chn(OPAMP_Type *opamp, uint8_t preset_chn, uint8_t chn)
Set preset x channel value.
Definition: hpm_opamp_drv.h:477
static void opamp_preset_gain_select(OPAMP_Type *opamp, uint8_t preset_chn, opamp_gain_t select)
main string resistor selection preset
Definition: hpm_opamp_drv.h:323
union opamp_cfg_preset0 opamp_ctrl_cfg_preset0_t
opamp configuration preset0
hpm_stat_t opamp_set_preset_cfg(OPAMP_Type *opamp, uint8_t preset_chn, opamp_cfg_t *cfg)
Set preset cfg.
Definition: hpm_opamp_drv.c:110
union opamp_cfg_preset1 opamp_ctrl_cfg_preset1_t
opamp configuration preset1
static void opamp_preset_connect_vssa(OPAMP_Type *opamp, uint8_t preset_chn)
connect the main series resistor and VSSA preset
Definition: hpm_opamp_drv.h:365
static void opamp_enable(OPAMP_Type *opamp)
enable opamp function
Definition: hpm_opamp_drv.h:178
static void opamp_disconnect_vssa(OPAMP_Type *opamp)
disconnect the main series resistor and VSSA
Definition: hpm_opamp_drv.h:333
static void opamp_mode_set(OPAMP_Type *opamp, uint8_t mode)
opamp set mode
Definition: hpm_opamp_drv.h:520
static void opamp_preset_opamp_enable(OPAMP_Type *opamp, uint8_t preset_chn)
preset enable opamp function
Definition: hpm_opamp_drv.h:189
static bool opamp_get_is_preset(OPAMP_Type *opamp)
get the current preset value
Definition: hpm_opamp_drv.h:412
static void opamp_preset_inn_pad_select(OPAMP_Type *opamp, uint8_t preset_chn, opamp_inm_pad_t select)
opamp core inm connect pad preset
Definition: hpm_opamp_drv.h:298
static void opamp_preset_inp_pad_select(OPAMP_Type *opamp, uint8_t preset_chn, opamp_inp_pad_t select)
opamp inp select preset
Definition: hpm_opamp_drv.h:388
static void opamp_preset_phase_margin_cap_disable(OPAMP_Type *opamp, uint8_t preset_chn)
disable phase margin compensation cap preset
Definition: hpm_opamp_drv.h:275
static uint8_t opamp_get_trig_conflict_status(OPAMP_Type *opamp)
Get the trigger conflict status.
Definition: hpm_opamp_drv.h:423
opamp_cfg_preset_chn_t
opamp preset channel
Definition: hpm_opamp_drv.h:92
static void opamp_connect_vssa(OPAMP_Type *opamp)
connect the main series resistor and VSSA
Definition: hpm_opamp_drv.h:354
static uint8_t opamp_get_cur_preset(OPAMP_Type *opamp)
opamp get current preset
Definition: hpm_opamp_drv.h:400
struct opamp_cfg opamp_cfg_t
static void opamp_preset_miller_cap_select(OPAMP_Type *opamp, uint8_t preset_chn, opamp_miller_cap_t select)
opamp miller cap selection preset
Definition: hpm_opamp_drv.h:233
static void opamp_preset_disconnect_vssa(OPAMP_Type *opamp, uint8_t preset_chn)
disconnect the main series resistor and VSSA preset
Definition: hpm_opamp_drv.h:344
static void opamp_inp_pad_select(OPAMP_Type *opamp, opamp_inp_pad_t select)
opamp inp select
Definition: hpm_opamp_drv.h:376
opamp_miller_cap_t
Miller Capacitor Selection.
Definition: hpm_opamp_drv.h:62
static void opamp_preset_disable_hw_trig(OPAMP_Type *opamp, uint8_t preset_chn)
opamp disable preset hardware trig
Definition: hpm_opamp_drv.h:509
static void opamp_clear_conflict_status(OPAMP_Type *opamp)
Clear the trigger conflict status.
Definition: hpm_opamp_drv.h:433
static void opamp_inn_pad_select(OPAMP_Type *opamp, opamp_inm_pad_t select)
opamp core inm connect pad
Definition: hpm_opamp_drv.h:286
static void opamp_gain_select(OPAMP_Type *opamp, opamp_gain_t select)
main string resistor selection
Definition: hpm_opamp_drv.h:310
opamp_mode_t
operational amplifier
Definition: hpm_opamp_drv.h:107
static void opamp_preset_opamp_disable(OPAMP_Type *opamp, uint8_t preset_chn)
preset disable opamp function
Definition: hpm_opamp_drv.h:210
@ inm_pad_floating
Definition: hpm_opamp_drv.h:41
@ inm_pad_vim3
Definition: hpm_opamp_drv.h:40
@ inm_pad_vim1
Definition: hpm_opamp_drv.h:38
@ inm_pad_vim2
Definition: hpm_opamp_drv.h:39
@ inm_pad_vim0
Definition: hpm_opamp_drv.h:37
@ gain_x_4
Definition: hpm_opamp_drv.h:50
@ gain_x_16
Definition: hpm_opamp_drv.h:52
@ gain_x_8
Definition: hpm_opamp_drv.h:51
@ gain_x_2
Definition: hpm_opamp_drv.h:49
@ gain_x_128
Definition: hpm_opamp_drv.h:55
@ gain_x_64
Definition: hpm_opamp_drv.h:54
@ gain_x_32
Definition: hpm_opamp_drv.h:53
@ inp_pad_vip0
Definition: hpm_opamp_drv.h:78
@ inp_pad_vip3
Definition: hpm_opamp_drv.h:81
@ inp_pad_vsupply_x_0_75
Definition: hpm_opamp_drv.h:84
@ inp_pad_vsupply_x_0_25
Definition: hpm_opamp_drv.h:82
@ inp_pad_vip2
Definition: hpm_opamp_drv.h:80
@ inp_pad_vsupply_x_0_5
Definition: hpm_opamp_drv.h:83
@ inp_pad_floating
Definition: hpm_opamp_drv.h:85
@ inp_pad_vip1
Definition: hpm_opamp_drv.h:79
@ cfg_preset_7
Definition: hpm_opamp_drv.h:100
@ cfg_preset_3
Definition: hpm_opamp_drv.h:96
@ cfg_preset_6
Definition: hpm_opamp_drv.h:99
@ cfg_preset_1
Definition: hpm_opamp_drv.h:94
@ cfg_preset_2
Definition: hpm_opamp_drv.h:95
@ cfg_preset_4
Definition: hpm_opamp_drv.h:97
@ cfg_preset_5
Definition: hpm_opamp_drv.h:98
@ cfg_preset_0
Definition: hpm_opamp_drv.h:93
@ miller_cap_x_15
Definition: hpm_opamp_drv.h:67
@ miller_cap_x_5
Definition: hpm_opamp_drv.h:69
@ miller_cap_x_6
Definition: hpm_opamp_drv.h:70
@ miller_cap_x_18
Definition: hpm_opamp_drv.h:68
@ miller_cap_x_10
Definition: hpm_opamp_drv.h:65
@ miller_cap_x_7
Definition: hpm_opamp_drv.h:63
@ miller_cap_x_8
Definition: hpm_opamp_drv.h:64
@ miller_cap_x_13
Definition: hpm_opamp_drv.h:66
@ mode_follow
Definition: hpm_opamp_drv.h:108
@ mode_invert_dac_vol
Definition: hpm_opamp_drv.h:111
@ mode_non_invert_extern_vol
Definition: hpm_opamp_drv.h:113
@ mode_invert_intern_vol
Definition: hpm_opamp_drv.h:109
@ mode_user
Definition: hpm_opamp_drv.h:115
@ mode_non_invert_gnd_vol
Definition: hpm_opamp_drv.h:112
@ mode_non_invert_dac_vol
Definition: hpm_opamp_drv.h:114
@ mode_invert_extern_vol
Definition: hpm_opamp_drv.h:110
#define OPAMP_STATUS_PRESET_ACT_GET(x)
Definition: hpm_opamp_regs.h:118
#define OPAMP_CTRL0_MILLER_SEL_SET(x)
Definition: hpm_opamp_regs.h:77
#define OPAMP_CTRL0_DISABLE_PM_CAP_MASK
Definition: hpm_opamp_regs.h:66
#define OPAMP_CTRL0_VIM_SEL_MASK
Definition: hpm_opamp_regs.h:39
#define OPAMP_CFG_CFG1_GAIN_SEL_MASK
Definition: hpm_opamp_regs.h:230
#define OPAMP_STATUS_CUR_PRESET_GET(x)
Definition: hpm_opamp_regs.h:127
#define OPAMP_CFG_CFG0_MILLER_SEL_SET(x)
Definition: hpm_opamp_regs.h:166
#define OPAMP_CFG_CFG2_CHANNEL_SET(x)
Definition: hpm_opamp_regs.h:242
#define OPAMP_CTRL0_MILLER_SEL_MASK
Definition: hpm_opamp_regs.h:75
#define OPAMP_CTRL1_SW_SEL_SET(x)
Definition: hpm_opamp_regs.h:147
#define OPAMP_CTRL1_SW_SEL_MASK
Definition: hpm_opamp_regs.h:145
#define OPAMP_CFG_PRESET5
Definition: hpm_opamp_regs.h:253
#define OPAMP_CFG_PRESET1
Definition: hpm_opamp_regs.h:249
#define OPAMP_CFG_CFG0_VIM_SEL_MASK
Definition: hpm_opamp_regs.h:173
#define OPAMP_CTRL0_VIP_SEL_MASK
Definition: hpm_opamp_regs.h:93
#define OPAMP_CTRL0_GAIN_SEL_MASK
Definition: hpm_opamp_regs.h:57
#define OPAMP_STATUS_TRIG_CONFLICT_GET(x)
Definition: hpm_opamp_regs.h:108
#define OPAMP_CFG_PRESET7
Definition: hpm_opamp_regs.h:255
#define OPAMP_CFG_PRESET4
Definition: hpm_opamp_regs.h:252
#define OPAMP_CFG_CFG1_GAIN_SEL_SET(x)
Definition: hpm_opamp_regs.h:232
#define OPAMP_CTRL0_MODE_SET(x)
Definition: hpm_opamp_regs.h:50
#define OPAMP_CTRL0_GAIN_SEL_SET(x)
Definition: hpm_opamp_regs.h:59
#define OPAMP_CFG_PRESET6
Definition: hpm_opamp_regs.h:254
#define OPAMP_STATUS_TRIG_CONFLICT_MASK
Definition: hpm_opamp_regs.h:105
#define OPAMP_CFG_CFG0_VIP_SEL_MASK
Definition: hpm_opamp_regs.h:182
#define OPAMP_CFG_CFG0_DISABLE_PM_CAP_MASK
Definition: hpm_opamp_regs.h:155
#define OPAMP_CFG_CFG0_VIM_SEL_SET(x)
Definition: hpm_opamp_regs.h:175
#define OPAMP_CFG_PRESET3
Definition: hpm_opamp_regs.h:251
#define OPAMP_CFG_CFG1_VBYPASS_LV_MASK
Definition: hpm_opamp_regs.h:212
#define OPAMP_CTRL0_VIP_SEL_SET(x)
Definition: hpm_opamp_regs.h:95
#define OPAMP_CTRL0_EN_LV_MASK
Definition: hpm_opamp_regs.h:30
#define OPAMP_CFG_CFG1_MODE_SET(x)
Definition: hpm_opamp_regs.h:223
#define OPAMP_CTRL0_VIM_SEL_SET(x)
Definition: hpm_opamp_regs.h:41
#define OPAMP_CFG_CFG1_MODE_MASK
Definition: hpm_opamp_regs.h:221
#define OPAMP_CTRL0_MODE_MASK
Definition: hpm_opamp_regs.h:48
#define OPAMP_CFG_CFG1_EN_LV_MASK
Definition: hpm_opamp_regs.h:203
#define OPAMP_CFG_CFG0_MILLER_SEL_MASK
Definition: hpm_opamp_regs.h:164
#define OPAMP_CFG_PRESET2
Definition: hpm_opamp_regs.h:250
#define OPAMP_CTRL0_VBYPASS_MASK
Definition: hpm_opamp_regs.h:84
#define OPAMP_CTRL1_SW_PRESET_MASK
Definition: hpm_opamp_regs.h:136
#define OPAMP_CFG_PRESET0
Definition: hpm_opamp_regs.h:248
#define OPAMP_CFG_CFG0_VIP_SEL_SET(x)
Definition: hpm_opamp_regs.h:184
#define OPAMP_CFG_CFG1_HW_TRIG_EN_MASK
Definition: hpm_opamp_regs.h:194
Definition: hpm_opamp_regs.h:12
__RW uint32_t STATUS
Definition: hpm_opamp_regs.h:14
__RW uint32_t CFG2
Definition: hpm_opamp_regs.h:20
__RW uint32_t CFG0
Definition: hpm_opamp_regs.h:18
__RW uint32_t CTRL1
Definition: hpm_opamp_regs.h:15
struct OPAMP_Type::@310 CFG[10]
__RW uint32_t CFG1
Definition: hpm_opamp_regs.h:19
__RW uint32_t CTRL0
Definition: hpm_opamp_regs.h:13
Definition: hpm_opamp_drv.h:151
opamp_gain_t gain
Definition: hpm_opamp_drv.h:155
bool enable_extern_filter_cap
Definition: hpm_opamp_drv.h:157
opamp_miller_cap_t miller_cap
Definition: hpm_opamp_drv.h:156
opamp_inm_pad_t negative_input_pin
Definition: hpm_opamp_drv.h:153
opamp_inp_pad_t positive_input_pin
Definition: hpm_opamp_drv.h:154
opamp_mode_t mode
Definition: hpm_opamp_drv.h:152
bool enable_phase_margin_cap
Definition: hpm_opamp_drv.h:158
opamp configuration preset0
Definition: hpm_opamp_drv.h:122
uint32_t reserve
Definition: hpm_opamp_drv.h:128
uint32_t cap_select
Definition: hpm_opamp_drv.h:127
uint32_t val
Definition: hpm_opamp_drv.h:130
uint32_t vswitch_select
Definition: hpm_opamp_drv.h:126
uint32_t vim_select
Definition: hpm_opamp_drv.h:125
uint32_t vip_select
Definition: hpm_opamp_drv.h:124
opamp configuration preset1
Definition: hpm_opamp_drv.h:137
uint32_t res_select
Definition: hpm_opamp_drv.h:139
uint32_t hw_trig_en
Definition: hpm_opamp_drv.h:145
uint32_t opaout_select
Definition: hpm_opamp_drv.h:142
uint32_t en_lv
Definition: hpm_opamp_drv.h:144
uint32_t function_mode
Definition: hpm_opamp_drv.h:140
uint32_t val
Definition: hpm_opamp_drv.h:148
uint32_t reserve
Definition: hpm_opamp_drv.h:146
uint32_t iref_select
Definition: hpm_opamp_drv.h:141
uint32_t is_vssa_disconnect
Definition: hpm_opamp_drv.h:143