{
        u8 val;
 
-       /* Power-up OV10640 by setting RESETB and PWDNB pins high. */
+       /* Enable GPIO0#0 (reset) and GPIO1#0 (pwdn) as output lines. */
        ov490_write_reg(dev, OV490_GPIO_SEL0, OV490_GPIO0);
        ov490_write_reg(dev, OV490_GPIO_SEL1, OV490_SPWDN0);
        ov490_write_reg(dev, OV490_GPIO_DIRECTION0, OV490_GPIO0);
        ov490_write_reg(dev, OV490_GPIO_DIRECTION1, OV490_SPWDN0);
+
+       /* Power up OV10640 and then reset it. */
+       ov490_write_reg(dev, OV490_GPIO_OUTPUT_VALUE1, OV490_SPWDN0);
+       usleep_range(1500, 3000);
+
+       ov490_write_reg(dev, OV490_GPIO_OUTPUT_VALUE0, 0x00);
+       usleep_range(1500, 3000);
        ov490_write_reg(dev, OV490_GPIO_OUTPUT_VALUE0, OV490_GPIO0);
-       ov490_write_reg(dev, OV490_GPIO_OUTPUT_VALUE0, OV490_SPWDN0);
        usleep_range(3000, 5000);
 
        /* Read OV10640 ID to test communications. */