Lines Matching refs:i2cctl
54 static void ixgbe_raise_i2c_clk(struct ixgbe_hw *hw, u32 *i2cctl);
55 static void ixgbe_lower_i2c_clk(struct ixgbe_hw *hw, u32 *i2cctl);
56 static s32 ixgbe_set_i2c_data(struct ixgbe_hw *hw, u32 *i2cctl, bool data);
57 static bool ixgbe_get_i2c_data(struct ixgbe_hw *hw, u32 *i2cctl);
2299 u32 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_i2c_start() local
2303 i2cctl |= IXGBE_I2C_BB_EN_BY_MAC(hw); in ixgbe_i2c_start()
2306 ixgbe_set_i2c_data(hw, &i2cctl, 1); in ixgbe_i2c_start()
2307 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_i2c_start()
2312 ixgbe_set_i2c_data(hw, &i2cctl, 0); in ixgbe_i2c_start()
2317 ixgbe_lower_i2c_clk(hw, &i2cctl); in ixgbe_i2c_start()
2334 u32 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_i2c_stop() local
2342 ixgbe_set_i2c_data(hw, &i2cctl, 0); in ixgbe_i2c_stop()
2343 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_i2c_stop()
2348 ixgbe_set_i2c_data(hw, &i2cctl, 1); in ixgbe_i2c_stop()
2354 i2cctl &= ~bb_en_bit; in ixgbe_i2c_stop()
2355 i2cctl |= data_oe_bit | clk_oe_bit; in ixgbe_i2c_stop()
2356 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), i2cctl); in ixgbe_i2c_stop()
2393 u32 i2cctl; in ixgbe_clock_out_i2c_byte() local
2407 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_clock_out_i2c_byte()
2408 i2cctl |= IXGBE_I2C_DATA_OUT_BY_MAC(hw); in ixgbe_clock_out_i2c_byte()
2409 i2cctl |= IXGBE_I2C_DATA_OE_N_EN_BY_MAC(hw); in ixgbe_clock_out_i2c_byte()
2410 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), i2cctl); in ixgbe_clock_out_i2c_byte()
2427 u32 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_get_i2c_ack() local
2434 i2cctl |= IXGBE_I2C_DATA_OUT_BY_MAC(hw); in ixgbe_get_i2c_ack()
2435 i2cctl |= data_oe_bit; in ixgbe_get_i2c_ack()
2436 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), i2cctl); in ixgbe_get_i2c_ack()
2439 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_get_i2c_ack()
2447 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_get_i2c_ack()
2448 ack = ixgbe_get_i2c_data(hw, &i2cctl); in ixgbe_get_i2c_ack()
2460 ixgbe_lower_i2c_clk(hw, &i2cctl); in ixgbe_get_i2c_ack()
2477 u32 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_clock_in_i2c_bit() local
2483 i2cctl |= IXGBE_I2C_DATA_OUT_BY_MAC(hw); in ixgbe_clock_in_i2c_bit()
2484 i2cctl |= data_oe_bit; in ixgbe_clock_in_i2c_bit()
2485 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), i2cctl); in ixgbe_clock_in_i2c_bit()
2488 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_clock_in_i2c_bit()
2493 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_clock_in_i2c_bit()
2494 *data = ixgbe_get_i2c_data(hw, &i2cctl); in ixgbe_clock_in_i2c_bit()
2496 ixgbe_lower_i2c_clk(hw, &i2cctl); in ixgbe_clock_in_i2c_bit()
2512 u32 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_clock_out_i2c_bit() local
2516 status = ixgbe_set_i2c_data(hw, &i2cctl, data); in ixgbe_clock_out_i2c_bit()
2518 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_clock_out_i2c_bit()
2523 ixgbe_lower_i2c_clk(hw, &i2cctl); in ixgbe_clock_out_i2c_bit()
2546 static void ixgbe_raise_i2c_clk(struct ixgbe_hw *hw, u32 *i2cctl) in ixgbe_raise_i2c_clk() argument
2556 *i2cctl |= clk_oe_bit; in ixgbe_raise_i2c_clk()
2557 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_raise_i2c_clk()
2561 *i2cctl |= IXGBE_I2C_CLK_OUT_BY_MAC(hw); in ixgbe_raise_i2c_clk()
2563 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_raise_i2c_clk()
2582 static void ixgbe_lower_i2c_clk(struct ixgbe_hw *hw, u32 *i2cctl) in ixgbe_lower_i2c_clk() argument
2586 *i2cctl &= ~(IXGBE_I2C_CLK_OUT_BY_MAC(hw)); in ixgbe_lower_i2c_clk()
2587 *i2cctl &= ~IXGBE_I2C_CLK_OE_N_EN_BY_MAC(hw); in ixgbe_lower_i2c_clk()
2589 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_lower_i2c_clk()
2605 static s32 ixgbe_set_i2c_data(struct ixgbe_hw *hw, u32 *i2cctl, bool data) in ixgbe_set_i2c_data() argument
2613 *i2cctl |= IXGBE_I2C_DATA_OUT_BY_MAC(hw); in ixgbe_set_i2c_data()
2615 *i2cctl &= ~(IXGBE_I2C_DATA_OUT_BY_MAC(hw)); in ixgbe_set_i2c_data()
2616 *i2cctl &= ~data_oe_bit; in ixgbe_set_i2c_data()
2618 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_set_i2c_data()
2627 *i2cctl |= data_oe_bit; in ixgbe_set_i2c_data()
2628 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_set_i2c_data()
2633 *i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_set_i2c_data()
2634 if (data != ixgbe_get_i2c_data(hw, i2cctl)) { in ixgbe_set_i2c_data()
2652 static bool ixgbe_get_i2c_data(struct ixgbe_hw *hw, u32 *i2cctl) in ixgbe_get_i2c_data() argument
2660 *i2cctl |= data_oe_bit; in ixgbe_get_i2c_data()
2661 IXGBE_WRITE_REG(hw, IXGBE_I2CCTL_BY_MAC(hw), *i2cctl); in ixgbe_get_i2c_data()
2666 if (*i2cctl & IXGBE_I2C_DATA_IN_BY_MAC(hw)) in ixgbe_get_i2c_data()
2683 u32 i2cctl; in ixgbe_i2c_bus_clear() local
2689 i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL_BY_MAC(hw)); in ixgbe_i2c_bus_clear()
2691 ixgbe_set_i2c_data(hw, &i2cctl, 1); in ixgbe_i2c_bus_clear()
2694 ixgbe_raise_i2c_clk(hw, &i2cctl); in ixgbe_i2c_bus_clear()
2699 ixgbe_lower_i2c_clk(hw, &i2cctl); in ixgbe_i2c_bus_clear()