I got this working. The problem is in the ILI9320 driver file swap the first register writes for GDISP_ROTATE_90 and GDISP_ROTATE_270 and it should fix the problem. old code: case GDISP_ROTATE_90: acquire_bus(g); write_reg(g, 0x01, 0x0100); #line 331 write_reg(g, 0x03, 0x1030); write_reg(g, 0x60, 0x2700); case GDISP_ROTATE_270: acquire_bus(g); write_reg(g, 0x01, 0x0000); #line 353 write_reg(g, 0x03, 0x1038); write_reg(g, 0x60, 0xA700); new code: case GDISP_ROTATE_90: acquire_bus(g); write_reg(g, 0x01, 0x0000); #line 331 write_reg(g, 0x03, 0x1030); write_reg(g, 0x60, 0x2700); case GDISP_ROTATE_270: acquire_bus(g); write_reg(g, 0x01, 0x0100); #line 353 write_reg(g, 0x03, 0x1038); write_reg(g, 0x60, 0xA700);