Lines Matching full:pf
51 static s32 ixl_set_i2c_data(struct ixl_pf *pf, u32 *i2cctl, bool data);
52 static bool ixl_get_i2c_data(struct ixl_pf *pf, u32 *i2cctl);
53 static void ixl_raise_i2c_clk(struct ixl_pf *pf, u32 *i2cctl);
54 static void ixl_lower_i2c_clk(struct ixl_pf *pf, u32 *i2cctl);
55 static s32 ixl_clock_out_i2c_bit(struct ixl_pf *pf, bool data);
56 static s32 ixl_get_i2c_ack(struct ixl_pf *pf);
57 static s32 ixl_clock_out_i2c_byte(struct ixl_pf *pf, u8 data);
58 static s32 ixl_clock_in_i2c_bit(struct ixl_pf *pf, bool *data);
59 static s32 ixl_clock_in_i2c_byte(struct ixl_pf *pf, u8 *data);
60 static void ixl_i2c_bus_clear(struct ixl_pf *pf);
61 static void ixl_i2c_start(struct ixl_pf *pf);
62 static void ixl_i2c_stop(struct ixl_pf *pf);
74 ixl_i2c_bus_clear(struct ixl_pf *pf) in ixl_i2c_bus_clear() argument
76 struct i40e_hw *hw = &pf->hw; in ixl_i2c_bus_clear()
82 ixl_i2c_start(pf); in ixl_i2c_bus_clear()
84 ixl_set_i2c_data(pf, &i2cctl, 1); in ixl_i2c_bus_clear()
87 ixl_raise_i2c_clk(pf, &i2cctl); in ixl_i2c_bus_clear()
92 ixl_lower_i2c_clk(pf, &i2cctl); in ixl_i2c_bus_clear()
98 ixl_i2c_start(pf); in ixl_i2c_bus_clear()
101 ixl_i2c_stop(pf); in ixl_i2c_bus_clear()
111 ixl_i2c_stop(struct ixl_pf *pf) in ixl_i2c_stop() argument
113 struct i40e_hw *hw = &pf->hw; in ixl_i2c_stop()
119 ixl_set_i2c_data(pf, &i2cctl, 0); in ixl_i2c_stop()
120 ixl_raise_i2c_clk(pf, &i2cctl); in ixl_i2c_stop()
125 ixl_set_i2c_data(pf, &i2cctl, 1); in ixl_i2c_stop()
139 ixl_clock_in_i2c_byte(struct ixl_pf *pf, u8 *data) in ixl_clock_in_i2c_byte() argument
147 ixl_clock_in_i2c_bit(pf, &bit); in ixl_clock_in_i2c_byte()
162 ixl_clock_in_i2c_bit(struct ixl_pf *pf, bool *data) in ixl_clock_in_i2c_bit() argument
164 struct i40e_hw *hw = &pf->hw; in ixl_clock_in_i2c_bit()
169 ixl_raise_i2c_clk(pf, &i2cctl); in ixl_clock_in_i2c_bit()
180 *data = ixl_get_i2c_data(pf, &i2cctl); in ixl_clock_in_i2c_bit()
182 ixl_lower_i2c_clk(pf, &i2cctl); in ixl_clock_in_i2c_bit()
197 ixl_get_i2c_ack(struct ixl_pf *pf) in ixl_get_i2c_ack() argument
199 struct i40e_hw *hw = &pf->hw; in ixl_get_i2c_ack()
206 ixl_raise_i2c_clk(pf, &i2cctl); in ixl_get_i2c_ack()
220 ack = ixl_get_i2c_data(pf, &i2cctl); in ixl_get_i2c_ack()
228 ixl_dbg(pf, IXL_DBG_I2C, "I2C ack was not received.\n"); in ixl_get_i2c_ack()
232 ixl_lower_i2c_clk(pf, &i2cctl); in ixl_get_i2c_ack()
248 ixl_clock_out_i2c_bit(struct ixl_pf *pf, bool data) in ixl_clock_out_i2c_bit() argument
250 struct i40e_hw *hw = &pf->hw; in ixl_clock_out_i2c_bit()
254 status = ixl_set_i2c_data(pf, &i2cctl, data); in ixl_clock_out_i2c_bit()
256 ixl_raise_i2c_clk(pf, &i2cctl); in ixl_clock_out_i2c_bit()
261 ixl_lower_i2c_clk(pf, &i2cctl); in ixl_clock_out_i2c_bit()
269 ixl_dbg(pf, IXL_DBG_I2C, "I2C data was not set to %#x\n", data); in ixl_clock_out_i2c_bit()
283 ixl_clock_out_i2c_byte(struct ixl_pf *pf, u8 data) in ixl_clock_out_i2c_byte() argument
285 struct i40e_hw *hw = &pf->hw; in ixl_clock_out_i2c_byte()
295 status = ixl_clock_out_i2c_bit(pf, bit); in ixl_clock_out_i2c_byte()
319 ixl_lower_i2c_clk(struct ixl_pf *pf, u32 *i2cctl) in ixl_lower_i2c_clk() argument
321 struct i40e_hw *hw = &pf->hw; in ixl_lower_i2c_clk()
341 ixl_raise_i2c_clk(struct ixl_pf *pf, u32 *i2cctl) in ixl_raise_i2c_clk() argument
343 struct i40e_hw *hw = &pf->hw; in ixl_raise_i2c_clk()
371 ixl_get_i2c_data(struct ixl_pf *pf, u32 *i2cctl) in ixl_get_i2c_data() argument
392 ixl_set_i2c_data(struct ixl_pf *pf, u32 *i2cctl, bool data) in ixl_set_i2c_data() argument
394 struct i40e_hw *hw = &pf->hw; in ixl_set_i2c_data()
413 if (data != ixl_get_i2c_data(pf, i2cctl)) { in ixl_set_i2c_data()
415 ixl_dbg(pf, IXL_DBG_I2C, "Error - I2C data was not set to %X.\n", data); in ixl_set_i2c_data()
426 ixl_i2c_start(struct ixl_pf *pf) in ixl_i2c_start() argument
428 struct i40e_hw *hw = &pf->hw; in ixl_i2c_start()
434 ixl_set_i2c_data(pf, &i2cctl, 1); in ixl_i2c_start()
435 ixl_raise_i2c_clk(pf, &i2cctl); in ixl_i2c_start()
440 ixl_set_i2c_data(pf, &i2cctl, 0); in ixl_i2c_start()
445 ixl_lower_i2c_clk(pf, &i2cctl); in ixl_i2c_start()
456 ixl_read_i2c_byte_bb(struct ixl_pf *pf, u8 byte_offset, in ixl_read_i2c_byte_bb() argument
459 struct i40e_hw *hw = &pf->hw; in ixl_read_i2c_byte_bb()
472 ixl_i2c_start(pf); in ixl_read_i2c_byte_bb()
475 status = ixl_clock_out_i2c_byte(pf, dev_addr); in ixl_read_i2c_byte_bb()
477 ixl_dbg(pf, IXL_DBG_I2C, "dev_addr clock out error\n"); in ixl_read_i2c_byte_bb()
481 status = ixl_get_i2c_ack(pf); in ixl_read_i2c_byte_bb()
483 ixl_dbg(pf, IXL_DBG_I2C, "dev_addr i2c ack error\n"); in ixl_read_i2c_byte_bb()
487 status = ixl_clock_out_i2c_byte(pf, byte_offset); in ixl_read_i2c_byte_bb()
489 ixl_dbg(pf, IXL_DBG_I2C, "byte_offset clock out error\n"); in ixl_read_i2c_byte_bb()
493 status = ixl_get_i2c_ack(pf); in ixl_read_i2c_byte_bb()
495 ixl_dbg(pf, IXL_DBG_I2C, "byte_offset i2c ack error\n"); in ixl_read_i2c_byte_bb()
499 ixl_i2c_start(pf); in ixl_read_i2c_byte_bb()
502 status = ixl_clock_out_i2c_byte(pf, (dev_addr | 0x1)); in ixl_read_i2c_byte_bb()
506 status = ixl_get_i2c_ack(pf); in ixl_read_i2c_byte_bb()
510 status = ixl_clock_in_i2c_byte(pf, data); in ixl_read_i2c_byte_bb()
514 status = ixl_clock_out_i2c_bit(pf, nack); in ixl_read_i2c_byte_bb()
518 ixl_i2c_stop(pf); in ixl_read_i2c_byte_bb()
523 ixl_i2c_bus_clear(pf); in ixl_read_i2c_byte_bb()
527 ixl_dbg(pf, IXL_DBG_I2C, "I2C byte read error - Retrying\n"); in ixl_read_i2c_byte_bb()
529 ixl_dbg(pf, IXL_DBG_I2C, "I2C byte read error\n"); in ixl_read_i2c_byte_bb()
545 ixl_write_i2c_byte_bb(struct ixl_pf *pf, u8 byte_offset, in ixl_write_i2c_byte_bb() argument
548 struct i40e_hw *hw = &pf->hw; in ixl_write_i2c_byte_bb()
559 ixl_i2c_start(pf); in ixl_write_i2c_byte_bb()
561 status = ixl_clock_out_i2c_byte(pf, dev_addr); in ixl_write_i2c_byte_bb()
565 status = ixl_get_i2c_ack(pf); in ixl_write_i2c_byte_bb()
569 status = ixl_clock_out_i2c_byte(pf, byte_offset); in ixl_write_i2c_byte_bb()
573 status = ixl_get_i2c_ack(pf); in ixl_write_i2c_byte_bb()
577 status = ixl_clock_out_i2c_byte(pf, data); in ixl_write_i2c_byte_bb()
581 status = ixl_get_i2c_ack(pf); in ixl_write_i2c_byte_bb()
585 ixl_i2c_stop(pf); in ixl_write_i2c_byte_bb()
589 ixl_i2c_bus_clear(pf); in ixl_write_i2c_byte_bb()
593 ixl_dbg(pf, IXL_DBG_I2C, "I2C byte write error - Retrying\n"); in ixl_write_i2c_byte_bb()
595 ixl_dbg(pf, IXL_DBG_I2C, "I2C byte write error\n"); in ixl_write_i2c_byte_bb()
611 ixl_read_i2c_byte_reg(struct ixl_pf *pf, u8 byte_offset, in ixl_read_i2c_byte_reg() argument
614 struct i40e_hw *hw = &pf->hw; in ixl_read_i2c_byte_reg()
633 ixl_dbg(pf, IXL_DBG_I2C, "I2C byte read error\n"); in ixl_read_i2c_byte_reg()
641 ixl_write_i2c_byte_reg(struct ixl_pf *pf, u8 byte_offset, in ixl_write_i2c_byte_reg() argument
644 struct i40e_hw *hw = &pf->hw; in ixl_write_i2c_byte_reg()
650 status = ixl_read_i2c_byte_reg(pf, byte_offset + 1, dev_addr, &upperbyte); in ixl_write_i2c_byte_reg()
669 ixl_dbg(pf, IXL_DBG_I2C, "I2C byte write error\n"); in ixl_write_i2c_byte_reg()
699 ixl_read_i2c_byte_aq(struct ixl_pf *pf, u8 byte_offset, in ixl_read_i2c_byte_aq() argument
702 struct i40e_hw *hw = &pf->hw; in ixl_read_i2c_byte_aq()
713 ixl_dbg(pf, IXL_DBG_I2C, "I2C byte read status %s, error %s\n", in ixl_read_i2c_byte_aq()
725 ixl_write_i2c_byte_aq(struct ixl_pf *pf, u8 byte_offset, in ixl_write_i2c_byte_aq() argument
728 struct i40e_hw *hw = &pf->hw; in ixl_write_i2c_byte_aq()
738 ixl_dbg(pf, IXL_DBG_I2C, "I2C byte write status %s, error %s\n", in ixl_write_i2c_byte_aq()