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.

Configuration of 8 Bit LCD (8080) in Custom board

Hello TI,

           We have a custom board on which we are running 3.14 linux. The LCD used is PH128160T-066-L03Q. This works with 8-bit, 8080 mode.

Now I need to configure my DTS for LCD for this mode. Please let me know which all files I have to change. I changed the DTS as follows. I doubt about my panel setting in my DTS.

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               = <32>;
            fdd               = <0x80>;
            sync-edge         = <0>;
            sync-ctrl         = <1>;
            raster-order      = <0>;
            fifo-th           = <0>;
        };

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 */
        >;
    };

Regards,

Sanju.

  • Hi Sanju,

    I don't think that there is a driver for LIDD mode included in the Linux SDK.

  • Hello Biser,
    This is scary situation for me :) We have a custom board with LCD connected in this mode. Can you please suggest what would be the easy way out to bring up LCD. Also I have read in few other post that AM335x do support this mode. Yes!!! it is avaliable in AM335x Datasheet also. Now how do we make this LCD configuration in Linux 3.14 version.

    Regards,
    Sanju.
  • Adding to Above, an simple 8080, 8 bit, GIPO driver will also do .. But I am not able to find any similar driver which can be taken as the reference and change the PINMUX. Any refernce to such driver. ??

    Regards,
    Sanju.
  • The factory team is checking if we have a solution for this. This thread will be updated when there is feedback available.

  • LIDD mode isn't something we support in our SDK. But someone from the Beagle community got it working on the 3.2 kernel years ago.

    e2e.ti.com/.../1050977

    The TILCDC uses the DRM driver while the driver that the person created in the beagle community was based on the old FBDEV driver (da8xx-fb) driver.
  • Hello TI,

             We could bring up the LCD using FBTFT framework (Library). This is completely GPIO based. And now our LCD TFT is working fine.

    Thank you so much for your support. We can close this discussion.

    Regards,

    Sanju.

  • Hello Sanju,

    Could you please let me know if your LCD is displayed fast enough?

    My customer also attached LCD using GPIO well, but could not use it because LCD display was too slow.
    So, I want to check if this is normal or implementation issue can be improved.

    Thanks and Best Regards,
    SI.
  • Hello Sung IL,
    Sorry for the late reply.. I was on a long vacation. yes, We have no performance issue when we used GPIO based LCD using FB TFT lib.. We were running QT based application which had transition between windows. Yes of course we have not tried streaming videos which I am not aware of.. Hope this helps you or you might have already done with your decision.. Happy bring up :)

    Regards,
    Sanju.
  • Hi Sanju,

     

    Thanks for your response and fruitful comments.

    This would be very halpful.

    May I ask your test environment? - CPU clock of AM335x, SDK version, and so on?

    And have you tune GPIO timing for LCD?

     

    Thanks and Best Regards,

    SI.

  • Hello SI,
    The SDK version used was 8.0 and we had ported with 5.x also.. We migrated to 8.x for some other feature. And to be frank we had not tuned any CPU clock also.. The default configuration available from TI port was used.

    Regarding GPIO Tune.. No we had not done this, again default was used.. Only Pin Configuration was done. Below is the working DTS configuration for the same.

    itdb28 {
    compatible = "ph,ph128160";
    status = "okay";

    rotate = <90>;
    bgr;
    buswidth = <8>;
    rd-gpios = <&gpio2 24 0>;
    dc-gpios = <&gpio2 22 0>;
    cs-gpios = <&gpio2 25 0>;
    wr-gpios = <&gpio2 23 0>;
    db-gpios = <&gpio2 6 0>,
    <&gpio2 7 0>,
    <&gpio2 8 0>,
    <&gpio2 9 0>,
    <&gpio2 10 0>,
    <&gpio2 11 0>,
    <&gpio2 12 0>,
    <&gpio2 13 0>;
    /* LED pin drives backlight directly. Use transistor (50mA) */
    /* led-gpios = <&gpio2 4 1>; */
    debug = <1>;
    };

    Regards,
    Sanju.
  • Hi Sanju,Great thanks for your prompt response.
    your answer should help on our implementation.Thanks for your help again!
    Thanks and Best Regards,SI.