The following was taken from the above and has been updated for 12.0 and QSys. (Note that the component name was changed from opencores_i2c (used in the 9.1 version above) to i2c_opencores.) Also note that the _sw.tcl file in the v13.0 zip file uses the wrong naming convention, it uses the old name of opencores_i2c throughout the tcl assignments when it should use the new name of i2c_opencores to match all other files in the v13.0 zip. Failing to fix this in the v13.0 zip results in the driver not being loaded during BSP generation.
Arria-10 compiles with bidirectional pins requires the /*synthesis keep*/ directive. See this link for more information and to resolve the issue: https://www.altera.com/support/support-resources/knowledge-base/solutions/rd01262015_264.html (Note that after applying the workaround, the warnings are still issued during the Quartus compile. Use the post fitting technology viewer to verify the correct signal is connected to the output enable. If the directive is not used the constant zero will erroneously be tied to the output enable when it should be tied to the input) (Problem exists in Quartus 188.8.131.52 and earlier for Arria-10)