Go to the documentation of this file.
48 #define HMC630X_PARAM(row, mask) (((((uint16_t)row) << 8)) | (mask))
49 #define HMC630X_ROW(param) ((param) >> 8)
50 #define HMC630X_MASK(param) ((param) & 0xff)
53 #define HMC6301_LNA_PWRDWN HMC630X_PARAM(0, NO_OS_BIT(7))
54 #define HMC6301_BBAMP_PWRDN_I HMC630X_PARAM(0, NO_OS_BIT(6))
55 #define HMC6301_BBAMP_PWRDN_Q HMC630X_PARAM(0, NO_OS_BIT(5))
56 #define HMC6301_DIVIDER_PWRDN HMC630X_PARAM(0, NO_OS_BIT(4))
57 #define HMC6301_MIXER_PWRDN HMC630X_PARAM(0, NO_OS_BIT(3))
58 #define HMC6301_IFMIXER_PWRDN_I HMC630X_PARAM(0, NO_OS_BIT(2))
59 #define HMC6301_TRIPLER_PWRDN HMC630X_PARAM(0, NO_OS_BIT(1))
60 #define HMC6301_IFVGA_PWRDN HMC630X_PARAM(0, NO_OS_BIT(0))
63 #define HMC6300_PA_SEL_VGBS HMC630X_PARAM(1, NO_OS_GENMASK(7, 4))
64 #define HMC6300_PA_SEL_VREF HMC630X_PARAM(1, NO_OS_GENMASK(3, 0))
66 #define HMC6301_IPC_PWRDWN HMC630X_PARAM(1, NO_OS_BIT(7))
67 #define HMC6301_IFMIX_PWRDN_Q HMC630X_PARAM(1, NO_OS_BIT(6))
68 #define HMC6301_IF_BGMUX_PWRDN HMC630X_PARAM(1, NO_OS_BIT(5))
69 #define HMC6301_ASK_PWRDN HMC630X_PARAM(1, NO_OS_BIT(4))
70 #define HMC6301_BBAMP_ATTEN1 HMC630X_PARAM(1, NO_OS_GENMASK(3, 2))
71 #define HMC6301_BBAMP_SELL_ASK HMC630X_PARAM(1, NO_OS_BIT(1))
72 #define HMC6301_BBAMP_SIGSHORT HMC630X_PARAM(1, NO_OS_BIT(0))
75 #define HMC6300_PA_SEL_ALC_DAC HMC630X_PARAM(2, NO_OS_GENMASK(7, 4))
76 #define HMC6300_PA_SEP_PA_PWRDWN_FAST HMC630X_PARAM(2, NO_OS_BIT(3))
77 #define HMC6300_PA_PWRDWN_FAST HMC630X_PARAM(2, NO_OS_BIT(2))
78 #define HMC6300_PA_SE_SEL HMC630X_PARAM(2, NO_OS_BIT(1))
79 #define HMC6300_POWER_DET_PWRDN HMC630X_PARAM(2, NO_OS_BIT(0))
81 #define HMC6301_BBAMP_ATTENFI HMC630X_PARAM(2, NO_OS_GENMASK(7, 5))
82 #define HMC6301_BBAMP_ATTENFQ HMC630X_PARAM(2, NO_OS_GENMASK(4, 2))
83 #define HMC6301_BBAMP_ATTEN2 HMC630X_PARAM(2, NO_OS_GENMASK(1, 0))
86 #define HMC6300_DRIVER_BIAS HMC630X_PARAM(3, NO_OS_GENMASK(7, 5))
87 #define HMC6300_DRIVER_BIAS2 HMC630X_PARAM(3, NO_OS_GENMASK(4, 2))
88 #define HMC6300_EN_IFMIX_HICG HMC630X_PARAM(3, NO_OS_BIT(1))
89 #define HMC6300_EN_TEMPFLASH HMC630X_PARAM(3, NO_OS_BIT(0))
91 #define HMC6301_BBAMP_SELBW HMC630X_PARAM(3, NO_OS_GENMASK(7, 6))
92 #define HMC6301_BBAMP_SELFASTREC HMC630X_PARAM(3, NO_OS_GENMASK(5, 4))
93 #define HMC6301_BG_MONITOR_SEL HMC630X_PARAM(3, NO_OS_GENMASK(3, 2))
94 #define HMC6301_IF_REFSEL HMC630X_PARAM(3, NO_OS_BIT(1))
95 #define HMC6301_LNA_REFSEL HMC630X_PARAM(3, NO_OS_BIT(0))
98 #define HMC6300_DRIVER_PWRDN HMC630X_PARAM(4, NO_OS_BIT(7))
99 #define HMC6300_UPMIXER_PWRDN HMC630X_PARAM(4, NO_OS_BIT(6))
100 #define HMC6300_IFVGA_PWRDN HMC630X_PARAM(4, NO_OS_BIT(5))
101 #define HMC6300_DIVIDER_PWRDN HMC630X_PARAM(4, NO_OS_BIT(4))
102 #define HMC6300_PA_PWRDN HMC630X_PARAM(4, NO_OS_BIT(3))
103 #define HMC6300_RFVGA_PWRDN HMC630X_PARAM(4, NO_OS_BIT(2))
104 #define HMC6300_TRIPLER_PWRDN HMC630X_PARAM(4, NO_OS_BIT(1))
105 #define HMC6300_IF_UPMIXER_PWRDN HMC630X_PARAM(4, NO_OS_BIT(0))
107 #define HMC6301_IFVGA_BIAS HMC630X_PARAM(4, NO_OS_GENMASK(7, 5))
108 #define HMC6301_IFVGA_TUNE HMC630X_PARAM(4, NO_OS_GENMASK(4, 1))
109 #define HMC6301_ENDIGVGA HMC630X_PARAM(4, NO_OS_BIT(0))
112 #define HMC6300_TRIPLER_BIAS_HIGH HMC630X_PARAM(5, NO_OS_GENMASK(7, 0))
114 #define HMC6301_IFVGA_VGA_ADJ HMC630X_PARAM(5, NO_OS_GENMASK(7, 4))
115 #define HMC6301_RFMIX_TUNE HMC630X_PARAM(5, NO_OS_GENMASK(3, 0))
118 #define HMC6300_TRIPLER_BIAS_LOW HMC630X_PARAM(6, NO_OS_GENMASK(7, 2))
120 #define HMC6301_TRIPLER_BIAS_HIGH HMC630X_PARAM(6, NO_OS_GENMASK(7, 0))
123 #define HMC6300_IFVGA_VGA_ADJ HMC630X_PARAM(7, NO_OS_GENMASK(7, 4))
124 #define HMC6300_IFVGA_TUNE HMC630X_PARAM(7, NO_OS_GENMASK(3, 0))
126 #define HMC6301_TRIPLER_BIAS_LOW HMC630X_PARAM(7, NO_OS_GENMASK(7, 2))
127 #define HMC6301_BBAMP_SELFM HMC630X_PARAM(7, NO_OS_BIT(1))
128 #define HMC6301_FM_PWRDN HMC630X_PARAM(7, NO_OS_BIT(0))
131 #define HMC6300_IFVGA_BIAS HMC630X_PARAM(8, NO_OS_GENMASK(7, 4))
132 #define HMC6300_IF_UPMIXER_TUNE HMC630X_PARAM(8, NO_OS_GENMASK(3, 0))
134 #define HMC6301_LNA_BIAS HMC630X_PARAM(8, NO_OS_GENMASK(7, 5))
135 #define HMC6301_LNA_GAIN HMC630X_PARAM(8, NO_OS_GENMASK(4, 3))
136 #define HMC6301_IFVGA_Q_CNTRL HMC630X_PARAM(8, NO_OS_GENMASK(2, 0))
139 #define HMC6300_IFVGA_Q_CNTRL HMC630X_PARAM(9, NO_OS_GENMASK(7, 5))
141 #define HMC6301_ENANAV_LNA HMC630X_PARAM(9, NO_OS_BIT(7))
142 #define HMC6301_ENBAR_TEMPS HMC630X_PARAM(9, NO_OS_BIT(6))
143 #define HMC6301_EN_TEMPFLASH HMC630X_PARAM(9, NO_OS_BIT(5))
144 #define HMC6301_EN_SEP_IFMIX_PWRDN_Q HMC630X_PARAM(9, NO_OS_BIT(4))
147 #define HMC6300_ENABLE_FM HMC630X_PARAM(10, NO_OS_BIT(7))
148 #define HMC6300_IF_REFSEL HMC630X_PARAM(10, NO_OS_BIT(6))
149 #define HMC6300_BG_MONITOR HMC630X_PARAM(10, NO_OS_BIT(5))
150 #define HMC6300_ENDIG_IFVGA_GAIN_CONTROL HMC630X_PARAM(10, NO_OS_BIT(4))
151 #define HMC6300_IPC_PWRDN HMC630X_PARAM(10, NO_OS_BIT(3))
152 #define HMC6300_IF_BGMUX_PWRDN HMC630X_PARAM(10, NO_OS_BIT(2))
153 #define HMC6300_UPMIX_CAL_PWRDN HMC630X_PARAM(10, NO_OS_BIT(1))
154 #define HMC6300_TEMPSENSOR_PWRDN HMC630X_PARAM(10, NO_OS_BIT(0))
157 #define HMC6300_RFVGAGAIN HMC630X_PARAM(11, NO_OS_GENMASK(7, 4))
158 #define HMC6300_ENRFVGA_ANA HMC630X_PARAM(11, NO_OS_BIT(3))
159 #define HMC6300_RFVGA_ICTRL HMC630X_PARAM(11, NO_OS_GENMASK(2, 0))
162 #define HMC6300_UPMIX_CAL HMC630X_PARAM(12, NO_OS_GENMASK(7, 0))
165 #define HMC630X_BYP_SYNTH_LDO HMC630X_PARAM(16, NO_OS_BIT(7))
166 #define HMC630X_EN_CPSHORT HMC630X_PARAM(16, NO_OS_BIT(6))
167 #define HMC630X_EN_CPCMFB HMC630X_PARAM(16, NO_OS_BIT(5))
168 #define HMC630X_EN_CP_DUMP HMC630X_PARAM(16, NO_OS_BIT(4))
169 #define HMC630X_EN_CPTRIST HMC630X_PARAM(16, NO_OS_BIT(3))
170 #define HMC630X_EN_CP HMC630X_PARAM(16, NO_OS_BIT(2))
171 #define HMC630X_EN_SYNTH_LDO HMC630X_PARAM(16, NO_OS_BIT(1))
172 #define HMC630X_ENBAR_SYNTHBG HMC630X_PARAM(16, NO_OS_BIT(0))
175 #define HMC630X_EN_LOCKD_CLK HMC630X_PARAM(17, NO_OS_BIT(7))
176 #define HMC630X_EN_TEST_DIVOUT HMC630X_PARAM(17, NO_OS_BIT(6))
177 #define HMC630X_EN_VTUNE_FLASH HMC630X_PARAM(17, NO_OS_BIT(5))
178 #define HMC630X_EN_REBUF_DC HMC630X_PARAM(17, NO_OS_BIT(4))
179 #define HMC630X_EN_REFBUF HMC630X_PARAM(17, NO_OS_BIT(3))
180 #define HMC630X_EN_STICK_DIV HMC630X_PARAM(17, NO_OS_BIT(2))
181 #define HMC630X_EN_FBDIV_CML2CMOS HMC630X_PARAM(17, NO_OS_BIT(1))
182 #define HMC630X_EN_FBDIV HMC630X_PARAM(17, NO_OS_BIT(0))
185 #define HMC630X_EN_NB250M HMC630X_PARAM(18, NO_OS_BIT(6))
186 #define HMC630X_BYP_VCO_LDO HMC630X_PARAM(18, NO_OS_BIT(5))
187 #define HMC630X_EN_EXTLO HMC630X_PARAM(18, NO_OS_BIT(4))
188 #define HMC630X_EN_VCOPK HMC630X_PARAM(18, NO_OS_BIT(3))
189 #define HMC630X_EN_VCO HMC630X_PARAM(18, NO_OS_BIT(2))
190 #define HMC630X_EN_VCO_REG HMC630X_PARAM(18, NO_OS_BIT(1))
191 #define HMC630X_ENBAR_VCOGB HMC630X_PARAM(18, NO_OS_BIT(0))
194 #define HMC630X_REFSEL_SYNTHBG HMC630X_PARAM(19, NO_OS_BIT(1))
195 #define HMC630X_MUXREF HMC630X_PARAM(19, NO_OS_BIT(0))
198 #define HMC630X_FBDIV_CODE HMC630X_PARAM(20, NO_OS_GENMASK(6, 0))
201 #define HMC630X_REFSEL_VCOBG HMC630X_PARAM(21, NO_OS_BIT(4))
202 #define HMC630X_VCO_BIASTRIM HMC630X_PARAM(21, NO_OS_GENMASK(3, 0))
205 #define HMC630X_VCO_BANDSEL HMC630X_PARAM(22, NO_OS_GENMASK(6, 0))
208 #define HMC630X_ICP_BIASTRIM HMC630X_PARAM(23, NO_OS_GENMASK(7, 5))
209 #define HMC630X_VCO_OFFSET HMC630X_PARAM(23, NO_OS_GENMASK(4, 0))
212 #define HMC630X_LOCKDET HMC630X_PARAM(24, NO_OS_BIT(3))
213 #define HMC630X_DN HMC630X_PARAM(24, NO_OS_BIT(2))
214 #define HMC630X_UP HMC630X_PARAM(24, NO_OS_BIT(1))
215 #define HMC630X_CENTER HMC630X_PARAM(24, NO_OS_BIT(0))
218 #define HMC630X_VTUNE_FLASHP HMC630X_PARAM(25, NO_OS_GENMASK(7, 0))
221 #define HMC630X_VTUNE_FLASHN HMC630X_PARAM(26, NO_OS_GENMASK(7, 0))
224 #define HMC630X_TEMPS HMC630X_PARAM(27, NO_OS_GENMASK(4, 0))
#define HMC6300_BITBANG_DELAY_US
Definition: hmc630x.c:52
#define HMC6301_BBAMP_ATTEN2
Definition: hmc630x.h:83
struct hmc6301_attr rx
Definition: hmc630x.h:315
int hmc630x_set_vco(struct hmc630x_dev *dev, uint64_t frequency)
Definition: hmc630x.c:749
#define HMC6300_DIVIDER_PWRDN
Definition: hmc630x.h:101
#define HMC6301_BBAMP_ATTEN1
Definition: hmc630x.h:70
int hmc630x_set_if_attn(struct hmc630x_dev *dev, uint8_t attn)
Definition: hmc630x.c:681
int hmc630x_remove(struct hmc630x_dev *dev)
Definition: hmc630x.c:260
Structure holding the parameters for GPIO initialization.
Definition: no_os_gpio.h:85
bool enabled
Definition: hmc630x.h:309
int hmc630x_remove(struct hmc630x_dev *dev)
Definition: hmc630x.c:260
Definition: hmc630x.h:299
@ HMC6301_BB_LPC_1400MHz
Definition: hmc630x.h:262
Definition: hmc630x.h:288
bool temp_en
Definition: hmc630x.h:310
int hmc630x_read(struct hmc630x_dev *dev, uint16_t param, uint8_t *value)
Definition: hmc630x.c:436
int hmc630x_init(struct hmc630x_dev **dev, struct hmc630x_init_param *init)
Definition: hmc630x.c:115
#define HMC6300_TRIPLER_PWRDN
Definition: hmc630x.h:104
#define HMC630X_FRAME_SIZE
Definition: hmc630x.c:50
int hmc630x_read(struct hmc630x_dev *dev, uint16_t param, uint8_t *val)
Definition: hmc630x.c:436
uint8_t rf_attn
Definition: hmc630x.h:285
#define HMC630X_FBDIV_CODE
Definition: hmc630x.h:198
@ HMC6301_BB_ATTN_18dB
Definition: hmc630x.h:245
@ HMC6301_BB_ATTN_FINE_1dB
Definition: hmc630x.h:254
#define HMC6301_BBAMP_SELFASTREC
Definition: hmc630x.h:92
int hmc6301_set_lna_gain(struct hmc630x_dev *dev, enum hmc6301_lna_attn gain)
Definition: hmc630x.c:871
enum hmc6301_bb_attn_fine bb_attni_fine
Definition: hmc630x.h:291
int hmc6300_get_rf_attn(struct hmc630x_dev *dev, uint8_t *attn)
Definition: hmc630x.c:736
int32_t no_os_gpio_get_value(struct no_os_gpio_desc *desc, uint8_t *value)
Get the value of the specified GPIO.
Definition: no_os_gpio.c:227
int hmc6300_set_rf_attn(struct hmc630x_dev *dev, uint8_t attn)
Definition: hmc630x.c:721
int hmc6301_get_bb_lpc_hpc(struct hmc630x_dev *dev, enum hmc6301_bb_lpc *lpc, enum hmc6301_bb_hpc *hpc)
Definition: hmc630x.c:1008
Header file of Delay functions.
@ HMC6301_BB_LPC_500MHz
Definition: hmc630x.h:264
@ HMC6301_BB_LPC_200MHz
Definition: hmc630x.h:265
@ HMC6301_BB_ATTN_6dB
Definition: hmc630x.h:244
struct no_os_gpio_init_param data
Definition: hmc630x.h:305
#define HMC630X_ARRAY_ADDRESS_MASK
Definition: hmc630x.c:45
enum hmc6301_bb_attn_fine bb_attnq_fine
Definition: hmc630x.h:292
#define HMC6300_TEMPSENSOR_PWRDN
Definition: hmc630x.h:154
int hmc630x_read_row(struct hmc630x_dev *dev, uint8_t row, uint8_t *val)
Definition: hmc630x.c:330
@ HMC6301_BB_HPC_45kHz
Definition: hmc630x.h:270
int hmc630x_set_vco(struct hmc630x_dev *dev, uint64_t frequency)
Definition: hmc630x.c:749
hmc6301_bb_hpc
Definition: hmc630x.h:269
@ NO_OS_GPIO_HIGH
Definition: no_os_gpio.h:123
#define HMC6300_IFVGA_VGA_ADJ
Definition: hmc630x.h:123
#define HMC630X_VCO_BANDSEL
Definition: hmc630x.h:205
int hmc630x_read_row(struct hmc630x_dev *dev, uint8_t row, uint8_t *val)
Definition: hmc630x.c:330
hmc6301_bb_lpc
Definition: hmc630x.h:261
void * no_os_calloc(size_t nitems, size_t size)
Allocate memory and return a pointer to it, set memory to 0.
Definition: chibios_alloc.c:60
int32_t no_os_gpio_direction_input(struct no_os_gpio_desc *desc)
Enable the input direction of the specified GPIO.
Definition: no_os_gpio.c:130
int32_t send(struct mqtt_desc *mqtt)
Definition: basic_example.c:252
@ HMC6301_BB_ATTN_12dB
Definition: hmc630x.h:243
hmc6301_bb_attn
Definition: hmc630x.h:241
@ HMC6301_BB_ATTN_FINE_RESERVED1
Definition: hmc630x.h:253
#define HMC6300_ADDRESS
Definition: hmc630x.c:48
#define HMC6301_IFMIX_PWRDN_Q
Definition: hmc630x.h:67
bool
Definition: common.h:54
int hmc630x_get_vco(struct hmc630x_dev *dev, uint64_t *frequency)
Definition: hmc630x.c:817
#define HMC6300_IFVGA_PWRDN
Definition: hmc630x.h:100
enum hmc6301_bb_attn bb_attn1
Definition: hmc630x.h:289
@ HMC6301_BB_LPC_300MHz
Definition: hmc630x.h:263
#define HMC6300_UPMIXER_PWRDN
Definition: hmc630x.h:99
@ NO_OS_GPIO_LOW
Definition: no_os_gpio.h:121
enum hmc630x_type hmc630x_type(struct hmc630x_dev *dev)
Definition: hmc630x.c:290
#define HMC6300_PA_SEP_PA_PWRDWN_FAST
Definition: hmc630x.h:76
#define HMC630X_RW_MASK
Definition: hmc630x.c:46
int hmc630x_get_temp(struct hmc630x_dev *dev, uint8_t *temp)
Definition: hmc630x.c:544
int hmc6301_get_lna_gain(struct hmc630x_dev *dev, enum hmc6301_lna_attn *gain)
Definition: hmc630x.c:884
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:132
int hmc6301_set_bb_attn_fine(struct hmc630x_dev *dev, enum hmc6301_bb_attn_fine attn_i, enum hmc6301_bb_attn_fine attn_q)
Definition: hmc630x.c:940
#define HMC6301_IFVGA_VGA_ADJ
Definition: hmc630x.h:114
struct no_os_gpio_desc * scanout
Definition: hmc630x.c:70
uint32_t no_os_field_prep(uint32_t mask, uint32_t val)
@ HMC6301_BB_ATTN_FINE_2dB
Definition: hmc630x.h:252
enum hmc630x_ref_clk ref_clk
Definition: hmc630x.h:301
@ HMC6301_BB_ATTN_FINE_3dB
Definition: hmc630x.h:256
#define HMC6301_LNA_GAIN
Definition: hmc630x.h:135
#define HMC630X_ROW(param)
Definition: hmc630x.h:49
int hmc6301_get_lna_gain(struct hmc630x_dev *dev, enum hmc6301_lna_attn *gain)
Definition: hmc630x.c:884
struct no_os_gpio_init_param clk
Definition: hmc630x.h:303
uint8_t if_attn
Definition: hmc630x.h:312
Definition: hmc630x.h:284
int hmc6301_set_bb_lpc_hpc(struct hmc630x_dev *dev, enum hmc6301_bb_lpc lpc, enum hmc6301_bb_hpc hpc)
Definition: hmc630x.c:988
#define HMC6301_BBAMP_SELL_ASK
Definition: hmc630x.h:71
hmc6300 and hmc6301 device driver header.
int hmc630x_get_avail_vco(struct hmc630x_dev *dev, const uint64_t **avail, uint8_t *avail_num)
Definition: hmc630x.c:858
int hmc630x_write(struct hmc630x_dev *dev, uint16_t param, uint8_t value)
Definition: hmc630x.c:419
#define HMC630X_TEMPS
Definition: hmc630x.h:224
int hmc6300_get_fm_en(struct hmc630x_dev *dev, bool *enable)
Definition: hmc630x.c:563
#define HMC6300_RFVGA_PWRDN
Definition: hmc630x.h:103
int hmc630x_set_temp_en(struct hmc630x_dev *dev, bool enable)
Definition: hmc630x.c:487
#define HMC6300_RFVGAGAIN
Definition: hmc630x.h:157
int hmc630x_get_temp_en(struct hmc630x_dev *dev, bool *enable)
Definition: hmc630x.c:512
@ HMC6301_BB_HPC_350kHz
Definition: hmc630x.h:272
int hmc630x_read_regmap(struct hmc630x_dev *dev, uint8_t *regmap)
Definition: hmc630x.c:453
#define HMC6301_ENBAR_TEMPS
Definition: hmc630x.h:142
int32_t no_os_gpio_remove(struct no_os_gpio_desc *desc)
Free the resources allocated by no_os_gpio_get().
Definition: no_os_gpio.c:110
@ HMC6301_BB_ATTN_FINE_RESERVED2
Definition: hmc630x.h:257
#define HMC6301_ASK_PWRDN
Definition: hmc630x.h:69
@ HMC6300_REF_CLK_75MHz
Definition: hmc630x.h:279
#define HMC6301_LNA_PWRDWN
Definition: hmc630x.h:53
@ HMC6300_REF_CLK_71p42857MHz
Definition: hmc630x.h:278
int hmc6300_get_rf_attn(struct hmc630x_dev *dev, uint8_t *attn)
Definition: hmc630x.c:736
#define HMC6300_PA_PWRDN
Definition: hmc630x.h:102
#define HMC6300_ENABLE_FM
Definition: hmc630x.h:147
int hmc6300_set_rf_attn(struct hmc630x_dev *dev, uint8_t attn)
Definition: hmc630x.c:721
Structure holding the GPIO descriptor.
Definition: no_os_gpio.h:102
hmc630x_type
Definition: hmc630x.h:227
#define HMC630X_MASK(param)
Definition: hmc630x.h:50
@ HMC6301_LNA_ATTN_12dB
Definition: hmc630x.h:236
#define HMC6300_POWER_DET_PWRDN
Definition: hmc630x.h:79
int hmc630x_set_if_attn(struct hmc630x_dev *dev, uint8_t attn)
Definition: hmc630x.c:681
int hmc6300_set_fm_en(struct hmc630x_dev *dev, bool enable)
Definition: hmc630x.c:550
@ HMC6301_LNA_ATTN_18dB
Definition: hmc630x.h:237
hmc6301_bb_attn_fine
Definition: hmc630x.h:249
int hmc6301_get_bb_attn(struct hmc630x_dev *dev, enum hmc6301_bb_attn *attn1, enum hmc6301_bb_attn *attn2)
Definition: hmc630x.c:920
int hmc6300_get_fm_en(struct hmc630x_dev *dev, bool *enable)
Definition: hmc630x.c:563
uint8_t * fbdiv
Definition: hmc630x.c:58
int32_t no_os_gpio_get(struct no_os_gpio_desc **desc, const struct no_os_gpio_init_param *param)
Obtain the GPIO decriptor.
Definition: no_os_gpio.c:55
int hmc630x_get_enable(struct hmc630x_dev *dev, bool *enable)
Definition: hmc630x.c:625
@ HMC6301_BB_HPC_1600kHz
Definition: hmc630x.h:271
enum hmc6301_bb_hpc bb_hpc
Definition: hmc630x.h:295
enum hmc630x_type type
Definition: hmc630x.h:300
#define HMC6301_ADDRESS
Definition: hmc630x.c:49
int hmc630x_get_if_attn(struct hmc630x_dev *dev, uint8_t *attn)
Definition: hmc630x.c:701
#define HMC6301_IF_BGMUX_PWRDN
Definition: hmc630x.h:68
struct no_os_gpio_init_param en
Definition: hmc630x.h:302
@ HMC6300_REF_CLK_154p2857MHz
Definition: hmc630x.h:281
@ HMC6300
Definition: hmc630x.h:228
int hmc630x_read_regmap(struct hmc630x_dev *dev, uint8_t *regmap)
Definition: hmc630x.c:453
@ HMC6301_BB_ATTN_0dB
Definition: hmc630x.h:242
uint32_t no_os_field_get(uint32_t mask, uint32_t word)
#define HMC6301_BBAMP_SELBW
Definition: hmc630x.h:91
#define HMC6300_PA_PWRDWN_FAST
Definition: hmc630x.h:77
@ HMC6301_BB_ATTN_FINE_4dB
Definition: hmc630x.h:251
int hmc630x_get_avail_vco(struct hmc630x_dev *dev, const uint64_t **avail, uint8_t *avail_num)
Definition: hmc630x.c:858
int hmc6301_set_bb_attn(struct hmc630x_dev *dev, enum hmc6301_bb_attn attn1, enum hmc6301_bb_attn attn2)
Definition: hmc630x.c:897
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:75
int hmc630x_write_regmap(struct hmc630x_dev *dev, const uint8_t *regmap)
Definition: hmc630x.c:383
int hmc630x_write(struct hmc630x_dev *dev, uint16_t param, uint8_t val)
Definition: hmc630x.c:419
int hmc630x_get_if_attn(struct hmc630x_dev *dev, uint8_t *attn)
Definition: hmc630x.c:701
#define HMC630X_LOCKDET
Definition: hmc630x.h:212
uint8_t entries
Definition: hmc630x.c:59
hmc630x_ref_clk
Definition: hmc630x.h:277
int hmc6301_get_bb_attn_fine(struct hmc630x_dev *dev, enum hmc6301_bb_attn_fine *attn_i, enum hmc6301_bb_attn_fine *attn_q)
Definition: hmc630x.c:967
int hmc630x_set_temp_en(struct hmc630x_dev *dev, bool enable)
Definition: hmc630x.c:487
void no_os_udelay(uint32_t usecs)
Wait until usecs microseconds passed.
Definition: aducm3029_delay.c:120
uint8_t address
Definition: hmc630x.c:65
#define HMC6301_IPC_PWRDWN
Definition: hmc630x.h:66
#define NULL
Definition: wrapper.h:64
int hmc630x_write_regmap(struct hmc630x_dev *dev, const uint8_t *regmap)
Definition: hmc630x.c:383
struct no_os_gpio_desc * en
Definition: hmc630x.c:67
int hmc6301_set_lna_gain(struct hmc630x_dev *dev, enum hmc6301_lna_attn gain)
Definition: hmc630x.c:871
@ HMC6301_BB_ATTN_FINE_5dB
Definition: hmc630x.h:255
int32_t no_os_gpio_set_value(struct no_os_gpio_desc *desc, uint8_t value)
Set the value of the specified GPIO.
Definition: no_os_gpio.c:203
int hmc630x_get_temp(struct hmc630x_dev *dev, uint8_t *temp)
Definition: hmc630x.c:544
int hmc6301_get_bb_attn(struct hmc630x_dev *dev, enum hmc6301_bb_attn *attn1, enum hmc6301_bb_attn *attn2)
Definition: hmc630x.c:920
int hmc6301_set_bb_attn_fine(struct hmc630x_dev *dev, enum hmc6301_bb_attn_fine attn_i, enum hmc6301_bb_attn_fine attn_q)
Definition: hmc630x.c:940
int hmc6301_get_bb_lpc_hpc(struct hmc630x_dev *dev, enum hmc6301_bb_lpc *lpc, enum hmc6301_bb_hpc *hpc)
Definition: hmc630x.c:1008
uint64_t * freqs
Definition: hmc630x.c:57
enum hmc6301_bb_lpc bb_lpc
Definition: hmc630x.h:294
@ HMC6301
Definition: hmc630x.h:229
struct no_os_gpio_desc * data
Definition: hmc630x.c:69
int hmc630x_set_enable(struct hmc630x_dev *dev, bool enable)
Definition: hmc630x.c:576
#define HMC6300_SETTLING_DELAY_MS
Definition: hmc630x.c:53
#define HMC6301_BBAMP_ATTENFI
Definition: hmc630x.h:81
@ HMC6301_BB_ATTN_FINE_0dB
Definition: hmc630x.h:250
Header file of GPIO Interface.
struct hmc630x_vco vco
Definition: hmc630x.c:66
#define HMC630X_ADDRESS_MASK
Definition: hmc630x.c:47
@ HMC6301_LNA_ATTN_0dB
Definition: hmc630x.h:234
struct no_os_gpio_desc * clk
Definition: hmc630x.c:68
int hmc6301_set_bb_lpc_hpc(struct hmc630x_dev *dev, enum hmc6301_bb_lpc lpc, enum hmc6301_bb_hpc hpc)
Definition: hmc630x.c:988
int hmc6300_set_fm_en(struct hmc630x_dev *dev, bool enable)
Definition: hmc630x.c:550
#define HMC630X_EN_SYNTH_LDO
Definition: hmc630x.h:171
int hmc630x_init(struct hmc630x_dev **dev, struct hmc630x_init_param *init)
Definition: hmc630x.c:115
struct hmc6300_attr tx
Definition: hmc630x.h:314
int hmc630x_get_enable(struct hmc630x_dev *dev, bool *enable)
Definition: hmc630x.c:625
Header file of utility functions.
uint64_t vco
Definition: hmc630x.h:311
@ HMC6300_REF_CLK_142p8571MHz
Definition: hmc630x.h:280
enum hmc630x_type type
Definition: hmc630x.c:64
@ HMC6301_BB_HPC_RESERVED
Definition: hmc630x.h:273
int hmc630x_get_vco(struct hmc630x_dev *dev, uint64_t *frequency)
Definition: hmc630x.c:817
#define HMC6300_EN_TEMPFLASH
Definition: hmc630x.h:89
#define HMC6301_BBAMP_ATTENFQ
Definition: hmc630x.h:82
enum hmc6301_bb_attn bb_attn2
Definition: hmc630x.h:290
int hmc6301_set_bb_attn(struct hmc630x_dev *dev, enum hmc6301_bb_attn attn1, enum hmc6301_bb_attn attn2)
Definition: hmc630x.c:897
int hmc630x_write_row(struct hmc630x_dev *dev, uint8_t row, uint8_t val)
Definition: hmc630x.c:299
int hmc630x_get_temp_en(struct hmc630x_dev *dev, bool *enable)
Definition: hmc630x.c:512
int32_t no_os_gpio_direction_output(struct no_os_gpio_desc *desc, uint8_t value)
Enable the output direction of the specified GPIO.
Definition: no_os_gpio.c:153
enum hmc6301_lna_attn lna_attn
Definition: hmc630x.h:293
@ HMC6301_LNA_ATTN_6dB
Definition: hmc630x.h:235
hmc6301_lna_attn
Definition: hmc630x.h:233
struct no_os_gpio_init_param scanout
Definition: hmc630x.h:307
int hmc630x_set_enable(struct hmc630x_dev *dev, bool enable)
Definition: hmc630x.c:576
int hmc6301_get_bb_attn_fine(struct hmc630x_dev *dev, enum hmc6301_bb_attn_fine *attn_i, enum hmc6301_bb_attn_fine *attn_q)
Definition: hmc630x.c:967
Error macro definition for ARM Compiler.
#define HMC6300_IF_UPMIXER_PWRDN
Definition: hmc630x.h:105
int hmc630x_write_row(struct hmc630x_dev *dev, uint8_t row, uint8_t val)
Definition: hmc630x.c:299
#define HMC6301_EN_TEMPFLASH
Definition: hmc630x.h:143
#define HMC6300_DRIVER_PWRDN
Definition: hmc630x.h:98