Hi Paul
This is the K53 TFT configuration in the uTasker project:
#define GLCD_COMMAND_ADDR 0x60400000
#define GLCD_DATA_ADDR 0x60410000
_CONFIG_PERIPHERAL(A, 9, (PA_9_FB_AD16 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(A, 10, (PA_10_FB_AD15 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(A, 24, (PA_24_FB_AD14 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(A, 25, (PA_25_FB_AD13 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(A, 26, (PA_26_FB_AD12 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(A, 27, (PA_27_FB_AD11 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(A, 28, (PA_28_FB_AD10 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(D, 10, (PD_10_FB_AD9 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(D, 11, (PD_11_FB_AD8 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(D, 12, (PD_12_FB_AD7 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(D, 13, (PD_13_FB_AD6 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(D, 14, (PD_14_FB_AD5 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(E, 8, (PE_8_FB_AD4 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(E, 9, (PE_9_FB_AD3 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(E, 10, (PE_10_FB_AD2 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(E, 11, (PE_11_FB_AD1 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(E, 12, (PE_12_FB_AD0 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(E, 7, (PE_7_FB_CS0 | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
_CONFIG_PERIPHERAL(D, 15, (PD_15_FB_RW | PORT_DSE_HIGH | PORT_PS_DOWN_ENABLE));
CSAR0 = GLCD_COMMAND_ADDR; \
CSMR0 = (0x00010000 | FB_CS_VALID); \
CSCR0 = (FB_BLS | FB_AA | PORT_SIZE_16);
I didn't spot any differences.
- Note that CSCR0 PS value of 2 is the 16 bit setting. A setting of 3 may work but such a setting is not defined as a valid one and so should be avoided.
- Block size is set by 0x00010000 in SMSR0 - matching the command/address setting where FB_AD16 is then used as command/data selection.
- The FlexBus clock is derived from the core clock divided by the value in CLKDIV1 (DIV3) as you have shown - see the uTasker simulator output below which emulates the K53 and a TFT and also displays the clock values that the code is setting. Its pin emulator displays the selected MUX values so that this can be checked (example of hovering the mouse over the PTD10 (the FB_AD9 function)
Regards
Mark

uTasker GLCD library with Kinetis and Display simulation: http://www.utasker.com/docs/uTasker/uTaskerLCD.PDF
Videos: https://youtu.be/AdtRyQ-2IrE / https://youtu.be/2Rbz1SOoJVI
uTasker developer and supporter (+5'000 hours experience on +60 Kinetis derivatives in +80 product developments)
Kinetis: http://www.utasker.com/kinetis.html