no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ad3530r.h
Go to the documentation of this file.
1/***************************************************************************/
31
32#ifndef _AD3530R_H_
33#define _AD3530R_H_
34
35#include <stdint.h>
36#include <stdbool.h>
37#include "no_os_spi.h"
38#include "no_os_gpio.h"
39#include "no_os_util.h"
40#include "no_os_crc8.h"
41
42#define AD3530R_R1B (1ul << 16)
43#define AD3530R_R2B (2ul << 16)
44#define AD3530R_LEN(x) (x >> 16)
45#define AD3530R_ADDR(x) (x & 0xFFFF)
46
47#define AD3530R_MAX_REG_SIZE 2
48#define AD3530R_MAX_CHANNEL_OP_MODE_0 4
49#define AD3530R_MAX_SHORT_REG_ADDR (AD3530R_R1B | 0x80)
50#define AD3530R_READ_BIT NO_OS_BIT(7)
51#define AD3530R_ADDR_MASK (~AD3530R_READ_BIT)
52#define AD3530R_WRITE_BIT_LONG_INSTR 0x00
53#define AD3530R_EXTERNAL_VREF_MASK NO_OS_BIT(1)
54#define AD3530R_DEFAULT_STATUS_REG_VAL 0x04
55#define AD3530R_SCRATCH_PAD_TEST_VAL 0x34
56#define AD3530R_CRC_POLY 0x07
57#define AD3530R_CRC_SEED 0xA5
58#define AD3530R_REG_ADDR_OPERATING_MODE_CHN(x) (AD3530R_R1B | (0x20 + (((x) & 4) >> 2)))
59
60/* Register addresses */
61/* Primary address space */
62#define AD3530R_REG_ADDR_INTERFACE_CONFIG_A (AD3530R_R1B | 0x00)
63#define AD3530R_REG_ADDR_INTERFACE_CONFIG_B (AD3530R_R1B | 0x01)
64#define AD3530R_REG_ADDR_DEVICE_CONFIG (AD3530R_R1B | 0x02)
65#define AD3530R_REG_ADDR_CHIP_TYPE (AD3530R_R1B | 0x03)
66#define AD3530R_REG_ADDR_PRODUCT_ID_L (AD3530R_R1B | 0x04)
67#define AD3530R_REG_ADDR_PRODUCT_ID_H (AD3530R_R1B | 0x05)
68#define AD3530R_REG_ADDR_CHIP_GRADE (AD3530R_R1B | 0x06)
69#define AD3530R_REG_ADDR_SCRATCH_PAD (AD3530R_R1B | 0x0A)
70#define AD3530R_REG_ADDR_SPI_REVISION (AD3530R_R1B | 0x0B)
71#define AD3530R_REG_ADDR_VENDOR_L (AD3530R_R1B | 0x0C)
72#define AD3530R_REG_ADDR_VENDOR_H (AD3530R_R1B | 0x0D)
73#define AD3530R_REG_ADDR_STREAM_MODE (AD3530R_R1B | 0x0E)
74#define AD3530R_REG_ADDR_TRANSFER_REGISTER (AD3530R_R1B | 0x0F)
75#define AD3530R_REG_ADDR_INTERFACE_CONFIG_C (AD3530R_R1B | 0x10)
76#define AD3530R_REG_ADDR_INTERFACE_STATUS_A (AD3530R_R1B | 0x11)
77#define AD3530R_REG_ADDR_OPERATING_MODE_0 (AD3530R_R1B | 0x20)
78#define AD3530R_REG_ADDR_OPERATING_MODE_1 (AD3530R_R1B | 0x21)
79#define AD3530R_REG_ADDR_OUTPUT_CONTROL_0 (AD3530R_R1B | 0x2A)
80#define AD3530R_REG_ADDR_REF_CONTROL_0 (AD3530R_R1B | 0x3C)
81#define AD3530R_REG_ADDR_MUX_OUT_SELECT (AD3530R_R1B | 0x93)
82#define AD3530R_REG_ADDR_STATUS_CONTROL (AD3530R_R1B | 0xC2)
83
84/* DAC configuration registers */
85#define AD3530R_REG_ADDR_HW_LDAC_EN_0 (AD3530R_R1B | 0xD0)
86#define AD3530R_REG_ADDR_SW_LDAC_EN_0 (AD3530R_R1B | 0xD1)
87#define AD3530R_REG_ADDR_DAC_CHN(x) (AD3530R_R2B | (0xD2 + (((x) & 7) << 1)))
88#define AD3530R_REG_ADDR_MULTI_DAC_CH (AD3530R_R2B | 0XE2)
89#define AD3530R_REG_ADDR_MULTI_DAC_SEL_0 (AD3530R_R1B | 0XE4)
90#define AD3530R_REG_ADDR_SW_LDAC_TRIG_A (AD3530R_R1B | 0XE5)
91#define AD3530R_REG_ADDR_MULTI_INPUT_CH (AD3530R_R2B | 0XE6)
92#define AD3530R_REG_ADDR_MULTI_INPUT_SEL_0 (AD3530R_R1B | 0XE8)
93#define AD3530R_REG_ADDR_SW_LDAC_TRIG_B (AD3530R_R1B | 0XE9)
94#define AD3530R_REG_ADDR_INPUT_CHN(x) (AD3530R_R2B | (0xEA + (((x) & 7) << 1)))
95
96/* Register masks */
97/* AD3530R_REG_ADDR_INTERFACE_CONFIG_A bit masks */
98#define AD3530R_MASK_SOFTWARE_RESET (NO_OS_BIT(7) | NO_OS_BIT(0))
99#define AD3530R_MASK_ADDR_ASCENSION NO_OS_BIT(5)
100#define AD3530R_MASK_SDO_ACTIVE NO_OS_BIT(4)
101
102/* AD3530R_REG_ADDR_INTERFACE_CONFIG_B bit masks */
103#define AD3530R_MASK_SINGLE_INST NO_OS_BIT(7)
104#define AD3530R_MASK_SHORT_INSTRUCTION NO_OS_BIT(3)
105
106/* AD3530R_REG_ADDR_DEVICE_CONFIG bit masks */
107#define AD3530R_MASK_OPERATING_MODES NO_OS_GENMASK(1, 0)
108
109/* AD3530R_REG_ADDR_CHIP_GRADE bit masks */
110#define AD3530R_MASK_GRADE NO_OS_GENMASK(7, 4)
111#define AD3530R_MASK_DEVICE_REVISION NO_OS_GENMASK(3, 0)
112
113/* AD3530R_REG_ADDR_STREAM_MODE bit masks */
114#define AD3530R_MASK_LENGTH 0xFF
115
116/* AD3530R_REG_ADDR_TRANSFER_REGISTER bit masks */
117#define AD3530R_MASK_STREAM_LENGTH_KEEP_VALUE NO_OS_BIT(2)
118
119/* AD3530R_REG_ADDR_INTERFACE_CONFIG_C bit masks */
120#define AD3530R_MASK_CRC_ENABLE (NO_OS_GENMASK(7, 6) | NO_OS_GENMASK(1, 0))
121#define AD3530R_MASK_STRICT_REGISTER_ACCESS NO_OS_BIT(5)
122#define AD3530R_MASK_ACTIVE_INTERFACE_MODE NO_OS_GENMASK(3, 2)
123
124/* AD3530R_REG_ADDR_STREAM_MODE bit masks */
125#define AD3530R_MASK_INTERFACE_NOT_READY NO_OS_BIT(7)
126#define AD3530R_MASK_CLOCK_COUNTING_ERROR NO_OS_BIT(4)
127#define AD3530R_MASK_INVALID_OR_NO_CRC NO_OS_BIT(3)
128#define AD3530R_MASK_PARTIAL_REGISTER_ACCESS NO_OS_BIT(1)
129
130/* AD3530R_REG_ADDR_OPERATING_MODE bit masks */
131#define AD3530R_MASK_OPERATING_MODE(x) 0x03 << ((x % 4)*2)
132
133/* AD3530R_REG_ADDR_OUTPUT_CONTROL_0 bit masks */
134#define AD3530R_MASK_OUTPUT_RANGE NO_OS_BIT(2)
135
136/* AD3530R_REG_ADDR_REF_CONTROL_0 bit masks */
137#define AD3530R_MASK_REERENCE_SELECT NO_OS_BIT(0)
138
139/* AD3530R_REG_ADDR_MUX_OUT_SELECT bit masks */
140#define AD3530R_MASK_MUX_SELECT NO_OS_GENMASK(4, 0)
141
142/* AD3530R_REG_ADDR_HW_LDAC_EN_0 bit masks */
143#define AD3530R_MASK_HW_LDAC_EN_0(x) NO_OS_BIT((x) & 7)
144
145/* AD3530R_REG_ADDR_SW_LDAC_EN_0 bit masks */
146#define AD3530R_MASK_SW_LDAC_EN_0(x) NO_OS_BIT((x) & 7)
147
148/* AD3530R_REG_ADDR_SW_LDAC_TRIG_B bit masks */
149#define AD3530R_MASK_SW_LDAC_TRIG_B NO_OS_BIT(7)
150
151/* Useful defines */
152#define AD3530R_REG_ADDR_MAX 0xF9
153#define AD3530R_NUM_CH 8
154#define AD3530R_MASK_CH(ch) NO_OS_BIT(ch)
155#define AD3530R_LDAC_PULSE_US 1
156#define AD3530R_CH_DAC_DATA_LSB(x) ((x) & 0xFF)
157#define AD3530R_CH_DAC_DATA_MSB(x) ((x) >> 8 & 0xFF)
158#define AD3530R_CRC_ENABLE_VALUE (NO_OS_BIT(6) | NO_OS_BIT(1))
159#define AD3530R_CRC_DISABLE_VALUE (NO_OS_BIT(1) | NO_OS_BIT(0))
160#define AD3530R_NUM_MUX_OUT_SELECTS 27
161#define AD3530R_NUM_REGS 45 // Number of valid registers (mb regs considered a single entity)
162#define AD3530R_CH_GRP(x) ((x) / 8)
163
164/* Useful defines for AD3531R */
165#define AD3531R_NUM_CH 4
166#define AD3531R_NUM_MUX_OUT_SELECTS 27
167#define AD3531R_REG_ADDR_MAX 0xE9
168#define AD3531R_CH_REG_OFFSET 8
169
178
187
193 /* External source with Vref I/O as input */
195 /* Internal source with Vref I/O at 2.5V */
197};
198
212
218 /* Range from 0 V to VREF */
220 /* Range from 0 V to 2*VREF */
222};
223
234
240 /* Write to DAC registers. No need to trigger LDAC */
242 /* Write to input registers. User needs to trigger LDAC */
244 /* Write to input registers. LDAC is triggered by the driver */
246};
247
281
282/* By default all values are set to 0 */
284 /* Defines the length of the loop when streaming data */
286 /* Determines Sequential Addressing Behavior */
287 uint8_t addr_asc;
288 /* Select Streaming or Single Instruction Mode */
290 /* Determines the length of the address in the instruction phase */
291 uint8_t short_instr;
292 /*
293 * Set this bit to prevent the STREAM_MODE LENGTH value from
294 * automatically resetting to zero
295 */
297};
298
300 /* Starting address for transfer */
301 uint16_t addr;
302 /* Data to transfer */
303 uint8_t *data;
304 /* Size of data to transfer */
305 uint32_t len;
306 /* Read transaction if true, write transfer otherwise */
307 uint8_t is_read;
308 /* If NULL will be default or last configured will be used */
310};
311
312
328
333 /* If set, reset is done with RESET pin, otherwise it will be soft */
335 /* If set, input register are used and LDAC pulse is sent */
337 /* If set, uses internal reference and outputs internal Vref on Vref pin */
341 uint16_t hw_ldac_mask;
342 uint16_t sw_ldac_mask;
343 /* Set to enable CRC */
344 uint8_t crc_en;
346};
347
348int ad3530r_reg_write(struct ad3530r_desc *desc,
349 uint32_t reg_addr,
350 uint16_t reg_val);
351int ad3530r_reg_read(struct ad3530r_desc *desc,
352 uint32_t reg_addr,
353 uint16_t *reg_val);
354int ad3530r_spi_write_mask(struct ad3530r_desc *desc,
355 uint32_t addr, uint32_t mask, uint16_t val);
357 struct ad3530r_transfer_config *cfg);
359 uint32_t start_addr,
360 uint8_t buff_len,
361 uint8_t *buff);
363 uint32_t addr,
364 uint8_t buff_len,
365 uint8_t *buff);
366int ad3530r_set_reference(struct ad3530r_desc *desc,
367 enum ad3530r_ch_vref_select reference_selector);
369 uint8_t chn_num,
370 enum ad3530r_operating_mode chn_op_mode);
372 enum ad3530r_ch_output_range range_sel);
373int ad3530r_set_crc_enable(struct ad3530r_desc *desc, bool en_di);
375 enum ad3530r_mux_out_select mux_output_sel);
376int ad3530r_set_hw_ldac(struct ad3530r_desc *desc, uint16_t mask_hw_ldac);
377int ad3530r_set_sw_ldac(struct ad3530r_desc *desc, uint16_t mask_sw_ldac);
378int ad3530r_set_dac_value(struct ad3530r_desc *desc,
379 uint16_t dac_value,
380 uint8_t dac_channel,
381 enum ad3530r_write_mode write_mode);
383 uint16_t dac_value,
384 uint16_t dac_chn_mask,
385 enum ad3530r_write_mode write_mode);
386int ad3530r_sw_ldac_trigger(struct ad3530r_desc *desc);
387int ad3530r_hw_ldac_trigger(struct ad3530r_desc *desc);
388int ad3530r_reset(struct ad3530r_desc *desc);
389int ad3530r_init(struct ad3530r_desc **desc,
391int ad3530r_remove(struct ad3530r_desc *desc);
392uint32_t get_reg_addr(uint32_t addr, enum ad3530r_id chip_id,
393 enum ad3530r_ch_sel ch_sel);
394
395#endif /* _AD3530R_H_ */
int ad3530r_hw_ldac_trigger(struct ad3530r_desc *desc)
Trigger the LDAC using hardware.
Definition ad3530r.c:928
int ad3530r_reg_write(struct ad3530r_desc *desc, uint32_t reg_addr, uint16_t reg_val)
Write into device register.
Definition ad3530r.c:301
ad3530r_write_mode
Write modes.
Definition ad3530r.h:239
@ AD3530R_WRITE_DAC_REGS
Definition ad3530r.h:241
@ AD3530R_WRITE_INPUT_REGS_AND_TRIGGER_LDAC
Definition ad3530r.h:245
@ AD3530R_WRITE_INPUT_REGS
Definition ad3530r.h:243
int ad3530r_reg_read(struct ad3530r_desc *desc, uint32_t reg_addr, uint16_t *reg_val)
Read from device register.
Definition ad3530r.c:419
ad3530r_mux_out_select
Signals to monitor on MUX_OUT pin.
Definition ad3530r.h:252
@ VOUT0
Definition ad3530r.h:254
@ TIED_TO_AGND_INTERNALLY
Definition ad3530r.h:279
@ IOUT0_SINK_MODE
Definition ad3530r.h:256
@ IOUT7_SINK_MODE
Definition ad3530r.h:277
@ VOUT5
Definition ad3530r.h:269
@ VOUT4
Definition ad3530r.h:266
@ IOUT5_SOURCE_MODE
Definition ad3530r.h:270
@ VOUT6
Definition ad3530r.h:272
@ VOUT7
Definition ad3530r.h:275
@ DIE_TEMPERATURE
Definition ad3530r.h:278
@ IOUT2_SINK_MODE
Definition ad3530r.h:262
@ IOUT4_SINK_MODE
Definition ad3530r.h:268
@ IOUT6_SOURCE_MODE
Definition ad3530r.h:273
@ IOUT3_SOURCE_MODE
Definition ad3530r.h:264
@ IOUT6_SINK_MODE
Definition ad3530r.h:274
@ IOUT2_SOURCE_MODE
Definition ad3530r.h:261
@ VOUT3
Definition ad3530r.h:263
@ POWERED_DOWN
Definition ad3530r.h:253
@ IOUT1_SOURCE_MODE
Definition ad3530r.h:258
@ IOUT5_SINK_MODE
Definition ad3530r.h:271
@ IOUT1_SINK_MODE
Definition ad3530r.h:259
@ IOUT7_SOURCE_MODE
Definition ad3530r.h:276
@ VOUT2
Definition ad3530r.h:260
@ VOUT1
Definition ad3530r.h:257
@ IOUT0_SOURCE_MODE
Definition ad3530r.h:255
@ IOUT4_SOURCE_MODE
Definition ad3530r.h:267
@ IOUT3_SINK_MODE
Definition ad3530r.h:265
ad3530r_id
Device IDs.
Definition ad3530r.h:174
@ AD3531R_ID
Definition ad3530r.h:176
@ AD3530R_ID
Definition ad3530r.h:175
uint32_t get_reg_addr(uint32_t addr, enum ad3530r_id chip_id, enum ad3530r_ch_sel ch_sel)
Get adjusted register address based on the chip id selected.
Definition ad3530r.c:66
int ad3530r_set_hw_ldac(struct ad3530r_desc *desc, uint16_t mask_hw_ldac)
Definition ad3530r.c:702
ad3530r_operating_mode
Operating modes.
Definition ad3530r.h:228
@ AD3530R_CH_OPERATING_MODE_3
Definition ad3530r.h:232
@ AD3530R_CH_OPERATING_MODE_1
Definition ad3530r.h:230
@ AD3530R_CH_OPERATING_MODE_2
Definition ad3530r.h:231
@ AD3530R_CH_OPERATING_MODE_0
Definition ad3530r.h:229
int ad3530r_set_crc_enable(struct ad3530r_desc *desc, bool en_di)
Definition ad3530r.c:650
int ad3530r_set_output_range(struct ad3530r_desc *desc, enum ad3530r_ch_output_range range_sel)
Definition ad3530r.c:627
int ad3530r_set_sw_ldac(struct ad3530r_desc *desc, uint16_t mask_sw_ldac)
Definition ad3530r.c:730
ad3530r_ch_vref_select
Channel voltage reference options.
Definition ad3530r.h:192
@ AD3530R_EXTERNAL_VREF_PIN_INPUT
Definition ad3530r.h:194
@ AD3530R_INTERNAL_VREF_PIN_2P5V
Definition ad3530r.h:196
int ad3530r_set_reference(struct ad3530r_desc *desc, enum ad3530r_ch_vref_select reference_selector)
Definition ad3530r.c:575
int ad3530r_sw_ldac_trigger(struct ad3530r_desc *desc)
Trigger the LDAC using software.
Definition ad3530r.c:899
int ad3530r_set_multidac_value(struct ad3530r_desc *desc, uint16_t dac_value, uint16_t dac_chn_mask, enum ad3530r_write_mode write_mode)
Definition ad3530r.c:821
#define AD3530R_NUM_CH
Definition ad3530r.h:153
int ad3530r_set_dac_value(struct ad3530r_desc *desc, uint16_t dac_value, uint8_t dac_channel, enum ad3530r_write_mode write_mode)
Definition ad3530r.c:760
int ad3530r_init(struct ad3530r_desc **desc, struct ad3530r_init_param *init_param)
Initialize the device structure.
Definition ad3530r.c:1092
ad3530r_status
Definition ad3530r.h:199
@ AD3530R_INVALID_OR_NO_CRC
Definition ad3530r.h:208
@ AD3530R_INTERFACE_NOT_READY
Definition ad3530r.h:202
@ AD3530R_DEVICE_NOT_READY
Definition ad3530r.h:201
@ AD3530R_DEVICE_NOT_READY_ERR
Definition ad3530r.h:210
@ AD3530R_CLOCK_COUNTING_ERROR
Definition ad3530r.h:209
@ AD3530R_RESET_STATUS
Definition ad3530r.h:203
@ AD3530R_PARTIAL_REGISTER_ACCESS
Definition ad3530r.h:207
@ AD3530R_DAC_UPDATE_STATUS
Definition ad3530r.h:204
int ad3530r_multiple_reg_read(struct ad3530r_desc *desc, uint32_t addr, uint8_t buff_len, uint8_t *buff)
Read multiple register's values.
Definition ad3530r.c:507
int ad3530r_set_mux_out_select(struct ad3530r_desc *desc, enum ad3530r_mux_out_select mux_output_sel)
Definition ad3530r.c:678
int ad3530r_remove(struct ad3530r_desc *desc)
Free the device descriptor.
Definition ad3530r.c:1183
int ad3530r_multiple_reg_write(struct ad3530r_desc *desc, uint32_t start_addr, uint8_t buff_len, uint8_t *buff)
Write multiple register's values.
Definition ad3530r.c:372
int ad3530r_reset(struct ad3530r_desc *desc)
Perform a hard/soft reset.
Definition ad3530r.c:953
ad3530r_ch_sel
Channel select options.
Definition ad3530r.h:183
@ CH_8_TO_15
Definition ad3530r.h:185
@ CH_0_TO_7
Definition ad3530r.h:184
int ad3530r_set_operating_mode(struct ad3530r_desc *desc, uint8_t chn_num, enum ad3530r_operating_mode chn_op_mode)
Definition ad3530r.c:600
ad3530r_ch_output_range
Channel output range options.
Definition ad3530r.h:217
@ AD3530R_CH_OUTPUT_RANGE_0_VREF
Definition ad3530r.h:219
@ AD3530R_CH_OUTPUT_RANGE_0_2VREF
Definition ad3530r.h:221
int ad3530r_update_interface_cfg(struct ad3530r_desc *desc, struct ad3530r_transfer_config *cfg)
Updates the interface configuration.
Definition ad3530r.c:103
int ad3530r_spi_write_mask(struct ad3530r_desc *desc, uint32_t addr, uint32_t mask, uint16_t val)
SPI write to device using a mask.
Definition ad3530r.c:554
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
chip_id
Definition ad9172.h:51
Header file of CRC-8 computation.
#define NO_OS_CRC8_TABLE_SIZE
Definition no_os_crc8.h:39
Header file of GPIO Interface.
Header file of SPI Interface.
Header file of utility functions.
Definition ad3530r.h:313
uint8_t crc_table[NO_OS_CRC8_TABLE_SIZE]
Definition ad3530r.h:325
enum ad3530r_id chip_id
Definition ad3530r.h:314
uint16_t hw_ldac_mask
Definition ad3530r.h:322
enum ad3530r_mux_out_select mux_out_sel
Definition ad3530r.h:326
uint16_t sw_ldac_mask
Definition ad3530r.h:323
struct no_os_spi_desc * spi
Definition ad3530r.h:316
enum ad3530r_ch_vref_select vref_enable
Definition ad3530r.h:319
enum ad3530r_ch_output_range range
Definition ad3530r.h:321
struct no_os_gpio_desc * ldac
Definition ad3530r.h:317
enum ad3530r_operating_mode chn_op_mode[AD3530R_NUM_CH]
Definition ad3530r.h:320
struct ad3530r_transfer_config spi_cfg
Definition ad3530r.h:315
struct no_os_gpio_desc * reset
Definition ad3530r.h:318
uint8_t crc_en
Definition ad3530r.h:324
Definition ad3530r.h:329
uint16_t hw_ldac_mask
Definition ad3530r.h:341
struct ad3530r_transfer_config spi_cfg
Definition ad3530r.h:331
uint8_t crc_en
Definition ad3530r.h:344
struct no_os_spi_init_param * spi_param
Definition ad3530r.h:332
enum ad3530r_ch_vref_select vref_enable
Definition ad3530r.h:338
enum ad3530r_id chip_id
Definition ad3530r.h:330
enum ad3530r_ch_output_range range
Definition ad3530r.h:340
struct no_os_gpio_init_param * ldac_gpio_param_optional
Definition ad3530r.h:336
uint16_t sw_ldac_mask
Definition ad3530r.h:342
struct no_os_gpio_init_param * reset_gpio_param_optional
Definition ad3530r.h:334
enum ad3530r_mux_out_select mux_out_sel
Definition ad3530r.h:345
enum ad3530r_operating_mode chn_op_mode[AD3530R_NUM_CH]
Definition ad3530r.h:339
Definition ad3530r.h:283
uint8_t single_instr
Definition ad3530r.h:289
uint8_t addr_asc
Definition ad3530r.h:287
uint8_t short_instr
Definition ad3530r.h:291
uint8_t stream_length_keep_value
Definition ad3530r.h:296
uint8_t stream_mode_length
Definition ad3530r.h:285
Definition ad3530r.h:299
struct ad3530r_transfer_config * spi_cfg
Definition ad3530r.h:309
uint32_t len
Definition ad3530r.h:305
uint8_t * data
Definition ad3530r.h:303
uint8_t is_read
Definition ad3530r.h:307
uint16_t addr
Definition ad3530r.h:301
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128