# Correct Initialization Routine for LCD Panel (HX8357D)

I have acquired a color 320x480 TFT LCD display based on a HX8357D driver. It is an Adafruit 3.5" Touchpanel display. I would like to use it for one of my projects based on Rust. Currently, there are no drivers out there for Rust and therefore I plan to pull one together by altering existing drivers to work (likely target is the st7735-lcd-rs driver).

One of the things that I will need for this is the correct initialization sequence. I have looked at the datasheet for the display (datasheet) and struggled to find a good definitive list of necessary commands to properly initialize the display. Is this just a poorly written datasheet or am I just looking in the wrong place?

There are some drivers out there for the display such as the Linux Kernel (Which is driver variant agnostic and looks a bit dated, so not sure if it is valid for the D variant) and AdaFruit's own library (see line 183 where it defines the initd array. I consider this to be the most authoritative source for the init routine sans the datasheet which is the subject of this post).

These could of course provide me with the necessary routine. However, I would like to find this information from the datasheet. It is very likely that I just do not know how to parse these datasheets as this is the first time I have tried to do this type of thing. How do I get this information from the datasheet? Thanks for any pointers.