Lines Matching refs:i2cctl
47 static void ixgbe_raise_i2c_clk(struct ixgbe_hw *hw, u32 *i2cctl);
48 static void ixgbe_lower_i2c_clk(struct ixgbe_hw *hw, u32 *i2cctl);
49 static s32 ixgbe_set_i2c_data(struct ixgbe_hw *hw, u32 *i2cctl, bool data);
50 static bool ixgbe_get_i2c_data(struct ixgbe_hw *hw, u32 *i2cctl);
2223 u32 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_i2c_start() local
2227 i2cctl |= IXGBE_I2C_BB_EN_BY_MAC(hw); in ixgbe_i2c_start()
2230 ixgbe_set_i2c_data(hw, &i2cctl, 1); in ixgbe_i2c_start()
2231 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_i2c_start()
2236 ixgbe_set_i2c_data(hw, &i2cctl, 0); in ixgbe_i2c_start()
2241 ixgbe_lower_i2c_clk(hw, &i2cctl); in ixgbe_i2c_start()
2258 u32 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_i2c_stop() local
2266 ixgbe_set_i2c_data(hw, &i2cctl, 0); in ixgbe_i2c_stop()
2267 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_i2c_stop()
2272 ixgbe_set_i2c_data(hw, &i2cctl, 1); in ixgbe_i2c_stop()
2278 i2cctl &= ~bb_en_bit; in ixgbe_i2c_stop()
2279 i2cctl |= data_oe_bit | clk_oe_bit; in ixgbe_i2c_stop()
2280 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), i2cctl); in ixgbe_i2c_stop()
2317 u32 i2cctl; in ixgbe_clock_out_i2c_byte() local
2331 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_clock_out_i2c_byte()
2332 i2cctl |= IXGBE_I2C_DATA_OUT_BY_MAC(hw); in ixgbe_clock_out_i2c_byte()
2333 i2cctl |= IXGBE_I2C_DATA_OE_N_EN_BY_MAC(hw); in ixgbe_clock_out_i2c_byte()
2334 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), i2cctl); in ixgbe_clock_out_i2c_byte()
2351 u32 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_get_i2c_ack() local
2358 i2cctl |= IXGBE_I2C_DATA_OUT_BY_MAC(hw); in ixgbe_get_i2c_ack()
2359 i2cctl |= data_oe_bit; in ixgbe_get_i2c_ack()
2360 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), i2cctl); in ixgbe_get_i2c_ack()
2363 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_get_i2c_ack()
2371 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_get_i2c_ack()
2372 ack = ixgbe_get_i2c_data(hw, &i2cctl); in ixgbe_get_i2c_ack()
2384 ixgbe_lower_i2c_clk(hw, &i2cctl); in ixgbe_get_i2c_ack()
2401 u32 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_clock_in_i2c_bit() local
2407 i2cctl |= IXGBE_I2C_DATA_OUT_BY_MAC(hw); in ixgbe_clock_in_i2c_bit()
2408 i2cctl |= data_oe_bit; in ixgbe_clock_in_i2c_bit()
2409 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), i2cctl); in ixgbe_clock_in_i2c_bit()
2412 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_clock_in_i2c_bit()
2417 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_clock_in_i2c_bit()
2418 *data = ixgbe_get_i2c_data(hw, &i2cctl); in ixgbe_clock_in_i2c_bit()
2420 ixgbe_lower_i2c_clk(hw, &i2cctl); in ixgbe_clock_in_i2c_bit()
2436 u32 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_clock_out_i2c_bit() local
2440 status = ixgbe_set_i2c_data(hw, &i2cctl, data); in ixgbe_clock_out_i2c_bit()
2442 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_clock_out_i2c_bit()
2447 ixgbe_lower_i2c_clk(hw, &i2cctl); in ixgbe_clock_out_i2c_bit()
2470 static void ixgbe_raise_i2c_clk(struct ixgbe_hw *hw, u32 *i2cctl) in ixgbe_raise_i2c_clk() argument
2480 *i2cctl |= clk_oe_bit; in ixgbe_raise_i2c_clk()
2481 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_raise_i2c_clk()
2485 *i2cctl |= IXGBE_I2C_CLK_OUT_BY_MAC(hw); in ixgbe_raise_i2c_clk()
2487 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_raise_i2c_clk()
2506 static void ixgbe_lower_i2c_clk(struct ixgbe_hw *hw, u32 *i2cctl) in ixgbe_lower_i2c_clk() argument
2510 *i2cctl &= ~(IXGBE_I2C_CLK_OUT_BY_MAC(hw)); in ixgbe_lower_i2c_clk()
2511 *i2cctl &= ~IXGBE_I2C_CLK_OE_N_EN_BY_MAC(hw); in ixgbe_lower_i2c_clk()
2513 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_lower_i2c_clk()
2529 static s32 ixgbe_set_i2c_data(struct ixgbe_hw *hw, u32 *i2cctl, bool data) in ixgbe_set_i2c_data() argument
2537 *i2cctl |= IXGBE_I2C_DATA_OUT_BY_MAC(hw); in ixgbe_set_i2c_data()
2539 *i2cctl &= ~(IXGBE_I2C_DATA_OUT_BY_MAC(hw)); in ixgbe_set_i2c_data()
2540 *i2cctl &= ~data_oe_bit; in ixgbe_set_i2c_data()
2542 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_set_i2c_data()
2551 *i2cctl |= data_oe_bit; in ixgbe_set_i2c_data()
2552 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_set_i2c_data()
2557 *i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_set_i2c_data()
2558 if (data != ixgbe_get_i2c_data(hw, i2cctl)) { in ixgbe_set_i2c_data()
2576 static bool ixgbe_get_i2c_data(struct ixgbe_hw *hw, u32 *i2cctl) in ixgbe_get_i2c_data() argument
2584 *i2cctl |= data_oe_bit; in ixgbe_get_i2c_data()
2585 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_get_i2c_data()
2590 if (*i2cctl & IXGBE_I2C_DATA_IN_BY_MAC(hw)) in ixgbe_get_i2c_data()
2607 u32 i2cctl; in ixgbe_i2c_bus_clear() local
2613 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_i2c_bus_clear()
2615 ixgbe_set_i2c_data(hw, &i2cctl, 1); in ixgbe_i2c_bus_clear()
2618 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_i2c_bus_clear()
2623 ixgbe_lower_i2c_clk(hw, &i2cctl); in ixgbe_i2c_bus_clear()