the function buydisplay_init() is never called. It was obvious because the
kernel tells you that: [    1.331512] No display cape found on BeagleBone
just call your function without any "cape" identification and track if
someone tries to use LCD's pins in other functions.


2014-04-23 23:27 GMT+04:00 Mihir Jariwala <[email protected]>:

> I am trying to interface 24bit lcd with BeagleBone containing TI android
> 4.2.2. I have made following changes to board-am335xevm.c kernel 3.2 as in
> the source file of TI
>
> static const struct display_panel custom_pannel = {
> WVGA,
> 24,  //According to the 32bpp display_panel i made it to 24 for my 24 bit
> lcd
> 24,  //which i am using
> COLOR_ACTIVE,
> };
>
> I am using the following lcd_ctrl_config
>
> static struct lcd_ctrl_config lcd1_cfg = {
> &custom_pannel,
> .ac_bias = 255,
> .ac_bias_intrpt = 0,
> .dma_burst_sz = 16,
> .bpp = 24, // 24 bit lcd
> .fdd = 0x80,
> .tft_alt_mode = 0,
> .stn_565_mode = 0,
> .mono_8bit_mode = 0,
> .invert_line_clock = 1,
> .invert_frm_clock = 1,
> .sync_edge = 0,
> .sync_ctrl = 1,
> .raster_order = 0,
> };
>
> following addition to file for my custom display pdata
>
> struct da8xx_lcdc_platform_data buydisplay_pdata = {
> .manu_name = "ThreeFive",
> .controller_data = &lcd1_cfg,
> .type = "buydisplay",
> };
>
> /* Module pin mux for LCDC */
> static struct pinmux_config lcdc_pin_mux[] = {
> {"lcd_data0.lcd_data0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data1.lcd_data1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data2.lcd_data2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data3.lcd_data3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data4.lcd_data4", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data5.lcd_data5", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data6.lcd_data6", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data7.lcd_data7", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data8.lcd_data8", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data9.lcd_data9", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data10.lcd_data10", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data11.lcd_data11", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data12.lcd_data12", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data13.lcd_data13", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data14.lcd_data14", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"lcd_data15.lcd_data15", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
> | AM33XX_PULL_DISA},
> {"gpmc_ad8.lcd_data16", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
> {"gpmc_ad9.lcd_data17", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
> {"gpmc_ad10.lcd_data18", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
> {"gpmc_ad11.lcd_data19", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
> {"gpmc_ad12.lcd_data20", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
> {"gpmc_ad13.lcd_data21", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
> {"gpmc_ad14.lcd_data22", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
> {"gpmc_ad15.lcd_data23", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
> {"lcd_vsync.lcd_vsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
> {"lcd_hsync.lcd_hsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
> {"lcd_pclk.lcd_pclk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
> {"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
> {NULL, 0},
> };
>
> Following is my init file
>
> static void buydisplay_init(int evm_id, int profile)
> {
>
> pr_info("IN : %s \n", __FUNCTION__);
> // setup_pin_mux(lcd_cape_pin_mux);
> setup_pin_mux(lcdc_pin_mux);
>
> if (conf_disp_pll(50000000)) {
> pr_info("Failed configure display PLL, not attempting to"
> "register LCDC\n");
> return;
> }
>
> gpio_request(beaglebone_lcd_avdd_en, "BONE_LCD_AVDD_EN");
> gpio_direction_output(beaglebone_lcd_avdd_en, 1);
>
> if (am33xx_register_lcdc(&buydisplay_pdata))
> pr_info("Failed to register LCDC device\n");
>
>
> pr_info("Setup LCD display\n");
> return;
> }
>
> I have made following changes to da8xxfb.c
> in TI_Android_JB_4.2.2_DevKit_4.1.1/kernel/drivers/video/da8xx-fb.c
>
> under
>
> static struct da8xx_panel known_lcd_panels[] = {
>
> .
>
> .
>
> .
>
> 10] = {
>
>  .name = "buydisplay",
>  .width = 800,
>  .height = 480,
>  .hfp = 40, // 20
>  .hbp = 88, // 54
>  .hsw = 48,
>  .vfp = 13,
>  .vbp = 32,
>  .vsw = 3,
>  .pxl_clk = 50000000,
>  .invert_pxl_clk = 0,
>  },
>
> My cross compile toolchain path is
>
> export
> PATH=/home/mihir/TI_Android_JB_4.2.2_DevKit_4.1.1/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH
>
> and i have compiled the kernel using following command by changing my
> directory to  " TI_Android_JB_4.2.2_DevKit_4.1.1/kernel/ " and compiled my
> kernel using
>
> make ARCH=arm CROSS_COMPILE=arm-eabi- distclean
>
> make ARCH=arm CROSS_COMPILE=arm-eabi- am335x_evm_android_defconfig
>
> make ARCH=arm CROSS_COMPILE=arm-eabi- uImage
>
> The image is successfully getting generated
>
> But there is no display on the LCD which is connected. I have considered
> the errate sheet LCD section for my connections.
>
> By looking into the kernel log the following is noted on terminal
>
>     1.266693] IN : bone_setup_display_daughter_board
> [    1.331512] No display cape found on BeagleBone
> [    1.336730]  da8xx_lcdc.0: alias fck already exists
> [    1.342071] da8xx_lcdc da8xx_lcdc.0: GLCD: Found Sharp_LCD035Q3DG01
> panel
>
> Are there any specific guidelines to adding a custom 24 bit LCD to
> beaglebone ReV A6 running android?
>
> Am I missing any part in kernel compilation?
>
> Can you point out any other files that i need to edit?
>
> --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to the Google Groups
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>



-- 
LinkedIn - http://www.linkedin.com/in/maximpodbereznyy
Company - http://www.linkedin.com/company/mentorel
Facebook - https://www.facebook.com/mentorel.company

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to