Lines Matching refs:init

394 static int i2c_compute_timing(struct stm32_i2c_init_s *init,  in i2c_compute_timing()  argument
420 specs = get_specs(init->bus_rate); in i2c_compute_timing()
422 DMSG("I2C speed out of bound: %"PRId32"Hz", init->bus_rate); in i2c_compute_timing()
430 if (init->rise_time > specs->rise_max || in i2c_compute_timing()
431 init->fall_time > specs->fall_max) { in i2c_compute_timing()
433 init->rise_time, specs->rise_max, in i2c_compute_timing()
434 init->fall_time, specs->fall_max); in i2c_compute_timing()
438 if (init->digital_filter_coef > STM32_I2C_DIGITAL_FILTER_MAX) { in i2c_compute_timing()
440 init->digital_filter_coef, STM32_I2C_DIGITAL_FILTER_MAX); in i2c_compute_timing()
445 if (init->analog_filter) { in i2c_compute_timing()
449 dnf_delay = init->digital_filter_coef * i2cclk; in i2c_compute_timing()
451 sdadel_min = specs->hddat_min + init->fall_time; in i2c_compute_timing()
452 delay = af_delay_min - ((init->digital_filter_coef + 3) * i2cclk); in i2c_compute_timing()
456 sdadel_max = specs->vddat_max - init->rise_time; in i2c_compute_timing()
457 delay = af_delay_max - ((init->digital_filter_coef + 4) * i2cclk); in i2c_compute_timing()
461 scldel_min = init->rise_time + specs->sudat_min; in i2c_compute_timing()
528 init->rise_time + in i2c_compute_timing()
529 init->fall_time; in i2c_compute_timing()
610 struct stm32_i2c_init_s *init, in i2c_setup_timing() argument
634 rc = i2c_compute_timing(init, clock_src, timing); in i2c_setup_timing()
637 if (init->bus_rate > I2C_STANDARD_RATE) { in i2c_setup_timing()
638 init->bus_rate = get_lower_rate(init->bus_rate); in i2c_setup_timing()
640 init->bus_rate); in i2c_setup_timing()
653 init->bus_rate, clock_src); in i2c_setup_timing()
655 init->rise_time, init->fall_time); in i2c_setup_timing()
657 init->analog_filter ? "On" : "Off", init->digital_filter_coef); in i2c_setup_timing()
690 struct stm32_i2c_init_s *init, in stm32_i2c_get_setup_from_fdt() argument
700 memset(init, 0, sizeof(*init)); in stm32_i2c_get_setup_from_fdt()
706 init->pbase = info.reg; in stm32_i2c_get_setup_from_fdt()
707 init->reg_size = info.reg_size; in stm32_i2c_get_setup_from_fdt()
709 res = clk_dt_get_by_index(fdt, node, 0, &init->clock); in stm32_i2c_get_setup_from_fdt()
715 init->rise_time = fdt32_to_cpu(*cuint); in stm32_i2c_get_setup_from_fdt()
717 init->rise_time = STM32_I2C_RISE_TIME_DEFAULT; in stm32_i2c_get_setup_from_fdt()
721 init->fall_time = fdt32_to_cpu(*cuint); in stm32_i2c_get_setup_from_fdt()
723 init->fall_time = STM32_I2C_FALL_TIME_DEFAULT; in stm32_i2c_get_setup_from_fdt()
727 init->bus_rate = fdt32_to_cpu(*cuint); in stm32_i2c_get_setup_from_fdt()
729 if (init->bus_rate > I2C_FAST_PLUS_RATE) { in stm32_i2c_get_setup_from_fdt()
731 init->bus_rate, I2C_FAST_PLUS_RATE); in stm32_i2c_get_setup_from_fdt()
735 init->bus_rate = I2C_STANDARD_RATE; in stm32_i2c_get_setup_from_fdt()