However, there are things about which I'm not sure that they're exactly correct.
Popular revisions of WG12232 display are "A","C","D","E" are all somewhat different from one to another.
WG12232 could carry one or two driver IC dies, "O" revision is supplied with two Avant SBN1661G.
There are few signals in the interface that change behavior between revisions.
"A") Die selection signals "CS1","CS2" active on falling edge or low level;
"C") Die selection signals "CS1","CS2" active on falling edge or low level; Needs positive "E" enable signal + 2kHz external clock on "CL".
"E") Die selection signals "CS1","CS2" active on rising edge or high level; Needs positive "E" enable signal + 2kHz external clock on "CL".
"J") Die selection signals "CS1","CS2" active on rising edge or high level; "CL" is used for negative voltage supply.
"D") Has no die selection signals "CS1","CS2", instead of this it has individual strobes "E1" and "E2" which are active presumably on rising edge or high level.
and finally
"O") Die selection signals "CS1","CS2" active on falling edge or low level; Needs positive "E" enable signal. Probably needs 2kHz external clock on "CL", this is under question.
I'm not sure about the polarity of "CS1","CS2","E" for WG12232O and if it really needs 2kHz on "CL" pin.
Also, the initialization sequence is under question: u8glib issues some commands that seem correct, but I don't know if that is enough for "O" revision.