We are trying to add new TFT LCD with 8-bit mode(LIDD)
I am new to LCD driver with TI LCDC. As mentioned in wiki--Linux LCDC Porting Guide --
we started with as per the pin-mux in the dts(am335x-evmsk.dts) :
lcd_pins_default: lcd_pins_default {
pinctrl-single,pins = <
0xe0 ( PIN_OUTPUT | MUX_MODE0 ) /* (U5) lcd_vsync.lcd_vsync */
0xe4 ( PIN_OUTPUT | MUX_MODE0 ) /* (R5) lcd_hsync.lcd_hsync */
0xa0 ( PIN_INPUT | MUX_MODE0 ) /* (R1) lcd_data0.lcd_data0 */
0xa4 ( PIN_INPUT | MUX_MODE0 ) /* (R2) lcd_data1.lcd_data1 */
0xa8 ( PIN_INPUT | MUX_MODE0 ) /* (R3) lcd_data2.lcd_data2 */
0xac ( PIN_INPUT | MUX_MODE0 ) /* (R4) lcd_data3.lcd_data3 */
0xb0 ( PIN_INPUT | MUX_MODE0 ) /* (T1) lcd_data4.lcd_data4 */
0xb4 ( PIN_INPUT | MUX_MODE0 ) /* (T2) lcd_data5.lcd_data5 */
0xb8 ( PIN_INPUT | MUX_MODE0 ) /* (T3) lcd_data6.lcd_data6 */
0xbc ( PIN_INPUT | MUX_MODE0 ) /* (T4) lcd_data7.lcd_data7 */
0xec ( PIN_OUTPUT | MUX_MODE0 ) /* (R6) lcd_ac_bias_en.lcd_ac_bias_en */
>;
};
lcd_pins_sleep: lcd_pins_sleep {
pinctrl-single,pins = <
0xe0 (PIN_INPUT_PULLDOWN ) /* (U5) lcd_vsync.lcd_vsync */
0xe4 (PIN_INPUT_PULLDOWN ) /* (R5) lcd_hsync.lcd_hsync */
0xa0 (PIN_INPUT_PULLDOWN ) /* (R1) lcd_data0.lcd_data0 */
0xa4 (PIN_INPUT_PULLDOWN ) /* (R2) lcd_data1.lcd_data1 */
0xa8 (PIN_INPUT_PULLDOWN ) /* (R3) lcd_data2.lcd_data2 */
0xac (PIN_INPUT_PULLDOWN ) /* (R4) lcd_data3.lcd_data3 */
0xb0 (PIN_INPUT_PULLDOWN ) /* (T1) lcd_data4.lcd_data4 */
0xb4 (PIN_INPUT_PULLDOWN ) /* (T2) lcd_data5.lcd_data5 */
0xb8 (PIN_INPUT_PULLDOWN ) /* (T3) lcd_data6.lcd_data6 */
0xbc (PIN_INPUT_PULLDOWN ) /* (T4) lcd_data7.lcd_data7 */
0xec (PIN_INPUT_PULLDOWN) /* (R6) lcd_ac_bias_en.lcd_ac_bias_en */
>;
};
then changed the fbdev entry:
panel {
compatible = "ti,tilcdc,panel";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&lcd_pins_default>;
pinctrl-1 = <&lcd_pins_sleep>;
status = "okay";
panel-info {
ac-bias = <255>;
ac-bias-intrpt = <0>;
dma-burst-sz = <16>;
bpp = <8>; (8-bit mode so modified to 8 - remaining we dont know so we left as it is)
fdd = <0x80>;
sync-edge = <0>;
sync-ctrl = <1>;
raster-order = <0>;
fifo-th = <0>;
};
display-timings {
128x160 {
hactive = <128>; (our lcd is 128/160 )
vactive = <160>;
hback-porch = <4>; (in the datasheet --not mentioned about these so we set 4 for test )
hfront-porch = <4>;
hsync-len = <4>;
vback-porch = <4>;
vfront-porch = <4>;
vsync-len = <10>;
clock-frequency = <6000000>; (pclk-> RD line and read cycle is 160ns so we updated )
hsync-active = <0>; (i saw some thing pclk = lcd-clk / clkdiv )
vsync-active = <0>; ( some where resolution x bitrate x something it was 12MHZ so we are in confusion in clock setting)
};
};
these are changes we done. we are sending "HELLO" to /dev/fb0 we are not getting anything on LCD.
Then we got few doubts:
1. we are ST7735r TFT LCD - do we need to write any driver for this TFT LCD and where to update TI-LCDC register configurations to 8-bit mode.
2. DRM - we thought for graphic support - so we didnt find for this.
In few post-discussion in this fourm -- Tilcdc panel is the generic driver and it is using DRM to allocate memory and also initialise tfp410 encoder.
Here we block with all side - unable to step forward -- to bringup ST7735R LCD.
So can u plz suggest :
1. where we step wrong or we left any thing .
2. do we need to write any separate fb-driver(in "/drivers/videos/fbdev") for ST7735R (one point is sure we have to use tilcdc). if so how can we link that might in dts file only.
note: we tried a dummy fb-driver and updated in dts with "ti,tilcdc,st7735r" and samething given in the st7735rfb - driver it was so loaded- but
with pin-mux change or this change - Start PVR... came then bootlog/kernel wascrashed.
3. in gpu/drm/tilcdc - do we need to add or change for the st7735r or lcdc config.
Please any once suggest , how to step forward...in bringup the new LCD.
regards,
Viswanath.