static void ov5640_powerup_sequence(struct ov5640_dev *sensor)
 {
        if (sensor->pwdn_gpio) {
-               gpiod_set_value_cansleep(sensor->reset_gpio, 0);
+               gpiod_set_value_cansleep(sensor->reset_gpio, 1);
 
                /* camera power cycle */
                ov5640_power(sensor, false);
-               usleep_range(5000, 10000);
+               usleep_range(5000, 10000);      /* t2 */
                ov5640_power(sensor, true);
-               usleep_range(5000, 10000);
-
-               gpiod_set_value_cansleep(sensor->reset_gpio, 1);
-               usleep_range(1000, 2000);
+               usleep_range(1000, 2000);       /* t3 */
 
                gpiod_set_value_cansleep(sensor->reset_gpio, 0);
        } else {
                ov5640_write_reg(sensor, OV5640_REG_SYS_CTRL0,
                                 OV5640_REG_SYS_CTRL0_SW_RST);
        }
-       usleep_range(20000, 25000);
+       usleep_range(20000, 25000);     /* t4 */
 
        /*
         * software standby: allows registers programming;