What small IC could give switchable I2C pullups?

I would suggest "prebiased" BJTs

Dual MOSFETs tend to have a lot of Drain-Source capacitance which will affect the rise time of your I2C bus. BJT switching transistors tend to have less. For example, these ones have Cob of only 3pF typically at 10V (it will be 2-3 times higher at low voltage, which they don't tell you and you're supposed to know) but that's still pretty modest. Add the pullup resistors to the collectors, the emitters to Vdd, and connect the bases to your /enable line and you're done (one part plus the resistors, and the package is only 2.0 x 2.1mm). Very cheap in volume, and not much worry about ESD.

enter image description here

schematic

simulate this circuit – Schematic created using CircuitLab


So why not MOSFETs?

They're lower resistance, right? Well the saturated BJTs will drop 50~100mV most likely at the currents you'll be using them (compares well with 4066 switches), and compare the output capacitance of an FDS6312P MOSFET (Coss)- typically several hundred pF near 0V, which is nearly as high as the 400pF maximum for all devices on the bus itself.

enter image description here


One option is two P-Channel MOSFETS. These can be connected as follows:

schematic

simulate this circuit – Schematic created using CircuitLab

Basically, if you use logic level MOSFETS you can feed the EN_n (not-enable) signal with +V volts to disable the pull-up resistors, and 0V to enable them. When disabled the resistors will essentially not be there. You will have body diodes from the I2C lines to V+, but those shouldn't cause any issue.

As @bitsmack points out, you could also add an optional pull-up resistor (R3) on the EN_n pin which would keep the MOSFETS disabled if the pin is left floating. This would allow the input to be open drain - simply short to ground to enable, or leave floating to disable.

It is possible to get very small (SOT23-6 or SOT23-5) packages which contain two P-Ch MOSFETS (e.g. this) which can then be wired up as shown above - usually they are arranged in ways which make routing quite simple. You can basically join the gates together and sources together making a very small essentially 4-pin package. Even if you throw in the pull-up resistor as say an 0603, the whole circuit would probably be smaller than a 2x2pin 0.1" jumper.


Practical approach

All the breakout boards I'm plugging together are under my control [...]

Keep it simple. Rip out the I2C pull-up resistors from every breakout board that you have. Install pull-up resistors with reasonable values on the microcontroller board.

my basic desire is to be able to turn-on the PU where I want it with a single jumper rather than 2

Trying to reduce the number of jumpers from 2 to one is lots of do beyond diminishing returns, if I may say so myself.

If a practical approach does not appeal

You can do something along the lines of active constant-current pull-up circuit.

active constant-current I2C pull-up

\$I=\cfrac{V_Z-0.65}{R_{307}}\$

\$R_{307}=R_{308}\$

Any general-purpose small-signal PNP transistor would do.