no-OS
axi_adc_core.h
Go to the documentation of this file.
1 /***************************************************************************/
33 #ifndef AXI_ADC_CORE_H_
34 #define AXI_ADC_CORE_H_
35 
36 /******************************************************************************/
37 /***************************** Include Files **********************************/
38 /******************************************************************************/
39 #include <stdint.h>
40 #include "no_os_util.h"
41 
42 /******************************************************************************/
43 /********************** Macros and Constants Definitions **********************/
44 /******************************************************************************/
45 #define AXI_ADC_REG_RSTN 0x0040
46 #define AXI_ADC_MMCM_RSTN NO_OS_BIT(1)
47 #define AXI_ADC_RSTN NO_OS_BIT(0)
48 
49 #define AXI_ADC_REG_CNTRL 0x0044
50 #define AXI_ADC_R1_MODE NO_OS_BIT(2)
51 #define AXI_ADC_DDR_EDGESEL NO_OS_BIT(1)
52 #define AXI_ADC_PIN_MODE NO_OS_BIT(0)
53 
54 #define AXI_ADC_REG_CNTRL_3 0x004C
55 #define AXI_ADC_CRC_EN NO_OS_BIT(8)
56 
57 #define AXI_ADC_REG_CLK_FREQ 0x0054
58 #define AXI_ADC_CLK_FREQ(x) (((x) & 0xFFFFFFFF) << 0)
59 #define AXI_ADC_TO_CLK_FREQ(x) (((x) >> 0) & 0xFFFFFFFF)
60 
61 #define AXI_ADC_REG_CLK_RATIO 0x0058
62 #define AXI_ADC_CLK_RATIO(x) (((x) & 0xFFFFFFFF) << 0)
63 #define AXI_ADC_TO_CLK_RATIO(x) (((x) >> 0) & 0xFFFFFFFF)
64 
65 #define AXI_ADC_REG_STATUS 0x005C
66 #define AXI_ADC_MUX_PN_ERR NO_OS_BIT(3)
67 #define AXI_ADC_MUX_PN_OOS NO_OS_BIT(2)
68 #define AXI_ADC_MUX_OVER_RANGE NO_OS_BIT(1)
69 #define AXI_ADC_STATUS NO_OS_BIT(0)
70 
71 #define AXI_ADC_REG_DELAY_CNTRL 0x0060
72 #define ADC_DELAY_SEL NO_OS_BIT(17)
73 #define ADC_DELAY_RWN NO_OS_BIT(16)
74 #define ADC_DELAY_ADDRESS(x) (((x) & 0xFF) << 8)
75 #define ADC_TO_DELAY_ADDRESS(x) (((x) >> 8) & 0xFF)
76 #define ADC_DELAY_WDATA(x) (((x) & 0x1F) << 0)
77 #define ADC_TO_DELAY_WDATA(x) (((x) >> 0) & 0x1F)
78 
79 #define AXI_ADC_REG_CHAN_CNTRL(c) (0x0400 + (c) * 0x40)
80 #define AXI_ADC_PN_SEL NO_OS_BIT(10)
81 #define AXI_ADC_IQCOR_ENB NO_OS_BIT(9)
82 #define AXI_ADC_DCFILT_ENB NO_OS_BIT(8)
83 #define AXI_ADC_FORMAT_SIGNEXT NO_OS_BIT(6)
84 #define AXI_ADC_FORMAT_TYPE NO_OS_BIT(5)
85 #define AXI_ADC_FORMAT_ENABLE NO_OS_BIT(4)
86 #define AXI_ADC_PN23_TYPE NO_OS_BIT(1)
87 #define AXI_ADC_ENABLE NO_OS_BIT(0)
88 
89 #define AXI_ADC_REG_CHAN_STATUS(c) (0x0404 + (c) * 0x40)
90 #define AXI_ADC_PN_ERR NO_OS_BIT(2)
91 #define AXI_ADC_PN_OOS NO_OS_BIT(1)
92 #define AXI_ADC_OVER_RANGE NO_OS_BIT(0)
93 
94 #define AXI_ADC_REG_CHAN_CNTRL_1(c) (0x0410 + (c) * 0x40)
95 #define AXI_ADC_DCFILT_OFFSET(x) (((x) & 0xFFFFL) << 16)
96 #define AXI_ADC_TO_DCFILT_OFFSET(x) (((x) >> 16) & 0xFFFF)
97 #define AXI_ADC_DCFILT_COEFF(x) (((x) & 0xFFFF) << 0)
98 #define AXI_ADC_TO_DCFILT_COEFF(x) (((x) >> 0) & 0xFFFF)
99 
100 #define AXI_ADC_REG_CHAN_CNTRL_2(c) (0x0414 + (c) * 0x40)
101 #define AXI_ADC_IQCOR_COEFF_1(x) (((x) & 0xFFFFL) << 16)
102 #define AXI_ADC_TO_IQCOR_COEFF_1(x) (((x) >> 16) & 0xFFFF)
103 #define AXI_ADC_IQCOR_COEFF_2(x) (((x) & 0xFFFF) << 0)
104 #define AXI_ADC_TO_IQCOR_COEFF_2(x) (((x) >> 0) & 0xFFFF)
105 
106 #define AXI_ADC_REG_CHAN_CNTRL_3(c) (0x0418 + (c) * 0x40)
107 #define AXI_ADC_ADC_PN_SEL(x) (((x) & 0xF) << 16)
108 #define AXI_ADC_TO_ADC_PN_SEL(x) (((x) >> 16) & 0xF)
109 #define AXI_ADC_ADC_DATA_SEL(x) (((x) & 0xF) << 0)
110 #define AXI_ADC_TO_ADC_DATA_SEL(x) (((x) >> 0) & 0xF)
111 
112 #define AXI_ADC_REG_DELAY(l) (0x0800 + (l) * 0x4)
113 
114 /******************************************************************************/
115 /*************************** Types Declarations *******************************/
116 /******************************************************************************/
117 
122 struct axi_adc {
124  const char *name;
126  uint32_t base;
128  uint32_t slave_base;
130  uint8_t num_channels;
134  uint64_t clock_hz;
136  uint32_t mask;
137 };
138 
143 struct axi_adc_init {
145  const char *name;
147  uint32_t base;
149  uint8_t num_channels;
151  uint32_t slave_base;
154 };
155 
167 };
168 
169 /******************************************************************************/
170 /************************ Functions Declarations ******************************/
171 /******************************************************************************/
173 int32_t axi_adc_init_begin(struct axi_adc **adc_core,
174  const struct axi_adc_init *init);
176 int32_t axi_adc_init_finish(struct axi_adc *adc);
178 int32_t axi_adc_init(struct axi_adc **adc_core,
179  const struct axi_adc_init *init);
181 int32_t axi_adc_remove(struct axi_adc *adc);
183 int32_t axi_adc_read(struct axi_adc *adc,
184  uint32_t reg_addr,
185  uint32_t *reg_data);
187 int32_t axi_adc_write(struct axi_adc *adc,
188  uint32_t reg_addr,
189  uint32_t reg_data);
191 int32_t axi_adc_set_pnsel(struct axi_adc *adc,
192  uint32_t chan,
193  enum axi_adc_pn_sel sel);
195 int32_t axi_adc_pn_mon(struct axi_adc *adc,
196  enum axi_adc_pn_sel sel,
197  uint32_t delay_ms);
199 int32_t axi_adc_get_sampling_freq(struct axi_adc *adc,
200  uint32_t chan,
201  uint64_t *sampling_freq);
203 void axi_adc_idelay_set(struct axi_adc *adc,
204  uint32_t lane,
205  uint32_t val);
207 int32_t axi_adc_delay_set(struct axi_adc *adc,
208  uint32_t no_of_lanes,
209  uint32_t delay);
211 int32_t axi_adc_delay_calibrate(struct axi_adc *core,
212  uint32_t no_of_lanes,
213  enum axi_adc_pn_sel sel);
215 int32_t axi_adc_set_calib_phase(struct axi_adc *adc,
216  uint32_t chan,
217  int32_t val,
218  int32_t val2);
220 int32_t axi_adc_get_calib_phase(struct axi_adc *adc,
221  uint32_t chan,
222  int32_t *val,
223  int32_t *val2);
225 int32_t axi_adc_set_calib_scale(struct axi_adc *adc,
226  uint32_t chan,
227  int32_t val,
228  int32_t val2);
230 int32_t axi_adc_get_calib_scale(struct axi_adc *adc,
231  uint32_t chan,
232  int32_t *val,
233  int32_t *val2);
235 int32_t axi_adc_set_calib_bias(struct axi_adc *adc,
236  uint32_t chan,
237  int32_t val,
238  int32_t val2);
240 int32_t axi_adc_get_calib_bias(struct axi_adc *adc,
241  uint32_t chan,
242  int32_t *val,
243  int32_t *val2);
245 int32_t axi_adc_update_active_channels(struct axi_adc *adc, uint32_t mask);
246 #endif
axi_adc_core.h
Driver for the Analog Devices AXI-ADC-CORE module.
no_os_gpio_platform_ops::gpio_ops_direction_input
int32_t(* gpio_ops_direction_input)(struct no_os_gpio_desc *)
Definition: no_os_gpio.h:137
no_os_dma_remove
int no_os_dma_remove(struct no_os_dma_desc *desc)
Remove resources allocated for the DMA controller.
Definition: no_os_dma.c:143
no_os_eeprom_init_param::platform_ops
const struct no_os_eeprom_platform_ops * platform_ops
Definition: no_os_eeprom.h:61
no_os_dma_xfer_desc::irq_priority
uint32_t irq_priority
Definition: no_os_dma.h:91
axi_adc_read
int32_t axi_adc_read(struct axi_adc *adc, uint32_t reg_addr, uint32_t *reg_data)
AXI ADC Data read.
Definition: axi_adc_core.c:55
AXI_ADC_PN_END
@ AXI_ADC_PN_END
Definition: axi_adc_core.h:166
no_os_pwm_desc::mutex
void * mutex
Definition: no_os_pwm.h:95
no_os_mdio_init
int no_os_mdio_init(struct no_os_mdio_desc **desc, struct no_os_mdio_init_param *param)
Initialize the MDIO interface.
Definition: no_os_mdio.c:42
no_os_pwm_set_duty_cycle
int32_t no_os_pwm_set_duty_cycle(struct no_os_pwm_desc *desc, uint32_t duty_cycle_ns)
Set the PWM duty cycle.
Definition: no_os_pwm.c:169
axi_adc_delay_calibrate
int32_t axi_adc_delay_calibrate(struct axi_adc *core, uint32_t no_of_lanes, enum axi_adc_pn_sel sel)
Calibrate Delay using specific PN sequence.
Definition: axi_adc_core.c:242
no_os_i3c_bus_desc::platform_ops
const struct no_os_i3c_platform_ops * platform_ops
Definition: no_os_i3c.h:228
no_os_i2cbus_desc
Structure holding I2C bus descriptor.
Definition: no_os_i2c.h:81
axi_adc::num_slave_channels
uint8_t num_slave_channels
Definition: axi_adc_core.h:132
no_os_alloc.h
no_os_gpio_init_param
Structure holding the parameters for GPIO initialization.
Definition: no_os_gpio.h:79
no_os_uart_desc::platform_ops
const struct no_os_uart_platform_ops * platform_ops
Definition: no_os_uart.h:145
no_os_spi_transfer
int32_t no_os_spi_transfer(struct no_os_spi_desc *desc, struct no_os_spi_msg *msgs, uint32_t len)
Iterate over head list and send all spi messages.
Definition: no_os_spi.c:185
no_os_pwm_init_param
Structure containing the init parameters needed by the PWM generator.
Definition: no_os_pwm.h:66
no_os_pwm_disable
int32_t no_os_pwm_disable(struct no_os_pwm_desc *desc)
Disable PWM signal generation.
Definition: no_os_pwm.c:115
no_os_mdio_init_param
Parameters for an MDIO slave.
Definition: no_os_mdio.h:60
no_os_spibus_desc::mutex
void * mutex
Definition: no_os_spi.h:169
no_os_mdio_init_param::c45
bool c45
Definition: no_os_mdio.h:65
no_os_timer_init
int32_t no_os_timer_init(struct no_os_timer_desc **desc, const struct no_os_timer_init_param *param)
Initialize hardware timer and the handler structure associated with it.
Definition: no_os_timer.c:57
no_os_dma_desc::sg_handler
void(* sg_handler)(void *)
Definition: no_os_dma.h:164
no_os_pwm_init
int32_t no_os_pwm_init(struct no_os_pwm_desc **desc, const struct no_os_pwm_init_param *param)
Initialize the PWM peripheral.
Definition: no_os_pwm.c:51
no_os_mdio_ops::remove
int(* remove)(struct no_os_mdio_desc *)
Definition: no_os_mdio.h:98
no_os_gpio_platform_ops::gpio_ops_get_value
int32_t(* gpio_ops_get_value)(struct no_os_gpio_desc *, uint8_t *)
Definition: no_os_gpio.h:145
no_os_mdio_write
int no_os_mdio_write(struct no_os_mdio_desc *desc, uint32_t reg, uint16_t val)
Write a register using MDIO.
Definition: no_os_mdio.c:90
NO_OS_I3C_MAX_ADDR
#define NO_OS_I3C_MAX_ADDR
Definition: no_os_i3c.h:58
no_os_tdm_platform_ops::tdm_ops_write
int32_t(* tdm_ops_write)(struct no_os_tdm_desc *, void *, uint16_t)
Definition: no_os_tdm.h:115
no_os_i3c_ccc_info::ibi_payload
uint32_t ibi_payload
Definition: no_os_i3c.h:170
no_os_i3c_init_param::pid
uint64_t pid
Definition: no_os_i3c.h:265
no_os_dma_default_handler_data
IRQ parameter for the default inter transfer handler.
Definition: no_os_dma.h:59
no_os_irq_platform_ops::clear_pending
int32_t(* clear_pending)(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Definition: no_os_irq.h:188
no_os_pwm_platform_ops::pwm_ops_get_period
int32_t(* pwm_ops_get_period)(struct no_os_pwm_desc *, uint32_t *)
Definition: no_os_pwm.h:136
no_os_dma_xfer_abort
int no_os_dma_xfer_abort(struct no_os_dma_desc *desc, struct no_os_dma_ch *ch)
Abort the ongoing and any other future transfers scheduled for a channel.
Definition: no_os_dma.c:384
SPI_MAX_BUS_NUMBER
#define SPI_MAX_BUS_NUMBER
Definition: no_os_spi.h:49
no_os_i2cbus_remove
void no_os_i2cbus_remove(uint32_t bus_number)
Removes i2c bus instance.
Definition: no_os_i2c.c:131
no_os_eeprom_desc
Structure holding the EEPROM descriptor.
Definition: no_os_eeprom.h:70
no_os_i3c_slot_status
no_os_i3c_slot_status
On an I3C bus, addresses are assigned dynamically, and we need to know which addresses are free to us...
Definition: no_os_i3c.h:148
no_os_mutex_init
void no_os_mutex_init(void **mutex)
Function for no-os mutex initialization and thread safety. This function is implemented based on diff...
Definition: freertos_mutex.c:44
no_os_irq_platform_ops::set_priority
int32_t(* set_priority)(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, uint32_t priority_level)
Definition: no_os_irq.h:183
no_os_i2c_platform_ops::i2c_ops_read
int32_t(* i2c_ops_read)(struct no_os_i2c_desc *, uint8_t *, uint8_t, uint8_t)
Definition: no_os_i2c.h:128
no_os_spi_init_param::bit_order
enum no_os_spi_bit_order bit_order
Definition: no_os_spi.h:150
axi_adc_update_active_channels
int32_t axi_adc_update_active_channels(struct axi_adc *adc, uint32_t mask)
Update active AXI ADC channels.
Definition: axi_adc_core.c:539
NO_OS_I3C_CCC_SETAASA
#define NO_OS_I3C_CCC_SETAASA
Definition: no_os_i3c.h:106
no_os_dma_ch::irq_ctx
struct no_os_dma_default_handler_data irq_ctx
Definition: no_os_dma.h:119
NO_OS_I3C_ADDR_SLOT_I2C_DEV
@ NO_OS_I3C_ADDR_SLOT_I2C_DEV
Definition: no_os_i3c.h:154
no_os_tdm_remove
int32_t no_os_tdm_remove(struct no_os_tdm_desc *desc)
Free the resources allocated by no_os_tdm_init().
Definition: no_os_tdm.c:64
axi_adc_set_pnsel
int32_t axi_adc_set_pnsel(struct axi_adc *adc, uint32_t chan, enum axi_adc_pn_sel sel)
Set AXI ADC PN sequence.
Definition: axi_adc_core.c:115
no_os_tdm_platform_ops::tdm_ops_pause
int32_t(* tdm_ops_pause)(struct no_os_tdm_desc *)
Definition: no_os_tdm.h:117
no_os_dma_platform_ops::dma_acquire_ch
int(* dma_acquire_ch)(struct no_os_dma_desc *, uint32_t *)
Definition: no_os_dma.h:247
no_os_uart_read_nonblocking
int32_t no_os_uart_read_nonblocking(struct no_os_uart_desc *desc, uint8_t *data, uint32_t bytes_number)
Read data from UART non-blocking.
Definition: no_os_uart.c:170
axi_adc_set_calib_phase
int32_t axi_adc_set_calib_phase(struct axi_adc *adc, uint32_t chan, int32_t val, int32_t val2)
Calibrate phase for specific AXI ADC channel.
Definition: axi_adc_core.c:433
no_os_i3c_remove
int no_os_i3c_remove(struct no_os_i3c_desc *desc)
Free the resources allocated by no_os_i3c_init().
Definition: no_os_i3c.c:270
sampling_freq
uint64_t sampling_freq
Definition: headless.c:73
no_os_i3c_bus_desc::irq_events
uint8_t irq_events
Definition: no_os_i3c.h:222
no_os_dma_platform_ops::dma_xfer_start
int(* dma_xfer_start)(struct no_os_dma_desc *, struct no_os_dma_ch *)
Definition: no_os_dma.h:253
no_os_callback_desc
Structure describing a callback to be registered.
Definition: no_os_irq.h:142
no_os_i3c_platform_ops::i3c_ops_read
int(* i3c_ops_read)(struct no_os_i3c_desc *, uint8_t *, uint8_t)
Definition: no_os_i3c.h:319
no_os_i3c_platform_ops::i3c_ops_conf_irq
int(* i3c_ops_conf_irq)(struct no_os_i3c_bus_desc *, uint8_t, bool)
Definition: no_os_i3c.h:330
no_os_list_get_size
int32_t no_os_list_get_size(struct no_os_list_desc *list_desc, uint32_t *out_size)
no_os_tdm_write
int32_t no_os_tdm_write(struct no_os_tdm_desc *desc, void *data, uint16_t nb_samples)
Write data using the TDM interface.
Definition: no_os_tdm.c:120
no_os_i3c_wait_irq
int no_os_i3c_wait_irq(struct no_os_i3c_bus_desc *desc, uint8_t irq)
Wait I3C interrupt. Set async_irq on call to false to ensure single entry point.
Definition: no_os_i3c.c:526
no_os_spi.h
Header file of SPI Interface.
no_os_timer_init_param::id
uint16_t id
Definition: no_os_timer.h:85
NO_OS_I3C_MAX_BUS_NUMBER
#define NO_OS_I3C_MAX_BUS_NUMBER
Definition: no_os_i3c.h:54
no_os_dma_init_param
Initialization parameter for the DMA controller.
Definition: no_os_dma.h:171
no_os_i3c_desc::event_callback
void(* event_callback)(struct no_os_i3c_desc *, uint32_t, uint32_t)
Definition: no_os_i3c.h:292
no_os_dma_ch::id
uint32_t id
Definition: no_os_dma.h:109
no_os_irq.h
Header file of IRQ interface.
no_os_irq_register_callback
int32_t no_os_irq_register_callback(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *callback_desc)
Register a callback to handle the irq events.
Definition: no_os_irq.c:92
no_os_timer_platform_ops::count_clk_set
int32_t(* count_clk_set)(struct no_os_timer_desc *, uint32_t freq_hz)
Definition: no_os_timer.h:116
no_os_mdio_ops::read
int(* read)(struct no_os_mdio_desc *, uint32_t, uint16_t *)
Definition: no_os_mdio.h:96
no_os_uart_init
int32_t no_os_uart_init(struct no_os_uart_desc **desc, struct no_os_uart_init_param *param)
Initialize the UART communication peripheral.
Definition: no_os_uart.c:52
no_os_uart_desc::mutex
void * mutex
Definition: no_os_uart.h:136
no_os_uart_platform_ops::remove
int32_t(* remove)(struct no_os_uart_desc *)
Definition: no_os_uart.h:168
no_os_i3c_bus_desc::ccc_info
struct no_os_i3c_ccc_info ccc_info
Definition: no_os_i3c.h:224
axi_adc_init
AXI ADC Initialization Parameters structure.
Definition: axi_adc_core.h:143
no_os_pwm_desc::id
uint32_t id
Definition: no_os_pwm.h:97
no_os_dma_in_progress
bool no_os_dma_in_progress(struct no_os_dma_desc *desc, struct no_os_dma_ch *ch)
Whether or not there is a transfer in progress on a specific channel.
Definition: no_os_dma.c:434
no_os_i3c_desc::bus
struct no_os_i3c_bus_desc * bus
Definition: no_os_i3c.h:296
no_os_mdio_init_param::ops
struct no_os_mdio_ops * ops
Definition: no_os_mdio.h:69
axi_adc_write
int32_t axi_adc_write(struct axi_adc *adc, uint32_t reg_addr, uint32_t reg_data)
AXI ADC Data Write.
Definition: axi_adc_core.c:71
no_os_spibus_desc::mode
enum no_os_spi_mode mode
Definition: no_os_spi.h:177
no_os_spibus_desc::bit_order
enum no_os_spi_bit_order bit_order
Definition: no_os_spi.h:179
AXI_ADC_RSTN
#define AXI_ADC_RSTN
Definition: axi_adc_core.h:47
no_os_pwm_platform_ops::pwm_ops_set_phase
int32_t(* pwm_ops_set_phase)(struct no_os_pwm_desc *, uint32_t)
Definition: no_os_pwm.h:142
no_os_i2c_platform_ops::i2c_ops_write
int32_t(* i2c_ops_write)(struct no_os_i2c_desc *, uint8_t *, uint8_t, uint8_t)
Definition: no_os_i2c.h:126
no_os_i3c_desc
Structure holding I3C device descriptor.
Definition: no_os_i3c.h:278
no_os_dma_acquire_channel
int no_os_dma_acquire_channel(struct no_os_dma_desc *desc, struct no_os_dma_ch **channel)
Get a free DMA channel.
Definition: no_os_dma.c:184
TIMER_MAX_TABLE
#define TIMER_MAX_TABLE
Definition: no_os_timer.h:47
no_os_pwm_platform_ops::pwm_ops_get_polarity
int32_t(* pwm_ops_get_polarity)(struct no_os_pwm_desc *, enum no_os_pwm_polarity *)
Definition: no_os_pwm.h:149
no_os_timer_desc::platform_ops
const struct no_os_timer_platform_ops * platform_ops
Definition: no_os_timer.h:67
no_os_spi_msg
Definition: no_os_spi.h:100
NO_OS_IS_ERR_VALUE
#define NO_OS_IS_ERR_VALUE(x)
Definition: no_os_error.h:50
no_os_dma_ch::irq_num
uint32_t irq_num
Definition: no_os_dma.h:115
no_os_delay.h
Header file of Delay functions.
no_os_i3c_remove_bus
int no_os_i3c_remove_bus(struct no_os_i3c_bus_desc *desc)
Free the resources allocated by no_os_i3c_init_bus. Must remove all devices first,...
Definition: no_os_i3c.c:302
no_os_i2c_write
int32_t no_os_i2c_write(struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
I2C Write data to slave device.
Definition: no_os_i2c.c:159
no_os_irq_unregister_callback
int32_t no_os_irq_unregister_callback(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *callback)
Unregisters a generic IRQ handling function.
Definition: no_os_irq.c:112
DEV_TO_MEM
@ DEV_TO_MEM
Definition: no_os_dma.h:52
no_os_i2c_init
int32_t no_os_i2c_init(struct no_os_i2c_desc **desc, const struct no_os_i2c_init_param *param)
Initialize the I2C communication peripheral.
Definition: no_os_i2c.c:52
no_os_eeprom.h
Header file for EEPROM APIs.
no_os_dma_init_param::platform_ops
struct no_os_dma_platform_ops * platform_ops
Definition: no_os_dma.h:177
axi_adc
AXI ADC Device Descriptor.
Definition: axi_adc_core.h:122
no_os_trng_platform_ops::init
int(* init)(struct no_os_trng_desc **, const struct no_os_trng_init_param *)
Definition: no_os_trng.h:86
no_os_uart_platform_ops::init
int32_t(* init)(struct no_os_uart_desc **, struct no_os_uart_init_param *)
Definition: no_os_uart.h:157
no_os_timer_platform_ops::get_elapsed_time_nsec
int32_t(* get_elapsed_time_nsec)(struct no_os_timer_desc *, uint64_t *elapsed_time)
Definition: no_os_timer.h:118
no_os_dma_init
int no_os_dma_init(struct no_os_dma_desc **desc, struct no_os_dma_init_param *param)
Initialize the DMA controller.
Definition: no_os_dma.c:90
no_os_eeprom_platform_ops::write
int32_t(* write)(struct no_os_eeprom_desc *, uint32_t, uint8_t *, uint16_t)
Definition: no_os_eeprom.h:88
no_os_list_get_first
int32_t no_os_list_get_first(struct no_os_list_desc *list_desc, void **data)
no_os_spi_init_param::mode
enum no_os_spi_mode mode
Definition: no_os_spi.h:148
no_os_tdm_init_param::platform_ops
const struct no_os_tdm_platform_ops * platform_ops
Definition: no_os_tdm.h:83
no_os_spibus_desc::slave_number
uint8_t slave_number
Definition: no_os_spi.h:171
no_os_i3c_bus_init_param::devs
const struct no_os_i3c_init_param ** devs
Definition: no_os_i3c.h:245
no_os_gpio_get_optional
int32_t no_os_gpio_get_optional(struct no_os_gpio_desc **desc, const struct no_os_gpio_init_param *param)
Get the value of an optional GPIO.
Definition: no_os_gpio.c:75
axi_adc_init_begin
int32_t axi_adc_init_begin(struct axi_adc **adc_core, const struct axi_adc_init *init)
Begin AXI ADC Initialization.
Definition: axi_adc_core.c:587
AXI_ADC_REG_STATUS
#define AXI_ADC_REG_STATUS
Definition: axi_adc_core.h:65
no_os_irq_enable
int32_t no_os_irq_enable(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Enable specific interrupt.
Definition: no_os_irq.c:181
AXI_ADC_PN_RAMP_16
@ AXI_ADC_PN_RAMP_16
Definition: axi_adc_core.h:165
no_os_mdio_init_param::id
int id
Definition: no_os_mdio.h:62
axi_adc_init::num_slave_channels
uint8_t num_slave_channels
Definition: axi_adc_core.h:153
no_os_i3c.h
Header file of I3C Interface.
no_os_gpio_init_param::number
int32_t number
Definition: no_os_gpio.h:83
no_os_i3c_addr_set_status
void no_os_i3c_addr_set_status(struct no_os_i3c_bus_desc *desc, uint8_t addr, enum no_os_i3c_slot_status status)
Set status of an address.
Definition: no_os_i3c.c:600
no_os_trng_platform_ops::remove
int(* remove)(struct no_os_trng_desc *)
Definition: no_os_trng.h:91
NO_OS_I3C_CCC_RSTACT_WHOLE_TARGET
#define NO_OS_I3C_CCC_RSTACT_WHOLE_TARGET
Definition: no_os_i3c.h:99
axi_adc::name
const char * name
Definition: axi_adc_core.h:124
AXI_ADC_ENABLE
#define AXI_ADC_ENABLE
Definition: axi_adc_core.h:87
no_os_irq_platform_ops::init
int32_t(* init)(struct no_os_irq_ctrl_desc **desc, const struct no_os_irq_init_param *param)
Definition: no_os_irq.h:162
no_os_dma_platform_ops::dma_remove
int(* dma_remove)(struct no_os_dma_desc *desc)
Definition: no_os_dma.h:245
no_os_tdm_platform_ops::tdm_ops_read
int32_t(* tdm_ops_read)(struct no_os_tdm_desc *, void *, uint16_t)
Definition: no_os_tdm.h:113
no_os_tdm_platform_ops::tdm_ops_stop
int32_t(* tdm_ops_stop)(struct no_os_tdm_desc *)
Definition: no_os_tdm.h:121
no_os_pwm_init_param::id
uint32_t id
Definition: no_os_pwm.h:68
AXI_ADC_TO_IQCOR_COEFF_1
#define AXI_ADC_TO_IQCOR_COEFF_1(x)
Definition: axi_adc_core.h:102
no_os_spibus_desc::device_id
uint32_t device_id
Definition: no_os_spi.h:173
i3c_table
struct no_os_i3c_bus_desc * i3c_table[NO_OS_I3C_MAX_BUS_NUMBER+1]
i3c_table contains the pointers towards the I3C buses.
Definition: no_os_i3c.c:51
no_os_timer.h
Timer control module header.
no_os_spibus_desc::platform_ops
const struct no_os_spi_platform_ops * platform_ops
Definition: no_os_spi.h:183
no_os_axi_io.h
Header file of AXI IO.
no_os_calloc
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:54
NO_OS_ARRAY_SIZE
#define NO_OS_ARRAY_SIZE(x)
Definition: no_os_util.h:49
no_os_i3c_bus_desc
Structure holding I3C bus descriptor.
Definition: no_os_i3c.h:200
no_os_uart_platform_ops::get_errors
uint32_t(* get_errors)(struct no_os_uart_desc *)
Definition: no_os_uart.h:170
no_os_pwm_polarity
no_os_pwm_polarity
Possible polarities of the PWM signal.
Definition: no_os_pwm.h:55
AXI_ADC_REG_CLK_RATIO
#define AXI_ADC_REG_CLK_RATIO
Definition: axi_adc_core.h:61
axi_adc_get_calib_phase_scale
int32_t axi_adc_get_calib_phase_scale(struct axi_adc *adc, uint32_t phase, uint32_t chan, int32_t *val, int32_t *val2)
Get the phase calibration values for AXI ADC channel.
Definition: axi_adc_core.c:385
axi_adc_init::base
uint32_t base
Definition: axi_adc_core.h:147
no_os_spi_transfer_dma_async
int32_t no_os_spi_transfer_dma_async(struct no_os_spi_desc *desc, struct no_os_spi_msg *msgs, uint32_t len, void(*callback)(void *), void *ctx)
Transfer a list of messages using DMA. The function will return after the first transfer is started....
Definition: no_os_spi.c:248
axi_adc_delay_set
int32_t axi_adc_delay_set(struct axi_adc *adc, uint32_t no_of_lanes, uint32_t delay)
Set input/output delay primitive for number of lines.
Definition: axi_adc_core.c:207
no_os_uart_desc::device_id
uint8_t device_id
Definition: no_os_uart.h:138
NO_OS_I3C_CCC_ADDR
#define NO_OS_I3C_CCC_ADDR(x)
Definition: no_os_i3c.h:74
no_os_spi_init_param::platform_ops
const struct no_os_spi_platform_ops * platform_ops
Definition: no_os_spi.h:154
no_os_i3c_platform_ops::i3c_ops_remove_bus
int(* i3c_ops_remove_bus)(struct no_os_i3c_bus_desc *)
Definition: no_os_i3c.h:324
no_os_pwm_platform_ops::pwm_ops_get_phase
int32_t(* pwm_ops_get_phase)(struct no_os_pwm_desc *, uint32_t *)
Definition: no_os_pwm.h:144
no_os_tdm_platform_ops::tdm_ops_remove
int32_t(* tdm_ops_remove)(struct no_os_tdm_desc *)
Definition: no_os_tdm.h:123
no_os_i3c_send_ccc
int no_os_i3c_send_ccc(struct no_os_i3c_bus_desc *desc, uint8_t addr, uint32_t ccc, uint8_t *data)
Send CCC, either to a device device or broadcast to all.
Definition: no_os_i3c.c:354
no_os_i3c_ccc_info::ibi_payload_len
uint32_t ibi_payload_len
Definition: no_os_i3c.h:168
AXI_ADC_REG_DELAY
#define AXI_ADC_REG_DELAY(l)
Definition: axi_adc_core.h:112
no_os_i3c_init_param::is_static
bool is_static
Definition: no_os_i3c.h:269
no_os_timer_platform_ops::count_clk_get
int32_t(* count_clk_get)(struct no_os_timer_desc *, uint32_t *freq_hz)
Definition: no_os_timer.h:114
no_os_trng_fill_buffer
int no_os_trng_fill_buffer(struct no_os_trng_desc *desc, uint8_t *buff, uint32_t len)
Fill buffer with rng data.
Definition: no_os_trng.c:95
axi_adc_init
int32_t axi_adc_init(struct axi_adc **adc_core, const struct axi_adc_init *init)
AXI ADC Main Initialization.
Definition: axi_adc_core.c:641
no_os_callback_desc::peripheral
enum no_os_irq_peripheral peripheral
Definition: no_os_irq.h:150
no_os_i2c_init_param::extra
void * extra
Definition: no_os_i2c.h:74
AXI_ADC_REG_RSTN
#define AXI_ADC_REG_RSTN
Definition: axi_adc_core.h:45
no_os_gpio_init_param::platform_ops
const struct no_os_gpio_platform_ops * platform_ops
Definition: no_os_gpio.h:87
no_os_gpio_remove
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:104
no_os_eeprom_desc::platform_ops
const struct no_os_eeprom_platform_ops * platform_ops
Definition: no_os_eeprom.h:73
no_os_pwm_platform_ops::pwm_ops_remove
int32_t(* pwm_ops_remove)(struct no_os_pwm_desc *)
Definition: no_os_pwm.h:152
no_os_irq_set_priority
int32_t no_os_irq_set_priority(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, uint32_t priority_level)
Set the priority for an interrupt.
Definition: no_os_irq.c:216
NO_OS_I3C_ADDR_SLOT_STATUS_MASK
@ NO_OS_I3C_ADDR_SLOT_STATUS_MASK
Definition: no_os_i3c.h:158
no_os_dma_init_param::num_ch
uint32_t num_ch
Definition: no_os_dma.h:175
axi_adc_set_calib_phase
int32_t axi_adc_set_calib_phase(struct axi_adc *adc, uint32_t chan, int32_t val, int32_t val2)
Calibrate phase for specific AXI ADC channel.
Definition: axi_adc_core.c:433
no_os_spi_init_param::device_id
uint32_t device_id
Definition: no_os_spi.h:142
no_os_gpio_direction_output
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:147
no_os_dma_release_channel
int no_os_dma_release_channel(struct no_os_dma_desc *desc, struct no_os_dma_ch *channel)
Free DMA channel.
Definition: no_os_dma.c:216
no_os_timer_count_clk_get
int32_t no_os_timer_count_clk_get(struct no_os_timer_desc *desc, uint32_t *freq_hz)
Get the timer clock frequency.
Definition: no_os_timer.c:173
no_os_tdm_stop
int32_t no_os_tdm_stop(struct no_os_tdm_desc *desc)
Stop TDM DMA transfer.
Definition: no_os_tdm.c:108
no_os_i2cbus_desc::max_speed_hz
uint32_t max_speed_hz
Definition: no_os_i2c.h:89
no_os_do_div
uint64_t no_os_do_div(uint64_t *n, uint64_t base)
no_os_mdelay
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:126
no_os_tdm_desc
Structure holding TDM descriptor.
Definition: no_os_tdm.h:92
axi_adc_get_sampling_freq
int32_t axi_adc_get_sampling_freq(struct axi_adc *adc, uint32_t chan, uint64_t *sampling_freq)
Get the AXI ADC Sampling Frequency.
Definition: axi_adc_core.c:171
no_os_timer_platform_ops::counter_get
int32_t(* counter_get)(struct no_os_timer_desc *, uint32_t *counter)
Definition: no_os_timer.h:110
no_os_i3c_desc::is_attached
bool is_attached
Definition: no_os_i3c.h:286
no_os_i3c_platform_ops::i3c_ops_send_ccc
int(* i3c_ops_send_ccc)(struct no_os_i3c_bus_desc *, uint8_t, uint8_t, bool, bool, uint8_t *, uint8_t)
Definition: no_os_i3c.h:314
no_os_dma_chan_unlock
int no_os_dma_chan_unlock(struct no_os_dma_ch *ch)
Unlock a DMA channel, marking it available for acquisition.
Definition: no_os_dma.c:336
no_os_i3c_bus_init_param::platform_ops
const struct no_os_i3c_platform_ops * platform_ops
Definition: no_os_i3c.h:241
no_os_irq_set_priority
int32_t no_os_irq_set_priority(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, uint32_t priority_level)
Set the priority for an interrupt.
Definition: no_os_irq.c:216
no_os_dma_config_xfer
int no_os_dma_config_xfer(struct no_os_dma_desc *desc, struct no_os_dma_xfer_desc *xfer, uint32_t len, struct no_os_dma_ch *ch)
Acquire a channel and configure the list of transfers.
Definition: no_os_dma.c:242
no_os_pwm_platform_ops::pwm_ops_get_duty_cycle
int32_t(* pwm_ops_get_duty_cycle)(struct no_os_pwm_desc *, uint32_t *)
Definition: no_os_pwm.h:140
axi_adc_remove
int32_t axi_adc_remove(struct axi_adc *adc)
AXI ADC Resources deallocation.
Definition: axi_adc_core.c:681
NO_OS_I3C_ADDR_SLOT_RSVD
@ NO_OS_I3C_ADDR_SLOT_RSVD
Definition: no_os_i3c.h:152
axi_adc::num_channels
uint8_t num_channels
Definition: axi_adc_core.h:130
no_os_uart_desc
Stucture holding the UART descriptor.
Definition: no_os_uart.h:134
AXI_ADC_IQCOR_COEFF_2
#define AXI_ADC_IQCOR_COEFF_2(x)
Definition: axi_adc_core.h:103
no_os_i3c_platform_ops::i3c_ops_get_ccc_info
int(* i3c_ops_get_ccc_info)(struct no_os_i3c_bus_desc *, uint8_t)
Definition: no_os_i3c.h:333
no_os_trng_desc
TRNG Descriptor.
Definition: no_os_trng.h:59
no_os_irq_ctrl_desc::ref
uint32_t ref
Definition: no_os_irq.h:129
no_os_error.h
Error codes definition.
no_os_trng.h
Header file of true random number generator.
no_os_i3c_bus_init_param
Structure holding the parameters for I3C initialization.
Definition: no_os_i3c.h:237
axi_adc_write
int32_t axi_adc_write(struct axi_adc *adc, uint32_t reg_addr, uint32_t reg_data)
AXI ADC Data Write.
Definition: axi_adc_core.c:71
no_os_gpio_desc::platform_ops
const struct no_os_gpio_platform_ops * platform_ops
Definition: no_os_gpio.h:104
no_os_mutex_unlock
void no_os_mutex_unlock(void *mutex)
Function for unlocking mutex.
AXI_ADC_IQCOR_COEFF_1
#define AXI_ADC_IQCOR_COEFF_1(x)
Definition: axi_adc_core.h:101
no_os_timer_platform_ops::counter_set
int32_t(* counter_set)(struct no_os_timer_desc *, uint32_t new_val)
Definition: no_os_timer.h:112
no_os_spi_init_param::platform_delays
struct no_os_platform_spi_delays platform_delays
Definition: no_os_spi.h:156
no_os_i3c_bus_init_param::device_id
const uint32_t device_id
Definition: no_os_i3c.h:239
no_os_i2c_init_param::max_speed_hz
uint32_t max_speed_hz
Definition: no_os_i2c.h:68
no_os_i3c_platform_ops::i3c_ops_write
int(* i3c_ops_write)(struct no_os_i3c_desc *, uint8_t *, uint8_t)
Definition: no_os_i3c.h:317
no_os_dma_default_handler_data::channel
struct no_os_dma_ch * channel
Definition: no_os_dma.h:61
no_os_eeprom_write
int32_t no_os_eeprom_write(struct no_os_eeprom_desc *desc, uint32_t address, uint8_t *data, uint16_t bytes)
Write the EEPROM data.
Definition: no_os_eeprom.c:89
AXI_ADC_REG_CHAN_CNTRL_3
#define AXI_ADC_REG_CHAN_CNTRL_3(c)
Definition: axi_adc_core.h:106
no_os_dma_desc::mutex
void * mutex
Definition: no_os_dma.h:157
no_os_i2c_read
int32_t no_os_i2c_read(struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
I2C Read data from slave device.
Definition: no_os_i2c.c:190
axi_adc_get_calib_scale
int32_t axi_adc_get_calib_scale(struct axi_adc *adc, uint32_t chan, int32_t *val, int32_t *val2)
Get the scale calibration values for AXI ADC channel.
Definition: axi_adc_core.c:481
no_os_mutex.h
axi_slave_adc_read
int32_t axi_slave_adc_read(struct axi_adc *adc, uint32_t reg_addr, uint32_t *reg_data)
Slave AXI ADC Data read.
Definition: axi_adc_core.c:87
axi_adc_idelay_set
void axi_adc_idelay_set(struct axi_adc *adc, uint32_t lane, uint32_t val)
Set input/output delay primitive for specific interface line.
Definition: axi_adc_core.c:192
no_os_eeprom_platform_ops::read
int32_t(* read)(struct no_os_eeprom_desc *, uint32_t, uint8_t *, uint16_t)
Definition: no_os_eeprom.h:90
axi_adc_read
int32_t axi_adc_read(struct axi_adc *adc, uint32_t reg_addr, uint32_t *reg_data)
AXI ADC Data read.
Definition: axi_adc_core.c:55
AXI_ADC_TO_DCFILT_OFFSET
#define AXI_ADC_TO_DCFILT_OFFSET(x)
Definition: axi_adc_core.h:96
NO_OS_I3C_CCC_GET_RNW
#define NO_OS_I3C_CCC_GET_RNW(x)
Definition: no_os_i3c.h:79
no_os_dma_ch
Describes the state of a DMA channel.
Definition: no_os_dma.h:107
no_os_i3c_write
int no_os_i3c_write(struct no_os_i3c_desc *desc, uint8_t *data, uint8_t size)
Write data to device device.
Definition: no_os_i3c.c:407
PWM_MAX_NUMBER
#define PWM_MAX_NUMBER
Definition: no_os_pwm.h:46
no_os_uart_platform_ops::write
int32_t(* write)(struct no_os_uart_desc *, const uint8_t *, uint32_t)
Definition: no_os_uart.h:161
no_os_i3c_send_direct_ccc
int no_os_i3c_send_direct_ccc(struct no_os_i3c_desc *desc, uint32_t ccc, uint8_t *data)
Send CCC to device device.
Definition: no_os_i3c.c:388
no_os_timer_desc::id
uint16_t id
Definition: no_os_timer.h:61
no_os_trng_remove
int no_os_trng_remove(struct no_os_trng_desc *desc)
Free the resources allocated by no_os_trng_init().
Definition: no_os_trng.c:77
no_os_gpio_platform_ops::gpio_ops_remove
int32_t(* gpio_ops_remove)(struct no_os_gpio_desc *)
Definition: no_os_gpio.h:135
AXI_ADC_REG_CHAN_CNTRL_2
#define AXI_ADC_REG_CHAN_CNTRL_2(c)
Definition: axi_adc_core.h:100
no_os_dma_platform_ops::dma_xfer_abort
int(* dma_xfer_abort)(struct no_os_dma_desc *, struct no_os_dma_ch *)
Definition: no_os_dma.h:255
no_os_i3c_bus_desc::async_irq
bool async_irq
Definition: no_os_i3c.h:226
no_os_i3c_detach_callback
void no_os_i3c_detach_callback(struct no_os_i3c_desc *desc)
Detach event callback.
Definition: no_os_i3c.c:695
no_os_callback_desc::ctx
void * ctx
Definition: no_os_irq.h:146
MEM_TO_MEM
@ MEM_TO_MEM
Definition: no_os_dma.h:50
no_os_i3c_platform_ops::i3c_ops_do_daa
int(* i3c_ops_do_daa)(struct no_os_i3c_bus_desc *, bool)
Definition: no_os_i3c.h:312
no_os_pwm_platform_ops::pwm_ops_init
int32_t(* pwm_ops_init)(struct no_os_pwm_desc **, const struct no_os_pwm_init_param *)
Definition: no_os_pwm.h:127
axi_adc_get_calib_bias
int32_t axi_adc_get_calib_bias(struct axi_adc *adc, uint32_t chan, int32_t *val, int32_t *val2)
Get the scale calibration values for AXI ADC channel.
Definition: axi_adc_core.c:521
no_os_i3c_conf_irq
int no_os_i3c_conf_irq(struct no_os_i3c_bus_desc *desc, uint8_t irq, bool en)
Configure I3C interrupts.
Definition: no_os_i3c.c:492
no_os_timer_remove
int32_t no_os_timer_remove(struct no_os_timer_desc *desc)
Free the memory allocated by timer_init().
Definition: no_os_timer.c:85
no_os_pwm_platform_ops::pwm_ops_set_polarity
int32_t(* pwm_ops_set_polarity)(struct no_os_pwm_desc *, enum no_os_pwm_polarity)
Definition: no_os_pwm.h:146
axi_adc_init::slave_base
uint32_t slave_base
Definition: axi_adc_core.h:151
no_os_irq_platform_ops::global_disable
int32_t(* global_disable)(struct no_os_irq_ctrl_desc *desc)
Definition: no_os_irq.h:174
no_os_i3c_write_and_read
int no_os_i3c_write_and_read(struct no_os_i3c_desc *desc, uint8_t *tx_data, uint8_t tx_data_len, uint8_t *rx_data, uint8_t rx_data_len)
Read and write the device.
Definition: no_os_i3c.c:463
no_os_timer_platform_ops::init
int32_t(* init)(struct no_os_timer_desc **, const struct no_os_timer_init_param *)
Definition: no_os_timer.h:103
no_os_irq_unregister_callback
int32_t no_os_irq_unregister_callback(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *callback_desc)
Unregisters a generic IRQ handling function.
Definition: no_os_irq.c:112
NO_OS_I3C_ADDR_SLOT_FREE
@ NO_OS_I3C_ADDR_SLOT_FREE
Definition: no_os_i3c.h:150
no_os_mdio_ops::write
int(* write)(struct no_os_mdio_desc *, uint32_t, uint16_t)
Definition: no_os_mdio.h:94
no_os_i3c_call_irq
int no_os_i3c_call_irq(struct no_os_i3c_bus_desc *desc)
Non-blocking I3C interrupt. Since a payload is always retrieved with it, also update the no_os_i3c_cc...
Definition: no_os_i3c.c:543
no_os_dma_desc::platform_ops
struct no_os_dma_platform_ops * platform_ops
Definition: no_os_dma.h:144
no_os_irq_trig_level
no_os_irq_trig_level
Definition: no_os_irq.h:76
no_os_spibus_remove
void no_os_spibus_remove(uint32_t bus_number)
Removes SPI bus instance.
Definition: no_os_spi.c:133
axi_adc_init::num_channels
uint8_t num_channels
Definition: axi_adc_core.h:149
no_os_pwm_platform_ops::pwm_ops_set_period
int32_t(* pwm_ops_set_period)(struct no_os_pwm_desc *, uint32_t)
Definition: no_os_pwm.h:134
AXI_ADC_REG_CHAN_STATUS
#define AXI_ADC_REG_CHAN_STATUS(c)
Definition: axi_adc_core.h:89
no_os_irq_ctrl_desc::platform_ops
const struct no_os_irq_platform_ops * platform_ops
Definition: no_os_irq.h:127
NO_OS_I3C_CCC_GET_DEF
#define NO_OS_I3C_CCC_GET_DEF(x)
Definition: no_os_i3c.h:77
no_os_mdio.h
Header file for MDIO interface driver.
no_os_timer_start
int32_t no_os_timer_start(struct no_os_timer_desc *desc)
Start a timer.
Definition: no_os_timer.c:104
no_os_spi_write_and_read
int32_t no_os_spi_write_and_read(struct no_os_spi_desc *desc, uint8_t *data, uint16_t bytes_number)
Write and read data to/from SPI.
Definition: no_os_spi.c:159
no_os_spi_init_param::parent
struct no_os_spi_desc * parent
Definition: no_os_spi.h:160
no_os_i3c_init_param::addr
uint8_t addr
Definition: no_os_i3c.h:267
no_os_dma_default_handler_data::desc
struct no_os_dma_desc * desc
Definition: no_os_dma.h:60
no_os_gpio_direction_input
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:124
no_os_dma_chan_lock
int no_os_dma_chan_lock(struct no_os_dma_ch *ch)
Lock a DMA channel, so it won't be acquired even if it's free.
Definition: no_os_dma.c:317
no_os_trng_init_param
Init parameter for TRNG.
Definition: no_os_trng.h:70
no_os_i3c_bus_desc::mutex
void * mutex
Definition: no_os_i3c.h:202
no_os_irq_platform_ops::enable
int32_t(* enable)(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Definition: no_os_irq.h:179
no_os_i3c_bus_desc::devs
struct no_os_i3c_desc * devs[NO_OS_I3C_MAX_DEV_NUMBER]
Definition: no_os_i3c.h:220
no_os_irq_init_param::platform_ops
const struct no_os_irq_platform_ops * platform_ops
Definition: no_os_irq.h:111
NO_OS_I3C_ADDR_GET_SLOT
#define NO_OS_I3C_ADDR_GET_SLOT(x)
Definition: no_os_i3c.h:63
no_os_i3c_read
int no_os_i3c_read(struct no_os_i3c_desc *desc, uint8_t *data, uint8_t size)
Read data from device device.
Definition: no_os_i3c.c:434
no_os_i2c_desc::bus
struct no_os_i2cbus_desc * bus
Definition: no_os_i2c.h:103
no_os_mdio_ops::init
int(* init)(struct no_os_mdio_desc **, struct no_os_mdio_init_param *)
Definition: no_os_mdio.h:92
no_os_i3c_bus_desc::daa_candidates
struct no_os_i3c_daa_lut daa_candidates[NO_OS_I3C_MAX_DEV_NUMBER]
Definition: no_os_i3c.h:216
axi_adc_init_finish
int32_t axi_adc_init_finish(struct axi_adc *adc)
Begin AXI ADC Initialization.
Definition: axi_adc_core.c:612
AXI_ADC_REG_CHAN_CNTRL
#define AXI_ADC_REG_CHAN_CNTRL(c)
Definition: axi_adc_core.h:79
no_os_spi_platform_ops::transfer
int32_t(* transfer)(struct no_os_spi_desc *, struct no_os_spi_msg *, uint32_t)
Definition: no_os_spi.h:228
no_os_spi_desc
Structure holding SPI descriptor.
Definition: no_os_spi.h:192
no_os_i2c_platform_ops::i2c_ops_init
int32_t(* i2c_ops_init)(struct no_os_i2c_desc **, const struct no_os_i2c_init_param *)
Definition: no_os_i2c.h:123
no_os_dma_xfer_desc
It's used to setup a generic DMA transfer.
Definition: no_os_dma.h:71
no_os_i2c_desc::platform_ops
const struct no_os_i2c_platform_ops * platform_ops
Definition: no_os_i2c.h:111
no_os_axi_io_read
int32_t no_os_axi_io_read(uint32_t base, uint32_t offset, uint32_t *data)
AXI IO Altera specific read function.
Definition: altera_axi_io.c:53
no_os_dma_xfer_desc::xfer_complete_ctx
void * xfer_complete_ctx
Definition: no_os_dma.h:89
no_os_timer_get_elapsed_time_nsec
int32_t no_os_timer_get_elapsed_time_nsec(struct no_os_timer_desc *desc, uint64_t *elapsed_time)
Get the elapsed time in nsec for the timer.
Definition: no_os_timer.c:209
no_os_i3c_bus_desc::num_devs
uint8_t num_devs
Definition: no_os_i3c.h:208
no_os_pwm_get_phase
int32_t no_os_pwm_get_phase(struct no_os_pwm_desc *desc, uint32_t *phase_ns)
Get the PWM phase value.
Definition: no_os_pwm.c:223
no_os_i3c_bus_desc::addrslots
unsigned int addrslots[NO_OS_I3C_ADDRSLOTS_SIZE]
Definition: no_os_i3c.h:214
no_os_dma_desc::ref
uint32_t ref
Definition: no_os_dma.h:155
no_os_irq_register_callback
int32_t no_os_irq_register_callback(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *callback)
Register a callback to handle the irq events.
Definition: no_os_irq.c:92
no_os_dma_xfer_desc::xfer_complete_cb
void(* xfer_complete_cb)(struct no_os_dma_xfer_desc *, struct no_os_dma_xfer_desc *, void *)
Definition: no_os_dma.h:82
UART_MAX_NUMBER
#define UART_MAX_NUMBER
Definition: no_os_uart.h:48
no_os_timer_init_param::platform_ops
const struct no_os_timer_platform_ops * platform_ops
Definition: no_os_timer.h:91
no_os_dma_desc::irq_ctrl
struct no_os_irq_ctrl_desc * irq_ctrl
Definition: no_os_dma.h:151
no_os_callback_desc::handle
void * handle
Definition: no_os_irq.h:152
no_os_gpio_get_value
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:221
no_os_pwm_get_duty_cycle
int32_t no_os_pwm_get_duty_cycle(struct no_os_pwm_desc *desc, uint32_t *duty_cycle_ns)
Get the PWM duty cycle.
Definition: no_os_pwm.c:187
no_os_dma_desc::num_ch
uint32_t num_ch
Definition: no_os_dma.h:140
axi_adc_get_calib_phase
int32_t axi_adc_get_calib_phase(struct axi_adc *adc, uint32_t chan, int32_t *val, int32_t *val2)
Get the phase calibration values for AXI ADC channel.
Definition: axi_adc_core.c:449
no_os_irq_clear_pending
int32_t no_os_irq_clear_pending(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Clear the pending interrupt.
Definition: no_os_irq.c:235
AXI_ADC_PN_CUSTOM
@ AXI_ADC_PN_CUSTOM
Definition: axi_adc_core.h:163
no_os_callback_desc::callback
void(* callback)(void *context)
Definition: no_os_irq.h:144
no_os_dma_platform_ops::dma_init
int(* dma_init)(struct no_os_dma_desc **, struct no_os_dma_init_param *)
Definition: no_os_dma.h:243
no_os_spibus_init
int32_t no_os_spibus_init(const struct no_os_spi_init_param *param)
Initialize the SPI bus communication peripheral.
Definition: no_os_spi.c:88
no_os_mdio_read
int no_os_mdio_read(struct no_os_mdio_desc *desc, uint32_t reg, uint16_t *val)
Read a register using MDIO.
Definition: no_os_mdio.c:110
no_os_timer_counter_get
int32_t no_os_timer_counter_get(struct no_os_timer_desc *desc, uint32_t *counter)
Get the value of the counter register for the timer.
Definition: no_os_timer.c:138
no_os_timer_platform_ops::remove
int32_t(* remove)(struct no_os_timer_desc *)
Definition: no_os_timer.h:121
no_os_gpio_desc
Structure holding the GPIO descriptor.
Definition: no_os_gpio.h:96
no_os_trng_platform_ops::fill_buffer
int(* fill_buffer)(struct no_os_trng_desc *, uint8_t *, uint32_t)
Definition: no_os_trng.h:89
no_os_uart_get_errors
uint32_t no_os_uart_get_errors(struct no_os_uart_desc *desc)
Check if errors occurred on UART.
Definition: no_os_uart.c:100
no_os_spi_remove
int32_t no_os_spi_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition: no_os_spi.c:116
no_os_dma_ch::free
bool free
Definition: no_os_dma.h:111
no_os_irq_ctrl_init
int32_t no_os_irq_ctrl_init(struct no_os_irq_ctrl_desc **desc, const struct no_os_irq_init_param *param)
Initialize the IRQ interrupts.
Definition: no_os_irq.c:45
AXI_ADC_FORMAT_ENABLE
#define AXI_ADC_FORMAT_ENABLE
Definition: axi_adc_core.h:85
no_os_list_remove
int32_t no_os_list_remove(struct no_os_list_desc *list_desc)
NO_OS_EVT_DMA_TX_COMPLETE
@ NO_OS_EVT_DMA_TX_COMPLETE
Definition: no_os_irq.h:72
no_os_timer_counter_set
int32_t no_os_timer_counter_set(struct no_os_timer_desc *desc, uint32_t new_val)
Set the timer counter register value.
Definition: no_os_timer.c:156
no_os_spi_platform_ops::dma_transfer_async
int32_t(* dma_transfer_async)(struct no_os_spi_desc *, struct no_os_spi_msg *, uint32_t, void(*)(void *), void *)
Definition: no_os_spi.h:238
no_os_pwm_desc
Structure representing an PWM generator device.
Definition: no_os_pwm.h:93
no_os_spibus_desc::max_speed_hz
uint32_t max_speed_hz
Definition: no_os_spi.h:175
no_os_list_read_first
int32_t no_os_list_read_first(struct no_os_list_desc *list_desc, void **data)
no_os_i3c_addr_get_free
uint8_t no_os_i3c_addr_get_free(struct no_os_i3c_bus_desc *desc, uint8_t start_addr)
Get a free address.
Definition: no_os_i3c.c:579
irq_id
irq_id
Interrupts IDs supported by the irq driver.
Definition: aducm3029_irq.h:62
no_os_i3c_bus_init_param::num_devs
const uint8_t num_devs
Definition: no_os_i3c.h:243
no_os_i3c_daa_lut::addr
uint8_t addr
Definition: no_os_i3c.h:181
no_os_i2c_desc
Structure holding I2C address descriptor.
Definition: no_os_i2c.h:101
no_os_eeprom_platform_ops::remove
int32_t(* remove)(struct no_os_eeprom_desc *)
Definition: no_os_eeprom.h:92
I2C_MAX_BUS_NUMBER
#define I2C_MAX_BUS_NUMBER
Definition: no_os_i2c.h:47
no_os_i3c_desc::addr
uint8_t addr
Definition: no_os_i3c.h:282
axi_adc_delay_calibrate
int32_t axi_adc_delay_calibrate(struct axi_adc *adc, uint32_t no_of_lanes, enum axi_adc_pn_sel sel)
Calibrate Delay using specific PN sequence.
Definition: axi_adc_core.c:242
no_os_tdm_platform_ops::tdm_ops_resume
int32_t(* tdm_ops_resume)(struct no_os_tdm_desc *)
Definition: no_os_tdm.h:119
no_os_spi_init
int32_t no_os_spi_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the SPI communication peripheral.
Definition: no_os_spi.c:52
axi_adc_pn_mon
int32_t axi_adc_pn_mon(struct axi_adc *adc, enum axi_adc_pn_sel sel, uint32_t delay_ms)
Monitor the AXI ADC PN Sequence.
Definition: axi_adc_core.c:136
no_os_dma_platform_ops::dma_config_xfer
int(* dma_config_xfer)(struct no_os_dma_ch *, struct no_os_dma_xfer_desc *)
Definition: no_os_dma.h:250
no_os_i2cbus_desc::extra
void * extra
Definition: no_os_i2c.h:93
axi_adc_get_calib_scale
int32_t axi_adc_get_calib_scale(struct axi_adc *adc, uint32_t chan, int32_t *val, int32_t *val2)
Get the scale calibration values for AXI ADC channel.
Definition: axi_adc_core.c:481
no_os_i3c_platform_ops::i3c_ops_init
int(* i3c_ops_init)(struct no_os_i3c_desc *, const struct no_os_i3c_init_param *)
Definition: no_os_i3c.h:309
no_os_callback_desc::event
enum no_os_irq_event event
Definition: no_os_irq.h:148
no_os_i2cbus_desc::device_id
uint32_t device_id
Definition: no_os_i2c.h:87
no_os_tdm_platform_ops::tdm_ops_init
int32_t(* tdm_ops_init)(struct no_os_tdm_desc **, const struct no_os_tdm_init_param *)
Definition: no_os_tdm.h:110
axi_adc_idelay_set
void axi_adc_idelay_set(struct axi_adc *adc, uint32_t lane, uint32_t val)
Set input/output delay primitive for specific interface line.
Definition: axi_adc_core.c:192
no_os_spi_transfer_dma_sync
int32_t no_os_spi_transfer_dma_sync(struct no_os_spi_desc *desc, struct no_os_spi_msg *msgs, uint32_t len)
Transfer a list of messages using DMA and busy wait for the completion.
Definition: no_os_spi.c:224
no_os_malloc
void * no_os_malloc(size_t size)
Allocate memory and return a pointer to it.
Definition: chibios_alloc.c:43
no_os_timer_init_param
Structure holding the parameters for timer initialization.
Definition: no_os_timer.h:83
no_os_uart_write_nonblocking
int32_t no_os_uart_write_nonblocking(struct no_os_uart_desc *desc, const uint8_t *data, uint32_t bytes_number)
Write to UART non-blocking.
Definition: no_os_uart.c:196
no_os_irq_platform_ops::remove
int32_t(* remove)(struct no_os_irq_ctrl_desc *desc)
Definition: no_os_irq.h:186
no_os_i2c.h
Header file of I2C Interface.
no_os_timer_platform_ops::start
int32_t(* start)(struct no_os_timer_desc *)
Definition: no_os_timer.h:106
no_os_spi_init_param::max_speed_hz
uint32_t max_speed_hz
Definition: no_os_spi.h:144
no_os_eeprom_remove
int32_t no_os_eeprom_remove(struct no_os_eeprom_desc *desc)
Free the resources allocated by no_os_eeprom_init()
Definition: no_os_eeprom.c:70
axi_adc_set_calib_bias
int32_t axi_adc_set_calib_bias(struct axi_adc *adc, uint32_t chan, int32_t val, int32_t val2)
Calibrate bias for specific AXI ADC channel.
Definition: axi_adc_core.c:497
no_os_pwm.h
Header file of PWM Interface.
NO_OS_EVT_DMA_RX_COMPLETE
@ NO_OS_EVT_DMA_RX_COMPLETE
Definition: no_os_irq.h:70
AXI_ADC_PN7
@ AXI_ADC_PN7
Definition: axi_adc_core.h:159
no_os_i2cbus_desc::platform_ops
const struct no_os_i2c_platform_ops * platform_ops
Definition: no_os_i2c.h:91
axi_adc_update_active_channels
int32_t axi_adc_update_active_channels(struct axi_adc *adc, uint32_t mask)
Update active AXI ADC channels.
Definition: axi_adc_core.c:539
no_os_pwm_set_phase
int32_t no_os_pwm_set_phase(struct no_os_pwm_desc *desc, uint32_t phase_ns)
Set the PWM phase value.
Definition: no_os_pwm.c:205
axi_adc_set_calib_scale
int32_t axi_adc_set_calib_scale(struct axi_adc *adc, uint32_t chan, int32_t val, int32_t val2)
Calibrate scale for specific AXI ADC channel.
Definition: axi_adc_core.c:465
AXI_ADC_REG_CLK_FREQ
#define AXI_ADC_REG_CLK_FREQ
Definition: axi_adc_core.h:57
no_os_uart_platform_ops::read_nonblocking
int32_t(* read_nonblocking)(struct no_os_uart_desc *, uint8_t *, uint32_t)
Definition: no_os_uart.h:163
axi_adc_set_pnsel
int32_t axi_adc_set_pnsel(struct axi_adc *adc, uint32_t chan, enum axi_adc_pn_sel sel)
Set AXI ADC PN sequence.
Definition: axi_adc_core.c:115
axi_adc_get_calib_bias
int32_t axi_adc_get_calib_bias(struct axi_adc *adc, uint32_t chan, int32_t *val, int32_t *val2)
Get the scale calibration values for AXI ADC channel.
Definition: axi_adc_core.c:521
no_os_spi_platform_ops::remove
int32_t(* remove)(struct no_os_spi_desc *)
Definition: no_os_spi.h:241
NO_OS_BIT
#define NO_OS_BIT(x)
Definition: no_os_util.h:45
no_os_i3c_platform_ops::i3c_ops_write_and_read
int(* i3c_ops_write_and_read)(struct no_os_i3c_desc *, uint8_t *, uint8_t, uint8_t *, uint8_t)
Definition: no_os_i3c.h:321
no_os_spi_desc::bus
struct no_os_spibus_desc * bus
Definition: no_os_spi.h:194
axi_adc::clock_hz
uint64_t clock_hz
Definition: axi_adc_core.h:134
no_os_free
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:69
no_os_mdio_desc
MDIO device descriptor created with no_os_mdio_init().
Definition: no_os_mdio.h:78
no_os_i2c_platform_ops::i2c_ops_remove
int32_t(* i2c_ops_remove)(struct no_os_i2c_desc *)
Definition: no_os_i2c.h:130
no_os_i3c_init_param::is_i3c
bool is_i3c
Definition: no_os_i3c.h:271
no_os_eeprom_platform_ops::init
int32_t(* init)(struct no_os_eeprom_desc **, const struct no_os_eeprom_init_param *)
Definition: no_os_eeprom.h:85
no_os_uart_stdio
void no_os_uart_stdio(struct no_os_uart_desc *desc)
Definition: no_os_uart.c:216
no_os_i3c_do_daa
int no_os_i3c_do_daa(struct no_os_i3c_bus_desc *desc, bool rstdaa)
Do DAA to assign the dynamic addresses.
Definition: no_os_i3c.c:335
no_os_spibus_desc::extra
void * extra
Definition: no_os_spi.h:185
no_os_i3c_bus_desc::device_id
uint8_t device_id
Definition: no_os_i3c.h:204
no_os_i2cbus_desc::mutex
void * mutex
Definition: no_os_i2c.h:83
no_os_i3c_init
int no_os_i3c_init(struct no_os_i3c_desc **desc, const struct no_os_i3c_init_param *param)
Initialize the I3C device. If the bus of the I3C device is not initialized, it will call to init it.
Definition: no_os_i3c.c:66
AXI_ADC_PN23A
@ AXI_ADC_PN23A
Definition: axi_adc_core.h:158
no_os_uart_init_param::platform_ops
const struct no_os_uart_platform_ops * platform_ops
Definition: no_os_uart.h:125
NO_OS_I3C_CCC_GET_LEN
#define NO_OS_I3C_CCC_GET_LEN(x)
Definition: no_os_i3c.h:75
AXI_ADC_PN15
@ AXI_ADC_PN15
Definition: axi_adc_core.h:160
axi_adc_init
int32_t axi_adc_init(struct axi_adc **adc_core, const struct axi_adc_init *init)
AXI ADC Main Initialization.
Definition: axi_adc_core.c:641
axi_adc::slave_base
uint32_t slave_base
Definition: axi_adc_core.h:128
AXI_ADC_MMCM_RSTN
#define AXI_ADC_MMCM_RSTN
Definition: axi_adc_core.h:46
no_os_list.h
List library header.
axi_adc_set_calib_phase_scale
int32_t axi_adc_set_calib_phase_scale(struct axi_adc *adc, uint32_t phase, uint32_t chan, int32_t val, int32_t val2)
Calibrate phase for specific AXI ADC channel.
Definition: axi_adc_core.c:329
AXI_ADC_DCFILT_OFFSET
#define AXI_ADC_DCFILT_OFFSET(x)
Definition: axi_adc_core.h:95
no_os_pwm_platform_ops::pwm_ops_enable
int32_t(* pwm_ops_enable)(struct no_os_pwm_desc *)
Definition: no_os_pwm.h:130
no_os_i2c_remove
int32_t no_os_i2c_remove(struct no_os_i2c_desc *desc)
Free the resources allocated by no_os_i2c_init().
Definition: no_os_i2c.c:113
no_os_i2c_init_param
Structure holding the parameters for I2C initialization.
Definition: no_os_i2c.h:64
NULL
#define NULL
Definition: wrapper.h:64
no_os_irq_platform_ops::global_enable
int32_t(* global_enable)(struct no_os_irq_ctrl_desc *desc)
Definition: no_os_irq.h:172
no_os_i3c_init_param
Structure holding the parameters for I3C initialization. Works like a device tree,...
Definition: no_os_i3c.h:261
no_os_trng_desc::platform_ops
const struct no_os_trng_platform_ops * platform_ops
Definition: no_os_trng.h:61
no_os_uart_init_param
Structure holding the parameters for UART initialization.
Definition: no_os_uart.h:110
AXI_ADC_PN31
@ AXI_ADC_PN31
Definition: axi_adc_core.h:162
no_os_timer_count_clk_set
int32_t no_os_timer_count_clk_set(struct no_os_timer_desc *desc, uint32_t freq_hz)
Set the timer clock frequency.
Definition: no_os_timer.c:191
no_os_irq_ctrl_remove
int32_t no_os_irq_ctrl_remove(struct no_os_irq_ctrl_desc *desc)
Free the resources allocated by no_os_irq_ctrl_init().
Definition: no_os_irq.c:71
no_os_pwm_platform_ops::pwm_ops_disable
int32_t(* pwm_ops_disable)(struct no_os_pwm_desc *)
Definition: no_os_pwm.h:132
no_os_i3c_ccc_info::ibi_cr_addr
uint32_t ibi_cr_addr
Definition: no_os_i3c.h:166
no_os_trng_init
int no_os_trng_init(struct no_os_trng_desc **desc, const struct no_os_trng_init_param *param)
Initialize the TRNG.
Definition: no_os_trng.c:52
no_os_mdio_init_param::addr
uint8_t addr
Definition: no_os_mdio.h:67
axi_adc_init_finish
int32_t axi_adc_init_finish(struct axi_adc *adc)
Begin AXI ADC Initialization.
Definition: axi_adc_core.c:612
no_os_uart_read
int32_t no_os_uart_read(struct no_os_uart_desc *desc, uint8_t *data, uint32_t bytes_number)
Read data from UART.
Definition: no_os_uart.c:118
NO_OS_I3C_BCAST_ADDR
#define NO_OS_I3C_BCAST_ADDR
Definition: no_os_i3c.h:59
no_os_i3c_daa_lut
Stores the PID + DA information to look-up during the DAA. Should be used only for device initializat...
Definition: no_os_i3c.h:179
no_os_irq_init_param
Structure holding the initial parameters for Interrupt Request.
Definition: no_os_irq.h:107
no_os_i2cbus_init
int32_t no_os_i2cbus_init(const struct no_os_i2c_init_param *param)
Initialize the i2c bus communication peripheral.
Definition: no_os_i2c.c:86
no_os_irq_platform_ops::unregister_callback
int32_t(* unregister_callback)(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *callback)
Definition: no_os_irq.h:168
no_os_i3c_desc::pid
uint64_t pid
Definition: no_os_i3c.h:280
no_os_dma_xfer_start
int no_os_dma_xfer_start(struct no_os_dma_desc *desc, struct no_os_dma_ch *ch)
Acquire a channel and configure the list of transfers.
Definition: no_os_dma.c:356
axi_adc_remove
int32_t axi_adc_remove(struct axi_adc *adc)
AXI ADC Resources deallocation.
Definition: axi_adc_core.c:681
no_os_i2cbus_desc::slave_number
uint8_t slave_number
Definition: no_os_i2c.h:85
AXI_ADC_REG_CHAN_CNTRL_1
#define AXI_ADC_REG_CHAN_CNTRL_1(c)
Definition: axi_adc_core.h:94
no_os_pwm_platform_ops::pwm_ops_set_duty_cycle
int32_t(* pwm_ops_set_duty_cycle)(struct no_os_pwm_desc *, uint32_t)
Definition: no_os_pwm.h:138
no_os_i3c_desc::is_static
bool is_static
Definition: no_os_i3c.h:288
no_os_mutex_remove
void no_os_mutex_remove(void *mutex)
Function for removing the initialized mutex. This function is responsible to remove the allocated mut...
Definition: freertos_mutex.c:81
no_os_uart_init_param::device_id
uint8_t device_id
Definition: no_os_uart.h:112
axi_adc_get_calib_phase
int32_t axi_adc_get_calib_phase(struct axi_adc *adc, uint32_t chan, int32_t *val, int32_t *val2)
Get the phase calibration values for AXI ADC channel.
Definition: axi_adc_core.c:449
no_os_i3c_async_irq
int no_os_i3c_async_irq(struct no_os_i3c_bus_desc *desc, bool en)
Enable I3C non-blocking interrupts.
Definition: no_os_i3c.c:510
no_os_spi_platform_ops::write_and_read
int32_t(* write_and_read)(struct no_os_spi_desc *, uint8_t *, uint16_t)
Definition: no_os_spi.h:226
no_os_dma_platform_ops::dma_release_ch
int(* dma_release_ch)(struct no_os_dma_desc *, uint32_t)
Definition: no_os_dma.h:248
no_os_i3c_init_param::bus
struct no_os_i3c_bus_init_param * bus
Definition: no_os_i3c.h:263
no_os_tdm_init_param
Structure holding the parameters for TDM initialization.
Definition: no_os_tdm.h:57
no_os_uart_platform_ops::write_nonblocking
int32_t(* write_nonblocking)(struct no_os_uart_desc *, const uint8_t *, uint32_t)
Definition: no_os_uart.h:165
no_os_mutex_lock
void no_os_mutex_lock(void *mutex)
Function for locking mutex.
Definition: freertos_mutex.c:60
no_os_i3c_desc::platform_ops
const struct no_os_i3c_platform_ops * platform_ops
Definition: no_os_i3c.h:294
no_os_axi_io_write
int32_t no_os_axi_io_write(uint32_t base, uint32_t offset, uint32_t data)
AXI IO Altera specific write function.
Definition: altera_axi_io.c:67
axi_adc_init_begin
int32_t axi_adc_init_begin(struct axi_adc **adc_core, const struct axi_adc_init *init)
Begin AXI ADC Initialization.
Definition: axi_adc_core.c:587
no_os_timer_desc::mutex
void * mutex
Definition: no_os_timer.h:59
NO_OS_I3C_CCC_RSTACT_BCAST
#define NO_OS_I3C_CCC_RSTACT_BCAST
Definition: no_os_i3c.h:96
no_os_spi_desc::platform_ops
const struct no_os_spi_platform_ops * platform_ops
Definition: no_os_spi.h:208
no_os_irq_enable
int32_t no_os_irq_enable(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Enable specific interrupt.
Definition: no_os_irq.c:181
no_os_spi_desc::platform_delays
struct no_os_platform_spi_delays platform_delays
Definition: no_os_spi.h:210
AXI_ADC_PN_RAMP_NIBBLE
@ AXI_ADC_PN_RAMP_NIBBLE
Definition: axi_adc_core.h:164
no_os_gpio.h
Header file of GPIO Interface.
MEM_TO_DEV
@ MEM_TO_DEV
Definition: no_os_dma.h:51
no_os_i3c_daa_lut::pid
uint64_t pid
Definition: no_os_i3c.h:182
no_os_irq_global_disable
int32_t no_os_irq_global_disable(struct no_os_irq_ctrl_desc *desc)
Disable global interrupts.
Definition: no_os_irq.c:144
no_os_mdio_remove
int no_os_mdio_remove(struct no_os_mdio_desc *desc)
Free the resources allocated by no_os_mdio_init().
Definition: no_os_mdio.c:70
NO_OS_LIST_QUEUE
@ NO_OS_LIST_QUEUE
Definition: no_os_list.h:205
no_os_i3c_attach_callback
void no_os_i3c_attach_callback(struct no_os_i3c_desc *desc, void(*callback)(struct no_os_i3c_desc *, uint32_t, uint32_t))
Attach event callback.
Definition: no_os_i3c.c:685
no_os_trng_init_param::platform_ops
const struct no_os_trng_platform_ops * platform_ops
Definition: no_os_trng.h:76
no_os_i2c_init_param::platform_ops
const struct no_os_i2c_platform_ops * platform_ops
Definition: no_os_i2c.h:72
no_os_i3c_init_bus
int no_os_i3c_init_bus(struct no_os_i3c_bus_desc **desc, const struct no_os_i3c_bus_init_param *param)
Initialize the I3C bus.
Definition: no_os_i3c.c:161
no_os_i3c_desc::is_i3c
bool is_i3c
Definition: no_os_i3c.h:284
no_os_tdm_pause
int32_t no_os_tdm_pause(struct no_os_tdm_desc *desc)
Pause TDM DMA transfer.
Definition: no_os_tdm.c:88
no_os_uart_write
int32_t no_os_uart_write(struct no_os_uart_desc *desc, const uint8_t *data, uint32_t bytes_number)
Write to UART.
Definition: no_os_uart.c:144
no_os_tdm_read
int32_t no_os_tdm_read(struct no_os_tdm_desc *desc, void *data, uint16_t nb_samples)
Read data using the TDM interface.
Definition: no_os_tdm.c:76
axi_adc::base
uint32_t base
Definition: axi_adc_core.h:126
no_os_uart.h
Header file of UART interface.
no_os_irq_disable
int32_t no_os_irq_disable(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Disable specific interrupt.
Definition: no_os_irq.c:198
no_os_spibus_desc
SPI bus descriptor.
Definition: no_os_spi.h:167
no_os_irq_platform_ops::disable
int32_t(* disable)(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Definition: no_os_irq.h:181
no_os_spi_platform_ops::dma_transfer_sync
int32_t(* dma_transfer_sync)(struct no_os_spi_desc *, struct no_os_spi_msg *, uint32_t)
Definition: no_os_spi.h:232
no_os_gpio_get
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:49
axi_adc_pn_mon
int32_t axi_adc_pn_mon(struct axi_adc *adc, enum axi_adc_pn_sel sel, uint32_t delay_ms)
Monitor the AXI ADC PN Sequence.
Definition: axi_adc_core.c:136
no_os_pwm_init_param::platform_ops
const struct no_os_pwm_platform_ops * platform_ops
Definition: no_os_pwm.h:84
no_os_list_add_last
int32_t no_os_list_add_last(struct no_os_list_desc *list_desc, void *data)
no_os_dma_desc::channels
struct no_os_dma_ch * channels
Definition: no_os_dma.h:142
axi_adc_delay_set
int32_t axi_adc_delay_set(struct axi_adc *adc, uint32_t no_of_lanes, uint32_t delay)
Set input/output delay primitive for number of lines.
Definition: axi_adc_core.c:207
no_os_list_init
int32_t no_os_list_init(struct no_os_list_desc **list_desc, enum no_os_adapter_type type, f_cmp comparator)
no_os_dma_platform_ops::dma_ch_in_progress
bool(* dma_ch_in_progress)(struct no_os_dma_desc *, struct no_os_dma_ch *)
Definition: no_os_dma.h:262
no_os_timer_desc
Structure holding timer descriptor.
Definition: no_os_timer.h:57
no_os_irq_platform_ops::trigger_level_set
int32_t(* trigger_level_set)(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, enum no_os_irq_trig_level trig)
Definition: no_os_irq.h:176
no_os_util.h
Header file of utility functions.
no_os_gpio_get_direction
int32_t no_os_gpio_get_direction(struct no_os_gpio_desc *desc, uint8_t *direction)
Get the direction of the specified GPIO.
Definition: no_os_gpio.c:172
axi_adc_set_calib_bias
int32_t axi_adc_set_calib_bias(struct axi_adc *adc, uint32_t chan, int32_t val, int32_t val2)
Calibrate bias for specific AXI ADC channel.
Definition: axi_adc_core.c:497
no_os_eeprom_read
int32_t no_os_eeprom_read(struct no_os_eeprom_desc *desc, uint32_t address, uint8_t *data, uint16_t bytes)
Read the EEPROM data.
Definition: no_os_eeprom.c:109
no_os_gpio_platform_ops::gpio_ops_get_direction
int32_t(* gpio_ops_get_direction)(struct no_os_gpio_desc *, uint8_t *)
Definition: no_os_gpio.h:141
no_os_gpio_platform_ops::gpio_ops_get
int32_t(* gpio_ops_get)(struct no_os_gpio_desc **, const struct no_os_gpio_init_param *)
Definition: no_os_gpio.h:129
no_os_eeprom_init_param
Structure holding the parameters for EEPROM initialization.
Definition: no_os_eeprom.h:58
NO_OS_I3C_I2C_MAX_ADDR
#define NO_OS_I3C_I2C_MAX_ADDR
Definition: no_os_i3c.h:57
no_os_spi_platform_ops::init
int32_t(* init)(struct no_os_spi_desc **, const struct no_os_spi_init_param *)
Definition: no_os_spi.h:224
axi_adc_pn_sel
axi_adc_pn_sel
Definition: axi_adc_core.h:156
no_os_tdm.h
Header file of TDM Interface.
no_os_i3c_platform_ops::i3c_ops_is_dev_ready
int(* i3c_ops_is_dev_ready)(struct no_os_i3c_desc *)
Definition: no_os_i3c.h:328
no_os_dma_is_completed
bool no_os_dma_is_completed(struct no_os_dma_desc *desc, struct no_os_dma_ch *ch)
Get the state of a DMA channel (free or not).
Definition: no_os_dma.c:417
no_os_dma_ch::cb_desc
struct no_os_callback_desc cb_desc
Definition: no_os_dma.h:117
no_os_spi_init_param::extra
void * extra
Definition: no_os_spi.h:158
no_os_pwm_set_period
int32_t no_os_pwm_set_period(struct no_os_pwm_desc *desc, uint32_t period_ns)
Set the PWM period value.
Definition: no_os_pwm.c:133
axi_adc_set_calib_scale
int32_t axi_adc_set_calib_scale(struct axi_adc *adc, uint32_t chan, int32_t val, int32_t val2)
Calibrate scale for specific AXI ADC channel.
Definition: axi_adc_core.c:465
no_os_irq_disable
int32_t no_os_irq_disable(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Disable specific interrupt.
Definition: no_os_irq.c:198
no_os_tdm_desc::platform_ops
const struct no_os_tdm_platform_ops * platform_ops
Definition: no_os_tdm.h:96
no_os_i3c_platform_ops::i3c_ops_remove
int(* i3c_ops_remove)(struct no_os_i3c_desc *)
Definition: no_os_i3c.h:326
no_os_pwm_remove
int32_t no_os_pwm_remove(struct no_os_pwm_desc *desc)
Free the resources allocated by no_os_pwm_init().
Definition: no_os_pwm.c:79
no_os_dma_ch::mutex
void * mutex
Definition: no_os_dma.h:123
NO_OS_I3C_ADDR_GET_POS
#define NO_OS_I3C_ADDR_GET_POS(x)
Definition: no_os_i3c.h:64
no_os_tdm_resume
int32_t no_os_tdm_resume(struct no_os_tdm_desc *desc)
Resume TDM DMA transfer.
Definition: no_os_tdm.c:98
no_os_eeprom_init
int32_t no_os_eeprom_init(struct no_os_eeprom_desc **desc, const struct no_os_eeprom_init_param *param)
Initialize the EEPROM.
Definition: no_os_eeprom.c:45
axi_adc::mask
uint32_t mask
Definition: axi_adc_core.h:136
no_os_uart_remove
int32_t no_os_uart_remove(struct no_os_uart_desc *desc)
Free the resources allocated by no_os_uart_init().
Definition: no_os_uart.c:81
axi_slave_adc_write
int32_t axi_slave_adc_write(struct axi_adc *adc, uint32_t reg_addr, uint32_t reg_data)
Slave AXI ADC Data Write.
Definition: axi_adc_core.c:101
NO_OS_I3C_CCC_DIRECT
#define NO_OS_I3C_CCC_DIRECT
Definition: no_os_i3c.h:70
no_os_gpio_platform_ops::gpio_ops_get_optional
int32_t(* gpio_ops_get_optional)(struct no_os_gpio_desc **, const struct no_os_gpio_init_param *)
Definition: no_os_gpio.h:132
no_os_irq_ctrl_desc
Definition: no_os_irq.h:123
no_os_irq_platform_ops::register_callback
int32_t(* register_callback)(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *callback)
Definition: no_os_irq.h:165
no_os_uart_platform_ops::read
int32_t(* read)(struct no_os_uart_desc *, uint8_t *, uint32_t)
Definition: no_os_uart.h:159
AXI_ADC_FORMAT_SIGNEXT
#define AXI_ADC_FORMAT_SIGNEXT
Definition: axi_adc_core.h:83
NO_OS_I3C_ADDR_SLOT_I3C_DEV
@ NO_OS_I3C_ADDR_SLOT_I3C_DEV
Definition: no_os_i3c.h:156
no_os_i2c_init_param::device_id
uint32_t device_id
Definition: no_os_i2c.h:66
no_os_dma_ch::sync_lock
bool sync_lock
Definition: no_os_dma.h:129
no_os_tdm_init
int32_t no_os_tdm_init(struct no_os_tdm_desc **desc, const struct no_os_tdm_init_param *param)
Initialize the TDM communication peripheral.
Definition: no_os_tdm.c:45
AXI_ADC_ADC_PN_SEL
#define AXI_ADC_ADC_PN_SEL(x)
Definition: axi_adc_core.h:107
axi_adc_get_sampling_freq
int32_t axi_adc_get_sampling_freq(struct axi_adc *adc, uint32_t chan, uint64_t *sampling_freq)
Get the AXI ADC Sampling Frequency.
Definition: axi_adc_core.c:171
axi_adc_init::name
const char * name
Definition: axi_adc_core.h:145
no_os_irq_trigger_level_set
int32_t no_os_irq_trigger_level_set(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, enum no_os_irq_trig_level trig)
Set interrupt trigger level.
Definition: no_os_irq.c:162
AXI_ADC_PN9
@ AXI_ADC_PN9
Definition: axi_adc_core.h:157
no_os_i3c_platform_ops::i3c_ops_init_bus
int(* i3c_ops_init_bus)(struct no_os_i3c_bus_desc *, const struct no_os_i3c_bus_init_param *)
Definition: no_os_i3c.h:306
errno.h
Error macro definition for ARM Compiler.
no_os_pwm_set_polarity
int32_t no_os_pwm_set_polarity(struct no_os_pwm_desc *desc, enum no_os_pwm_polarity polarity)
Set the PWM polarity.
Definition: no_os_pwm.c:243
no_os_pwm_get_period
int32_t no_os_pwm_get_period(struct no_os_pwm_desc *desc, uint32_t *period_ns)
Get the PWM period value.
Definition: no_os_pwm.c:151
no_os_dma.h
Platform independent function definitions and data types for the DMA API.
no_os_gpio_platform_ops::gpio_ops_direction_output
int32_t(* gpio_ops_direction_output)(struct no_os_gpio_desc *, uint8_t)
Definition: no_os_gpio.h:139
no_os_timer_stop
int32_t no_os_timer_stop(struct no_os_timer_desc *desc)
Stop a timer from counting.
Definition: no_os_timer.c:120
no_os_i3c_bus_desc::num_devs_unknown
uint8_t num_devs_unknown
Definition: no_os_i3c.h:206
no_os_gpio_platform_ops::gpio_ops_set_value
int32_t(* gpio_ops_set_value)(struct no_os_gpio_desc *, uint8_t)
Definition: no_os_gpio.h:143
NO_OS_I3C_MAX_DEV_NUMBER
#define NO_OS_I3C_MAX_DEV_NUMBER
Definition: no_os_i3c.h:55
no_os_pwm_enable
int32_t no_os_pwm_enable(struct no_os_pwm_desc *desc)
Enable PWM signal generation.
Definition: no_os_pwm.c:98
no_os_mdio_desc::ops
struct no_os_mdio_ops * ops
Definition: no_os_mdio.h:82
no_os_pwm_desc::platform_ops
const struct no_os_pwm_platform_ops * platform_ops
Definition: no_os_pwm.h:115
AXI_ADC_TO_IQCOR_COEFF_2
#define AXI_ADC_TO_IQCOR_COEFF_2(x)
Definition: axi_adc_core.h:104
no_os_dma_ch::sg_list
struct no_os_list_desc * sg_list
Definition: no_os_dma.h:113
no_os_spi_init_param
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:140
no_os_gpio_set_value
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:197
no_os_dma_xfer_desc::periph
enum no_os_irq_peripheral periph
Definition: no_os_dma.h:97
no_os_dma_desc
Describes the state of the DMA controller.
Definition: no_os_dma.h:136
no_os_irq_global_enable
int32_t no_os_irq_global_enable(struct no_os_irq_ctrl_desc *desc)
Enable global interrupts.
Definition: no_os_irq.c:129
no_os_timer_platform_ops::stop
int32_t(* stop)(struct no_os_timer_desc *)
Definition: no_os_timer.h:108
no_os_pwm_get_polarity
int32_t no_os_pwm_get_polarity(struct no_os_pwm_desc *desc, enum no_os_pwm_polarity *polarity)
Get the PWM polarity.
Definition: no_os_pwm.c:263
AXI_ADC_PN23
@ AXI_ADC_PN23
Definition: axi_adc_core.h:161