Lines Matching refs:obj

76     cyhal_ezi2c_t *obj = (cyhal_ezi2c_t*) _cyhal_scb_get_irq_obj(irqn);  in _cyhal_ezi2c_irq_handler()  local
78 cyhal_ezi2c_t *obj = (cyhal_ezi2c_t*) _cyhal_scb_get_irq_obj(); in _cyhal_ezi2c_irq_handler()
80 Cy_SCB_EZI2C_Interrupt(obj->base, &(obj->context)); in _cyhal_ezi2c_irq_handler()
83 …cyhal_ezi2c_event_callback_t callback = (cyhal_ezi2c_event_callback_t) obj->callback_data.callback; in _cyhal_ezi2c_irq_handler()
87 cyhal_ezi2c_status_t status = cyhal_ezi2c_get_activity_status(obj); in _cyhal_ezi2c_irq_handler()
88 if(status & obj->irq_cause) in _cyhal_ezi2c_irq_handler()
90 …(void) (callback) (obj->callback_data.callback_arg, (cyhal_ezi2c_status_t)(status & obj->irq_cause… in _cyhal_ezi2c_irq_handler()
116 cyhal_ezi2c_t *obj = (cyhal_ezi2c_t*)(obj_ptr); in _cyhal_ezi2c_pm_callback_instance() local
119 .base = (void *) (obj->base), in _cyhal_ezi2c_pm_callback_instance()
120 .context = (void *) &(obj->context) in _cyhal_ezi2c_pm_callback_instance()
142 static cy_rslt_t _cyhal_ezi2c_setup_resources(cyhal_ezi2c_t *obj, cyhal_gpio_t sda, cyhal_gpio_t sc… in _cyhal_ezi2c_setup_resources() argument
145 obj->resource.type = CYHAL_RSC_INVALID; in _cyhal_ezi2c_setup_resources()
146 obj->pin_scl = CYHAL_NC_PIN_VALUE; in _cyhal_ezi2c_setup_resources()
147 obj->pin_sda = CYHAL_NC_PIN_VALUE; in _cyhal_ezi2c_setup_resources()
148 obj->is_clock_owned = false; in _cyhal_ezi2c_setup_resources()
149 obj->two_addresses = false; in _cyhal_ezi2c_setup_resources()
193 obj->resource = i2c_rsc; in _cyhal_ezi2c_setup_resources()
197 obj->pin_sda = sda; in _cyhal_ezi2c_setup_resources()
205 obj->pin_scl = scl; in _cyhal_ezi2c_setup_resources()
212 …result = _cyhal_utils_allocate_clock(&(obj->clock), &i2c_rsc, CYHAL_CLOCK_BLOCK_PERIPHERAL_16BIT, … in _cyhal_ezi2c_setup_resources()
213 obj->is_clock_owned = (CY_RSLT_SUCCESS == result); in _cyhal_ezi2c_setup_resources()
217 obj->clock = *clk; in _cyhal_ezi2c_setup_resources()
224 static cy_rslt_t _cyhal_ezi2c_init_hw(cyhal_ezi2c_t *obj, const cy_stc_scb_ezi2c_config_t* pdl_cfg) in _cyhal_ezi2c_init_hw() argument
226 uint8_t scb_arr_index = _cyhal_scb_get_block_index(obj->resource.block_num); in _cyhal_ezi2c_init_hw()
227 obj->base = _CYHAL_SCB_BASE_ADDRESSES[scb_arr_index]; in _cyhal_ezi2c_init_hw()
228 obj->two_addresses = (pdl_cfg->numberOfAddresses == CY_SCB_EZI2C_TWO_ADDRESSES); in _cyhal_ezi2c_init_hw()
231 cy_rslt_t result = Cy_SCB_EZI2C_Init(obj->base, pdl_cfg, &(obj->context)); in _cyhal_ezi2c_init_hw()
235 …_cyhal_scb_update_instance_data(obj->resource.block_num, (void*)obj, &_cyhal_ezi2c_pm_callback_ins… in _cyhal_ezi2c_init_hw()
236 obj->callback_data.callback = NULL; in _cyhal_ezi2c_init_hw()
237 obj->callback_data.callback_arg = NULL; in _cyhal_ezi2c_init_hw()
238 obj->irq_cause = 0; in _cyhal_ezi2c_init_hw()
241 … Cy_SCB_RegisterInterruptCallback(obj->base, _cyhal_irq_cb[_CYHAL_SCB_IRQ_N[scb_arr_index]]); in _cyhal_ezi2c_init_hw()
250 static void _cyhal_ezi2c_setup_and_enable(cyhal_ezi2c_t *obj, const cyhal_ezi2c_slave_cfg_t *slave1… in _cyhal_ezi2c_setup_and_enable() argument
252 CY_ASSERT(NULL != obj); in _cyhal_ezi2c_setup_and_enable()
255 uint8_t scb_arr_index = _cyhal_scb_get_block_index(obj->resource.block_num); in _cyhal_ezi2c_setup_and_enable()
258 …Cy_SCB_EZI2C_SetBuffer1(obj->base, slave1_cfg->buf, slave1_cfg->buf_size, slave1_cfg->buf_rw_bound… in _cyhal_ezi2c_setup_and_enable()
260 if (obj->two_addresses && (NULL != slave2_cfg)) in _cyhal_ezi2c_setup_and_enable()
262 …Cy_SCB_EZI2C_SetBuffer2(obj->base, slave2_cfg->buf, slave2_cfg->buf_size, slave2_cfg->buf_rw_bound… in _cyhal_ezi2c_setup_and_enable()
266 Cy_SCB_EnableInterrupt(obj->base); in _cyhal_ezi2c_setup_and_enable()
271 Cy_SCB_EZI2C_Enable(obj->base); in _cyhal_ezi2c_setup_and_enable()
274 cy_rslt_t cyhal_ezi2c_init(cyhal_ezi2c_t *obj, cyhal_gpio_t sda, cyhal_gpio_t scl, const cyhal_cloc… in cyhal_ezi2c_init() argument
276 CY_ASSERT(NULL != obj); in cyhal_ezi2c_init()
277 memset(obj, 0, sizeof(cyhal_ezi2c_t)); in cyhal_ezi2c_init()
285 obj->dc_configured = false; in cyhal_ezi2c_init()
296 cy_rslt_t result = _cyhal_ezi2c_setup_resources(obj, sda, scl, clk); in cyhal_ezi2c_init()
300 result = _cyhal_ezi2c_init_hw(obj, &pdl_config); in cyhal_ezi2c_init()
305 …uint32_t dataRate = _cyhal_i2c_set_peri_divider((void *)obj, false, (uint32_t)cfg->data_rate, true… in cyhal_ezi2c_init()
315 _cyhal_ezi2c_setup_and_enable(obj, &cfg->slave1_cfg, &cfg->slave2_cfg); in cyhal_ezi2c_init()
320 cyhal_ezi2c_free(obj); in cyhal_ezi2c_init()
325 void cyhal_ezi2c_free(cyhal_ezi2c_t *obj) in cyhal_ezi2c_free() argument
327 CY_ASSERT(NULL != obj); in cyhal_ezi2c_free()
329 if (NULL != obj->base) in cyhal_ezi2c_free()
331 Cy_SCB_EZI2C_Disable(obj->base, &obj->context); in cyhal_ezi2c_free()
332 Cy_SCB_EZI2C_DeInit(obj->base); in cyhal_ezi2c_free()
333 obj->base = NULL; in cyhal_ezi2c_free()
336 if (CYHAL_RSC_INVALID != obj->resource.type) in cyhal_ezi2c_free()
338 uint8_t scb_arr_index = _cyhal_scb_get_block_index(obj->resource.block_num); in cyhal_ezi2c_free()
339 _cyhal_scb_update_instance_data(obj->resource.block_num, NULL, NULL); in cyhal_ezi2c_free()
343 if (!obj->dc_configured) in cyhal_ezi2c_free()
345 …t_t rsc_to_free = { CYHAL_RSC_SCB, _cyhal_scb_get_block_index(obj->resource.block_num), obj->resou… in cyhal_ezi2c_free()
348 obj->resource.type = CYHAL_RSC_INVALID; in cyhal_ezi2c_free()
351 if (!obj->dc_configured) in cyhal_ezi2c_free()
353 _cyhal_utils_release_if_used(&(obj->pin_sda)); in cyhal_ezi2c_free()
354 _cyhal_utils_release_if_used(&(obj->pin_scl)); in cyhal_ezi2c_free()
356 if (obj->is_clock_owned) in cyhal_ezi2c_free()
358 cyhal_clock_free(&(obj->clock)); in cyhal_ezi2c_free()
363 cyhal_ezi2c_status_t cyhal_ezi2c_get_activity_status(cyhal_ezi2c_t *obj) in cyhal_ezi2c_get_activity_status() argument
365 … return _cyhal_ezi2c_convert_activity_status(Cy_SCB_EZI2C_GetActivity(obj->base, &(obj->context))); in cyhal_ezi2c_get_activity_status()
368 void cyhal_ezi2c_register_callback(cyhal_ezi2c_t *obj, cyhal_ezi2c_event_callback_t callback, void … in cyhal_ezi2c_register_callback() argument
371 obj->callback_data.callback = (cy_israddress) callback; in cyhal_ezi2c_register_callback()
372 obj->callback_data.callback_arg = callback_arg; in cyhal_ezi2c_register_callback()
376 void cyhal_ezi2c_enable_event(cyhal_ezi2c_t *obj, cyhal_ezi2c_status_t event, uint8_t intr_priority… in cyhal_ezi2c_enable_event() argument
378 uint8_t scb_arr_index = _cyhal_scb_get_block_index(obj->resource.block_num); in cyhal_ezi2c_enable_event()
381 obj->irq_cause |= event; in cyhal_ezi2c_enable_event()
385 obj->irq_cause &= ~event; in cyhal_ezi2c_enable_event()
392 cy_rslt_t cyhal_ezi2c_init_cfg(cyhal_ezi2c_t *obj, const cyhal_ezi2c_configurator_t *cfg, in cyhal_ezi2c_init_cfg() argument
395 CY_ASSERT(NULL != obj); in cyhal_ezi2c_init_cfg()
399 obj->resource = *cfg->resource; in cyhal_ezi2c_init_cfg()
400 obj->clock = *cfg->clock; in cyhal_ezi2c_init_cfg()
401 obj->is_clock_owned = false; in cyhal_ezi2c_init_cfg()
402 obj->two_addresses = false; in cyhal_ezi2c_init_cfg()
403 obj->dc_configured = true; in cyhal_ezi2c_init_cfg()
405 cy_rslt_t result = _cyhal_ezi2c_init_hw(obj, cfg->config); in cyhal_ezi2c_init_cfg()
409 _cyhal_ezi2c_setup_and_enable(obj, slave1_cfg, slave2_cfg); in cyhal_ezi2c_init_cfg()