i2c pull up resistor
As the number of devices connected to the bus increases, the bus capacitance also increases (I think the maximum allowable capacitance is 400pf).
All the ICs connected to the I2C bus can drive either drive it to logic 0 or Z.
To bring the bus to a logic 1, a pull up resistor is connected on SDA and SCL lines.
If the value of resistance is less, more current flows from the supply to quickly charge the bus capacitance. i.e., the bus reaches logic 1 very quickly.
But if the pull up resistor value is too low, it will act like a short circuit when the device connected to it is trying to drive the bus to logic 0.
So, if the bus capacitance is between 200pf to 400pf, we go for a current source instead of a low resistance pull-up. If the bus capacitance is below 200 pf, we can use pull-up of 1kohm to 10 kohm depending on the load.
the pdf i gave in the link explains everything....