Lines Matching refs:p_instance
269 static void configure_pins(nrfx_spim_t const * p_instance, in configure_pins() argument
272 spim_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in configure_pins()
317 static bool spim_frequency_valid_check(nrfx_spim_t const * p_instance, uint32_t frequency) in spim_frequency_valid_check() argument
319 (void)p_instance; in spim_frequency_valid_check()
381 static bool spim_frequency_valid_check(nrfx_spim_t const * p_instance, uint32_t frequency) in spim_frequency_valid_check() argument
383 uint32_t base_frequency = NRFX_SPIM_BASE_FREQUENCY_GET(p_instance); in spim_frequency_valid_check()
384 uint32_t prescaler = NRF_SPIM_PRESCALER_CALCULATE(p_instance->p_reg, frequency); in spim_frequency_valid_check()
388 (prescaler <= NRF_SPIM_PRESCALER_MAX_GET(p_instance->p_reg)) && in spim_frequency_valid_check()
389 (prescaler >= NRF_SPIM_PRESCALER_MIN_GET(p_instance->p_reg)); in spim_frequency_valid_check()
392 static uint32_t spim_prescaler_calculate(nrfx_spim_t const * p_instance, uint32_t frequency) in spim_prescaler_calculate() argument
394 (void)p_instance; in spim_prescaler_calculate()
395 return NRF_SPIM_PRESCALER_CALCULATE(p_instance->p_reg, frequency); in spim_prescaler_calculate()
401 static nrfx_err_t spim_configuration_verify(nrfx_spim_t const * p_instance, in spim_configuration_verify() argument
405 if (!spim_frequency_valid_check(p_instance, p_config->frequency)) in spim_configuration_verify()
416 if (!SPIM_SUPPORTED_FREQ_VALIDATE(p_instance->drv_inst_idx, p_config->frequency) || in spim_configuration_verify()
418 !SPIM_HW_CSN_PRESENT_VALIDATE(p_instance->drv_inst_idx)) || in spim_configuration_verify()
420 !SPIM_DCX_PRESENT_VALIDATE(p_instance->drv_inst_idx))) in spim_configuration_verify()
434 (p_instance->p_reg == NRF_SPIM4) && (p_config->frequency == NRFX_MHZ_TO_HZ(32))) in spim_configuration_verify()
461 (void)p_instance; in spim_configuration_verify()
467 static void spim_configure(nrfx_spim_t const * p_instance, in spim_configure() argument
471 bool hw_csn_supported = SPIM_HW_CSN_PRESENT_VALIDATE(p_instance->drv_inst_idx); in spim_configure()
474 spim_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in spim_configure()
482 uint32_t prescaler = spim_prescaler_calculate(p_instance, p_config->frequency); in spim_configure()
506 configure_pins(p_instance, p_config); in spim_configure()
566 (SPIM_RXDELAY_PRESENT_VALIDATE(p_instance->drv_inst_idx) ? in spim_configure()
575 nrfy_spim_periph_configure(p_instance->p_reg, &nrfy_config); in spim_configure()
576 if (m_cb[p_instance->drv_inst_idx].handler) in spim_configure()
578 nrfy_spim_int_init(p_instance->p_reg, 0, p_config->irq_priority, false); in spim_configure()
582 nrfx_err_t nrfx_spim_init(nrfx_spim_t const * p_instance, in nrfx_spim_init() argument
589 spim_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_spim_init()
607 err_code = spim_configuration_verify(p_instance, p_config); in nrfx_spim_init()
618 if (nrfx_prs_acquire(p_instance->p_reg, irq_handlers[p_instance->drv_inst_idx]) != NRFX_SUCCESS) in nrfx_spim_init()
633 spim_configure(p_instance, p_config); in nrfx_spim_init()
644 nrfx_err_t nrfx_spim_reconfigure(nrfx_spim_t const * p_instance, in nrfx_spim_reconfigure() argument
649 spim_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_spim_reconfigure()
659 nrfx_err_t err_code = spim_configuration_verify(p_instance, p_config); in nrfx_spim_reconfigure()
665 spim_configure(p_instance, p_config); in nrfx_spim_reconfigure()
680 void nrfx_spim_uninit(nrfx_spim_t const * p_instance) in nrfx_spim_uninit() argument
682 spim_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_spim_uninit()
686 nrfy_spim_int_uninit(p_instance->p_reg); in nrfx_spim_uninit()
689 nrfy_spim_int_disable(p_instance->p_reg, NRF_SPIM_ALL_INTS_MASK); in nrfx_spim_uninit()
690 spim_abort(p_instance->p_reg, p_cb); in nrfx_spim_uninit()
694 nrfy_spim_pins_get(p_instance->p_reg, &pins); in nrfx_spim_uninit()
703 if (SPIM_DCX_PRESENT_VALIDATE(p_instance->drv_inst_idx) && in nrfx_spim_uninit()
704 SPIM_HW_CSN_PRESENT_VALIDATE(p_instance->drv_inst_idx)) in nrfx_spim_uninit()
707 nrfy_spim_ext_pins_get(p_instance->p_reg, &ext_pins); in nrfx_spim_uninit()
719 if (p_instance->p_reg == NRF_SPIM3) in nrfx_spim_uninit()
726 nrfx_prs_release(p_instance->p_reg); in nrfx_spim_uninit()
733 bool nrfx_spim_init_check(nrfx_spim_t const * p_instance) in nrfx_spim_init_check() argument
735 spim_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_spim_init_check()
741 nrfx_err_t nrfx_spim_xfer_dcx(nrfx_spim_t const * p_instance, in nrfx_spim_xfer_dcx() argument
750 nrfy_spim_dcx_cnt_set((NRF_SPIM_Type *)p_instance->p_reg, cmd_length); in nrfx_spim_xfer_dcx()
751 return nrfx_spim_xfer(p_instance, p_xfer_desc, 0); in nrfx_spim_xfer_dcx()
907 nrfx_err_t nrfx_spim_xfer(nrfx_spim_t const * p_instance, in nrfx_spim_xfer() argument
911 spim_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_spim_xfer()
916 NRFX_ASSERT(SPIM_LENGTH_VALIDATE(p_instance->drv_inst_idx, in nrfx_spim_xfer()
956 return spim_xfer(p_instance->p_reg, p_cb, p_xfer_desc, flags); in nrfx_spim_xfer()
959 void nrfx_spim_abort(nrfx_spim_t const * p_instance) in nrfx_spim_abort() argument
961 spim_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_spim_abort()
965 spim_abort(p_instance->p_reg, p_cb); in nrfx_spim_abort()