• Home
  • Raw
  • Download

Lines Matching full:setup

138  * @sudat_min: Min data setup time (ns)
157 * struct stm32_i2c_setup - private I2C timing setup parameters
179 * @scldel: Data setup time
196 struct stm32_i2c_setup *setup; member
486 static int stm32_i2c_compute_solutions(struct stm32_i2c_setup *setup, in stm32_i2c_compute_solutions() argument
492 setup->clock_src); in stm32_i2c_compute_solutions()
498 af_delay_min = setup->analog_filter ? in stm32_i2c_compute_solutions()
500 af_delay_max = setup->analog_filter ? in stm32_i2c_compute_solutions()
503 sdadel_min = i2c_specs[setup->speed].hddat_min + setup->fall_time - in stm32_i2c_compute_solutions()
504 af_delay_min - (setup->dnf + 3) * i2cclk; in stm32_i2c_compute_solutions()
506 sdadel_max = i2c_specs[setup->speed].vddat_max - setup->rise_time - in stm32_i2c_compute_solutions()
507 af_delay_max - (setup->dnf + 4) * i2cclk; in stm32_i2c_compute_solutions()
509 scldel_min = setup->rise_time + i2c_specs[setup->speed].sudat_min; in stm32_i2c_compute_solutions()
560 static int stm32_i2c_choose_solution(struct stm32_i2c_setup *setup, in stm32_i2c_choose_solution() argument
566 setup->speed_freq); in stm32_i2c_choose_solution()
569 setup->clock_src); in stm32_i2c_choose_solution()
578 af_delay_min = setup->analog_filter ? in stm32_i2c_choose_solution()
580 dnf_delay = setup->dnf * i2cclk; in stm32_i2c_choose_solution()
583 clk_max = STM32_NSEC_PER_SEC / i2c_specs[setup->speed].rate_min; in stm32_i2c_choose_solution()
584 clk_min = STM32_NSEC_PER_SEC / i2c_specs[setup->speed].rate_max; in stm32_i2c_choose_solution()
602 if ((tscl_l < i2c_specs[setup->speed].l_min) || in stm32_i2c_choose_solution()
611 setup->rise_time + setup->fall_time; in stm32_i2c_choose_solution()
614 (tscl_h >= i2c_specs[setup->speed].h_min) && in stm32_i2c_choose_solution()
644 struct stm32_i2c_setup *setup, in stm32_i2c_compute_timing() argument
651 if (setup->speed >= STM32_I2C_SPEED_END) { in stm32_i2c_compute_timing()
653 setup->speed, STM32_I2C_SPEED_END - 1); in stm32_i2c_compute_timing()
657 if ((setup->rise_time > i2c_specs[setup->speed].rise_max) || in stm32_i2c_compute_timing()
658 (setup->fall_time > i2c_specs[setup->speed].fall_max)) { in stm32_i2c_compute_timing()
661 setup->rise_time, i2c_specs[setup->speed].rise_max, in stm32_i2c_compute_timing()
662 setup->fall_time, i2c_specs[setup->speed].fall_max); in stm32_i2c_compute_timing()
666 if (setup->dnf > STM32_I2C_DNF_MAX) { in stm32_i2c_compute_timing()
668 setup->dnf, STM32_I2C_DNF_MAX); in stm32_i2c_compute_timing()
672 if (setup->speed_freq > i2c_specs[setup->speed].rate) { in stm32_i2c_compute_timing()
674 setup->speed_freq, i2c_specs[setup->speed].rate); in stm32_i2c_compute_timing()
679 ret = stm32_i2c_compute_solutions(setup, &solutions); in stm32_i2c_compute_timing()
683 ret = stm32_i2c_choose_solution(setup, &solutions, output); in stm32_i2c_compute_timing()
705 struct stm32_i2c_setup *setup = i2c_priv->setup; in stm32_i2c_setup_timing() local
708 setup->speed = i2c_priv->speed; in stm32_i2c_setup_timing()
709 setup->speed_freq = i2c_specs[setup->speed].rate; in stm32_i2c_setup_timing()
710 setup->clock_src = clk_get_rate(&i2c_priv->clk); in stm32_i2c_setup_timing()
712 if (!setup->clock_src) { in stm32_i2c_setup_timing()
718 ret = stm32_i2c_compute_timing(i2c_priv, setup, timing); in stm32_i2c_setup_timing()
724 setup->speed = i2c_priv->speed; in stm32_i2c_setup_timing()
725 setup->speed_freq = in stm32_i2c_setup_timing()
726 i2c_specs[setup->speed].rate; in stm32_i2c_setup_timing()
728 __func__, i2c_specs[setup->speed].rate); in stm32_i2c_setup_timing()
741 setup->speed, setup->speed_freq, setup->clock_src); in stm32_i2c_setup_timing()
743 setup->rise_time, setup->fall_time); in stm32_i2c_setup_timing()
745 setup->analog_filter ? "On" : "Off", setup->dnf); in stm32_i2c_setup_timing()
773 if (i2c_priv->setup->analog_filter) in stm32_i2c_hw_config()
848 i2c_priv->setup = (struct stm32_i2c_setup *)dev_get_driver_data(dev); in stm32_ofdata_to_platdata()
849 if (!i2c_priv->setup) in stm32_ofdata_to_platdata()
854 i2c_priv->setup->rise_time = rise_time; in stm32_ofdata_to_platdata()
858 i2c_priv->setup->fall_time = fall_time; in stm32_ofdata_to_platdata()