Lines Matching refs:i2c_priv

249 static int stm32_i2c_check_device_busy(struct stm32_i2c_priv *i2c_priv)  in stm32_i2c_check_device_busy()  argument
251 struct stm32_i2c_regs *regs = i2c_priv->regs; in stm32_i2c_check_device_busy()
260 static void stm32_i2c_message_start(struct stm32_i2c_priv *i2c_priv, in stm32_i2c_message_start() argument
263 struct stm32_i2c_regs *regs = i2c_priv->regs; in stm32_i2c_message_start()
304 static void stm32_i2c_handle_reload(struct stm32_i2c_priv *i2c_priv, in stm32_i2c_handle_reload() argument
307 struct stm32_i2c_regs *regs = i2c_priv->regs; in stm32_i2c_handle_reload()
322 static int stm32_i2c_wait_flags(struct stm32_i2c_priv *i2c_priv, in stm32_i2c_wait_flags() argument
325 struct stm32_i2c_regs *regs = i2c_priv->regs; in stm32_i2c_wait_flags()
341 static int stm32_i2c_check_end_of_message(struct stm32_i2c_priv *i2c_priv) in stm32_i2c_check_end_of_message() argument
343 struct stm32_i2c_regs *regs = i2c_priv->regs; in stm32_i2c_check_end_of_message()
349 ret = stm32_i2c_wait_flags(i2c_priv, mask, &status); in stm32_i2c_check_end_of_message()
379 ret = stm32_i2c_wait_flags(i2c_priv, mask, &status); in stm32_i2c_check_end_of_message()
397 static int stm32_i2c_message_xfer(struct stm32_i2c_priv *i2c_priv, in stm32_i2c_message_xfer() argument
400 struct stm32_i2c_regs *regs = i2c_priv->regs; in stm32_i2c_message_xfer()
411 stm32_i2c_message_start(i2c_priv, msg, stop); in stm32_i2c_message_xfer()
418 ret = stm32_i2c_wait_flags(i2c_priv, mask, &status); in stm32_i2c_message_xfer()
440 ret = stm32_i2c_wait_flags(i2c_priv, mask, &status); in stm32_i2c_message_xfer()
449 stm32_i2c_handle_reload(i2c_priv, msg, stop); in stm32_i2c_message_xfer()
453 ret = stm32_i2c_wait_flags(i2c_priv, mask, &status); in stm32_i2c_message_xfer()
467 return stm32_i2c_check_end_of_message(i2c_priv); in stm32_i2c_message_xfer()
473 struct stm32_i2c_priv *i2c_priv = dev_get_priv(bus); in stm32_i2c_xfer() local
476 ret = stm32_i2c_check_device_busy(i2c_priv); in stm32_i2c_xfer()
481 ret = stm32_i2c_message_xfer(i2c_priv, msg, nmsgs == 1); in stm32_i2c_xfer()
637 static int stm32_i2c_compute_timing(struct stm32_i2c_priv *i2c_priv, in stm32_i2c_compute_timing() argument
703 static int stm32_i2c_setup_timing(struct stm32_i2c_priv *i2c_priv, in stm32_i2c_setup_timing() argument
706 struct stm32_i2c_setup *setup = i2c_priv->setup; in stm32_i2c_setup_timing()
709 setup->speed = i2c_priv->speed; in stm32_i2c_setup_timing()
711 setup->clock_src = clk_get_rate(&i2c_priv->clk); in stm32_i2c_setup_timing()
719 ret = stm32_i2c_compute_timing(i2c_priv, setup, timing); in stm32_i2c_setup_timing()
723 if (i2c_priv->speed > STM32_I2C_SPEED_STANDARD) { in stm32_i2c_setup_timing()
724 i2c_priv->speed--; in stm32_i2c_setup_timing()
725 setup->speed = i2c_priv->speed; in stm32_i2c_setup_timing()
751 static int stm32_i2c_hw_config(struct stm32_i2c_priv *i2c_priv) in stm32_i2c_hw_config() argument
753 struct stm32_i2c_regs *regs = i2c_priv->regs; in stm32_i2c_hw_config()
758 ret = stm32_i2c_setup_timing(i2c_priv, &t); in stm32_i2c_hw_config()
774 if (i2c_priv->setup->analog_filter) in stm32_i2c_hw_config()
785 struct stm32_i2c_priv *i2c_priv = dev_get_priv(bus); in stm32_i2c_set_bus_speed() local
789 i2c_priv->speed = STM32_I2C_SPEED_STANDARD; in stm32_i2c_set_bus_speed()
792 i2c_priv->speed = STM32_I2C_SPEED_FAST; in stm32_i2c_set_bus_speed()
795 i2c_priv->speed = STM32_I2C_SPEED_FAST_PLUS; in stm32_i2c_set_bus_speed()
802 return stm32_i2c_hw_config(i2c_priv); in stm32_i2c_set_bus_speed()
807 struct stm32_i2c_priv *i2c_priv = dev_get_priv(dev); in stm32_i2c_probe() local
816 i2c_priv->regs = (struct stm32_i2c_regs *)addr; in stm32_i2c_probe()
818 ret = clk_get_by_index(dev, 0, &i2c_priv->clk); in stm32_i2c_probe()
822 ret = clk_enable(&i2c_priv->clk); in stm32_i2c_probe()
837 clk_disable(&i2c_priv->clk); in stm32_i2c_probe()
839 clk_free(&i2c_priv->clk); in stm32_i2c_probe()
846 struct stm32_i2c_priv *i2c_priv = dev_get_priv(dev); in stm32_ofdata_to_platdata() local
849 i2c_priv->setup = (struct stm32_i2c_setup *)dev_get_driver_data(dev); in stm32_ofdata_to_platdata()
850 if (!i2c_priv->setup) in stm32_ofdata_to_platdata()
855 i2c_priv->setup->rise_time = rise_time; in stm32_ofdata_to_platdata()
859 i2c_priv->setup->fall_time = fall_time; in stm32_ofdata_to_platdata()