Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be077edb authored by Johannes H. Jensen's avatar Johannes H. Jensen Committed by Greg Kroah-Hartman
Browse files

staging: fbtft: fb_ssd1331: fix mirrored display



When the row scan order is reversed (the default) we also need to
reverse the column scan order. This was not done previously, resulting
in a mirrored display.

Also add support for 180 degree display rotation, in which case simply
disable reversed row and column scan order.

Tested on an Adafruit 0.96" mini Color OLED display.

Signed-off-by: default avatarJohannes H. Jensen <joh@pseudoberries.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0088d782
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -26,7 +26,13 @@ static int init_display(struct fbtft_par *par)
	par->fbtftops.reset(par);

	write_reg(par, 0xae); /* Display Off */
	write_reg(par, 0xa0, 0x70 | (par->bgr << 2)); /* Set Colour Depth */

	/* Set Column Address Mapping, COM Scan Direction and Colour Depth */
	if (par->info->var.rotate == 180)
		write_reg(par, 0xa0, 0x60 | (par->bgr << 2));
	else
		write_reg(par, 0xa0, 0x72 | (par->bgr << 2));

	write_reg(par, 0x72); /* RGB colour */
	write_reg(par, 0xa1, 0x00); /* Set Display Start Line */
	write_reg(par, 0xa2, 0x00); /* Set Display Offset */