ixgbe_raise_i2c_clk(9)
π ixgbe_raise_i2c_clk(9) π
okay bestie, welcome to the Kernel API Manual entry for ixgbe_raise_i2c_clk β yes it's a real function, yes it's in the kernel, and yes we're gonna get through it together π«Ά
β¨ NAME β¨
ixgbe_raise_i2c_clk β the little guy that raises the I2C SCL clock β«π
πΈ SYNOPSIS πΈ
void ixgbe_raise_i2c_clk (struct ixgbe_hw *hw , u32 *i2cctl );
that's it. that's the whole signature. two args, no return value, iconic behavior π
π ARGUMENTS π
hwβ pointer to hardware structure. like, the actual hardware vibes, passed by reference π₯οΈβ¨i2cctlβ Current value of I2CCTL register. it's au32 *, so we're looking at the live register value, not a copy π
π¦ DESCRIPTION π¦
So what does it do? It raises the I2C clock line, going '0' -> '1' β¬οΈ β like flipping the SCL bit up so the clock line goes high, no cap.
And on X550 hardware? It negates the I2C clock output enable π₯ that's the extra little move, and it's specific to X550, so don't go assuming it happens everywhere, bestie π
π SEE ALSO π
okay this list is long long, but every single one is here because we don't do skipping in this house π
First up, the file it lives in:
- Kernel file
./drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c
And the whole friend group:
ixgbe_out_i2c_byte_ack(9)ixgbe_in_i2c_byte_ack(9)ixgbe_ones_comp_byte_add(9)ixgbe_read_i2c_combined_generic_int(9)ixgbe_write_i2c_combined_generic_int(9)ixgbe_probe_phy(9)ixgbe_identify_phy_generic(9)ixgbe_check_reset_blocked(9)ixgbe_get_phy_id(9)ixgbe_get_phy_type_from_id(9)ixgbe_reset_phy_generic(9)ixgbe_read_phy_reg_mdi(9)ixgbe_read_phy_reg_generic(9)ixgbe_write_phy_reg_mdi(9)ixgbe_write_phy_reg_generic(9)ixgbe_msca_cmd(9)ixgbe_mii_bus_read_generic_c22(9)ixgbe_mii_bus_read_generic_c45(9)ixgbe_mii_bus_write_generic_c22(9)ixgbe_mii_bus_write_generic_c45(9)ixgbe_mii_bus_read_c22(9)ixgbe_mii_bus_read_c45(9)ixgbe_mii_bus_write_c22(9)ixgbe_mii_bus_write_c45(9)ixgbe_x550em_a_mii_bus_read_c22(9)ixgbe_x550em_a_mii_bus_read_c45(9)ixgbe_x550em_a_mii_bus_write_c22(9)ixgbe_x550em_a_mii_bus_write_c45(9)ixgbe_get_first_secondary_devfn(9)ixgbe_x550em_a_has_mii(9)ixgbe_mii_bus_init(9)ixgbe_setup_phy_link_generic(9)ixgbe_setup_phy_link_speed_generic(9)ixgbe_get_copper_speeds_supported(9)ixgbe_get_copper_link_capabilities_generic(9)ixgbe_check_phy_link_tnx(9)ixgbe_setup_phy_link_tnx(9)ixgbe_reset_phy_nl(9)ixgbe_identify_module_generic(9)ixgbe_identify_sfp_module_generic(9)ixgbe_identify_qsfp_module_generic(9)ixgbe_get_sfp_init_sequence_offsets(9)ixgbe_read_i2c_eeprom_generic(9)ixgbe_read_i2c_sff8472_generic(9)ixgbe_write_i2c_eeprom_generic(9)ixgbe_is_sfp_probe(9)ixgbe_read_i2c_byte_generic_int(9)ixgbe_read_i2c_byte_generic(9)ixgbe_read_i2c_byte_generic_unlocked(9)ixgbe_write_i2c_byte_generic_int(9)ixgbe_write_i2c_byte_generic(9)ixgbe_write_i2c_byte_generic_unlocked(9)ixgbe_i2c_start(9)ixgbe_i2c_stop(9)ixgbe_clock_in_i2c_byte(9)ixgbe_clock_out_i2c_byte(9)ixgbe_get_i2c_ack(9)ixgbe_clock_in_i2c_bit(9)ixgbe_clock_out_i2c_bit(9)ixgbe_lower_i2c_clk(9)ixgbe_set_i2c_data(9)ixgbe_get_i2c_data(9)ixgbe_i2c_bus_clear(9)ixgbe_tn_check_overtemp(9)
like, that's the entire i2c/phy extended universe π and yes ixgbe_lower_i2c_clk(9) is right there at the end β it's the sibling, the yin to this yang, the down to this up ππ
ngl this page is short but the SEE ALSO section is doing main character energy β read it, it's free lore π§
and that's the whole thing! source/version footer says ./drivers/net/ethernet/intel/i... dated October 2026, and yeah the manual name is ixgbe_raise_i2c_clk(9) in case you forgot already π slay, go raise some clocks, periodt βπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms