I asked our CPU board supplier about this and they asked Freescale.
They noted that the Freescale Reference Design has 4k7 pullups on the I2C pins, which meets the 0.8mA specification, but is miles away from the standard I2C specification.
Freescale got back to them rapidly with the following answer:
1.
Values of load current in the Datasheet relate to some typical
configurations, in particular - in order to guarantee specified
output voltages. For more accurate (application depended)
estimations IBIS models should be applied.
I managed to find the 776,000 line IBIS file and opened it with Wordpad, not the best tool for the job.
So instead of the question "what's the maximum pin current" taking a minute to answer, it has taken hours and hours.
Here are the results extracted from the IBIS file.
For one of the I2C Pins (I2C-2 SCL, which is GPIO_4), and which
defaults to "High Drive":
GPIO_4 uhvio
[Model Selector] uhvio
uhvio_iods0hvf UHVIO, 3.3V, Low Drive
uhvio_iods1hvf UHVIO, 3.3V, Medium Drive
uhvio_iods2hvf UHVIO, 3.3V, High Drive
[Model] uhvio_iods2hvf
| iods2: I/O model - high drive strength
| hvf: high voltage
...
[Voltage Range] 3.3000V 3.0000V 3.6000V
[Pulldown]
|Voltage I(typ) I(min) I(max)
|
...
-0.19 -12.2959mA -8.2441mA -16.6348mA
-0.08 -5.1214mA -3.3983mA -6.9954mA
0.03 1.8799mA 1.2340mA 2.5917mA
0.14 8.4088mA 5.4631mA 11.6855mA
0.25 14.3088mA 9.2041mA 20.0270mA
0.36 19.4973mA 12.4231mA 27.4560mA
0.47 23.8753mA 15.0837mA 33.7604mA
[Model] uhvio_iods0hvf
[Pulldown]
0.14 2.8408mA 1.8389mA 3.9678mA
[Model] uhvio_iods1hvf
[Pulldown]
0.14 5.6403mA 3.6582mA 7.8569mA
That gives a minimum of 5.46mA at 0.14V when set to "High Drive" which is 10 times the Data Sheet specification of 0.8mA at 0.15V. 0.8mA is only 44% of the minimum "Low Drive" setting.
So it isn't at all obvious where Freescale got their "0.8mA" figure from. That figure is somewhere between misleading and wrong.
[Model] uhvio_iods1hvf
[Pulldown]
0.14 5.6403mA 3.6582mA 7.8569mA
That gives a minimum of 5.46mA at 0.14V when set to the power-up default for this pin of "High Drive". That value is 10 times the Data Sheet specification of 0.8mA at 0.15V. So maybe it is meant to show the "Low Drive" figure? But 0.8mA is only 44% of the minimum "Low Drive" setting.
It isn't at all obvious where Freescale got their "0.8mA" figure from.
The GPIO Output Voltages and currents are also highly dependant on the Drive Settings. The minimum current at the three drive levels at 0.14V is 1.8, 3.6 and 5.5mA. It would help a lot if this was detailed in the Data Sheet.
Tom