outsource i2c clock generation in an extra procedure