This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

unable bring up LCD with AM335x in LIDD mode

Other Parts Discussed in Thread: TFP410

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.