src/dpdk/drivers/net/igc/base/igc_api.c
static void igc_i2c_stop(struct igc_hw *hw)
{
	u32 i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS);

	DEBUGFUNC("igc_i2c_stop");

	/* Stop condition must begin with data low and clock high */
	igc_set_i2c_data(hw, &i2cctl, 0);
	igc_raise_i2c_clk(hw, &i2cctl);

	/* Setup time for stop condition (4us) */
	usec_delay(IGC_I2C_T_SU_STO);

	igc_set_i2c_data(hw, &i2cctl, 1);

	/* bus free time between stop and start (4.7us)*/
	usec_delay(IGC_I2C_T_BUF);
}
/**
 *  igc_i2c_stop - Sets I2C stop condition
 *  @hw: pointer to hardware structure
 *
 *  Sets I2C stop condition (Low -> High on SDA while SCL is High)
 **/
Sets I2C stop condition
@hw: pointer to hardware structure

Sets I2C stop condition (Low -> High on SDA while SCL is High)
Sets I2C stop condition @hw : pointer to hardware structure Sets I2C stop condition ( Low - > High on SDA while SCL is High )
static void igc_i2c_stop(struct igc_hw *hw)
{
	u32 i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS);
	DEBUGFUNC("igc_i2c_stop");
	igc_set_i2c_data(hw, &i2cctl, 0);
	igc_raise_i2c_clk(hw, &i2cctl);
	usec_delay(IGC_I2C_T_SU_STO);
	igc_set_i2c_data(hw, &i2cctl, 1);
	usec_delay(IGC_I2C_T_BUF);
}
static void igc_i2c_stop ( struct igc_hw * hw ) { u32 i2cctl = IGC_READ_REG ( hw , IGC_I2CPARAMS ) ; DEBUGFUNC ( " " ) ; igc_set_i2c_data ( hw , & i2cctl , 0 ) ; igc_raise_i2c_clk ( hw , & i2cctl ) ; usec_delay ( IGC_I2C_T_SU_STO ) ; igc_set_i2c_data ( hw , & i2cctl , 1 ) ; usec_delay ( IGC_I2C_T_BUF ) ; }
igc_i2c_stop - Sets I2C stop condition
  @hw: pointer to hardware structure
igc_i2c_stop - Sets I2C stop condition @hw : pointer to hardware structure
/* Stop condition must begin with data low and clock high */ /* Setup time for stop condition (4us) */ /* bus free time between stop and start (4.7us)*/