Lines Matching refs:i2cctl
13 static bool igc_get_i2c_data(u32 *i2cctl) in igc_get_i2c_data() argument
19 if (*i2cctl & IGC_I2C_DATA_IN) in igc_get_i2c_data()
35 static s32 igc_set_i2c_data(struct igc_hw *hw, u32 *i2cctl, bool data) in igc_set_i2c_data() argument
42 *i2cctl |= IGC_I2C_DATA_OUT; in igc_set_i2c_data()
44 *i2cctl &= ~IGC_I2C_DATA_OUT; in igc_set_i2c_data()
46 *i2cctl &= ~IGC_I2C_DATA_OE_N; in igc_set_i2c_data()
47 *i2cctl |= IGC_I2C_CLK_OE_N; in igc_set_i2c_data()
48 IGC_WRITE_REG(hw, IGC_I2CPARAMS, *i2cctl); in igc_set_i2c_data()
54 *i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS); in igc_set_i2c_data()
55 if (data != igc_get_i2c_data(i2cctl)) { in igc_set_i2c_data()
70 static void igc_raise_i2c_clk(struct igc_hw *hw, u32 *i2cctl) in igc_raise_i2c_clk() argument
74 *i2cctl |= IGC_I2C_CLK_OUT; in igc_raise_i2c_clk()
75 *i2cctl &= ~IGC_I2C_CLK_OE_N; in igc_raise_i2c_clk()
76 IGC_WRITE_REG(hw, IGC_I2CPARAMS, *i2cctl); in igc_raise_i2c_clk()
90 static void igc_lower_i2c_clk(struct igc_hw *hw, u32 *i2cctl) in igc_lower_i2c_clk() argument
94 *i2cctl &= ~IGC_I2C_CLK_OUT; in igc_lower_i2c_clk()
95 *i2cctl &= ~IGC_I2C_CLK_OE_N; in igc_lower_i2c_clk()
96 IGC_WRITE_REG(hw, IGC_I2CPARAMS, *i2cctl); in igc_lower_i2c_clk()
111 u32 i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS); in igc_i2c_start() local
116 igc_set_i2c_data(hw, &i2cctl, 1); in igc_i2c_start()
117 igc_raise_i2c_clk(hw, &i2cctl); in igc_i2c_start()
122 igc_set_i2c_data(hw, &i2cctl, 0); in igc_i2c_start()
127 igc_lower_i2c_clk(hw, &i2cctl); in igc_i2c_start()
141 u32 i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS); in igc_i2c_stop() local
146 igc_set_i2c_data(hw, &i2cctl, 0); in igc_i2c_stop()
147 igc_raise_i2c_clk(hw, &i2cctl); in igc_i2c_stop()
152 igc_set_i2c_data(hw, &i2cctl, 1); in igc_i2c_stop()
167 u32 i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS); in igc_clock_in_i2c_bit() local
171 igc_raise_i2c_clk(hw, &i2cctl); in igc_clock_in_i2c_bit()
176 i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS); in igc_clock_in_i2c_bit()
177 *data = igc_get_i2c_data(&i2cctl); in igc_clock_in_i2c_bit()
179 igc_lower_i2c_clk(hw, &i2cctl); in igc_clock_in_i2c_bit()
216 u32 i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS); in igc_clock_out_i2c_bit() local
220 status = igc_set_i2c_data(hw, &i2cctl, data); in igc_clock_out_i2c_bit()
222 igc_raise_i2c_clk(hw, &i2cctl); in igc_clock_out_i2c_bit()
227 igc_lower_i2c_clk(hw, &i2cctl); in igc_clock_out_i2c_bit()
252 u32 i2cctl; in igc_clock_out_i2c_byte() local
266 i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS); in igc_clock_out_i2c_byte()
268 i2cctl |= IGC_I2C_DATA_OE_N; in igc_clock_out_i2c_byte()
269 IGC_WRITE_REG(hw, IGC_I2CPARAMS, i2cctl); in igc_clock_out_i2c_byte()
285 u32 i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS); in igc_get_i2c_ack() local
291 igc_raise_i2c_clk(hw, &i2cctl); in igc_get_i2c_ack()
299 i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS); in igc_get_i2c_ack()
300 if (i2cctl & IGC_I2C_CLK_IN) in igc_get_i2c_ack()
303 if (!(i2cctl & IGC_I2C_CLK_IN)) in igc_get_i2c_ack()
306 ack = igc_get_i2c_data(&i2cctl); in igc_get_i2c_ack()
312 igc_lower_i2c_clk(hw, &i2cctl); in igc_get_i2c_ack()
520 u32 i2cctl = IGC_READ_REG(hw, IGC_I2CPARAMS); in igc_i2c_bus_clear() local
527 igc_set_i2c_data(hw, &i2cctl, 1); in igc_i2c_bus_clear()
530 igc_raise_i2c_clk(hw, &i2cctl); in igc_i2c_bus_clear()
535 igc_lower_i2c_clk(hw, &i2cctl); in igc_i2c_bus_clear()