SceOled

Resources
TODO: move to OLED.


 * Datasheets:
 * AMS495QA04 (very useful: hardware + driver API): [[File:AMS495QA04_Ver2.0_20121113_201509238327.pdf]]
 * AMS495QA01 (hardware, not very useful): [[File:AMS495QA01_datasheet.pdf]]
 * Baremetal OLED usage: https://github.com/xerpi/vita-baremetal-sample/blob/master/src/oled.c
 * Linux driver of a similar screen: http://elixir.free-electrons.com/linux/latest/source/drivers/gpu/drm/panel/panel-samsung-ld9040.c#L37
 * Some interesting paper explaining how the gamma lookup table is generated: http://proceedings.spiedigitallibrary.org/proceeding.aspx?articleid=1343918
 * DCS documentation: https://www.tonylabs.com/wp-content/uploads/MIPI_DCS_specification_v1.02.00.pdf

Types
A  is a contiguous array of   of different sizes. To get the next  of a queue, do:

ksceOledWaitReady
Waits until the OLED has been initialized.

ksceOledForDriver_2F0C4B67
Sends a command to the OLED.

ksceOledGetBrightness
Get the wide brightness value.

ksceOledForDriver_E30604CC
Dispatches the OLED cmd list (using ksceOledForDriver_2F0C4B67).

ksceOledSetBrightness
Set the brightness (brightness needs to be in the range ). means screen turned off,  means screen dimmed (like if you wait for a long time without touching your screen).

The brightness has actually 17 different values: 1 special value for, and 16 different values for the rest.