Port I2C code from Arduino to Sercom
So on Arduino it seems like two packets are written (0x6b then 0x0). This is not the case. To start up the sensor needs to send one single package with two bytes value. After I changed the code to reflect that the sensor started working and I could read values.

enum status_code powerOnStatus;
{
    uint8_t retryCount = 0;

    static uint8_t buffer[2] = { 0x6b, 0x0 }; // power on packet
    struct i2c_master_packet packet = {
        .address = 0x68,
        .data = buffer,
        .data_length = 2,
    };

    while ((powerOnStatus = i2c_master_write_packet_wait(&amp;module, &amp;packet)) != STATUS_OK)
    {
        if (++retryCount &gt;= maxRetries) break;
    }
}


I wrote about other issues I ran into while porting the code here.