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.
