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.

Transition from Linux v3.2 platform files to v3.14 devicetree format. Framebuffer not found.

I'm trying to transition existing code written under SDK v6.0 to the new Processor SDK v1.0.

I have as custom board cloning the original beaglebone with an Ortus resistive touch LCD.

These are the changes that I made to the original code to get the framebuffer device and the LCD panel to work correctly.

Changes to board-am335xevm.c

static struct lcd_ctrl_config lcd_cfg_16 = {
	&disp_panel_16,
	.ac_bias		= 255,
	.ac_bias_intrpt		= 0,
	.dma_burst_sz		= 16,
	.bpp			= 16,
	.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,
};


struct da8xx_lcdc_platform_data Ortus_COM35T3M09XTC_pdata = {
	.manu_name		= "Ortustech",
	.controller_data	= &lcd_cfg_16,
	.type			= "Ortus_COM35T3M09XTC",
};



/* Custom board based on Beaglebone Rev A3 and after*/
static struct evm_dev_cfg beaglebone_dev_cfg[] = {
	{am335x_rtc_init, DEV_ON_BASEBOARD, PROFILE_NONE},
	{clkout2_enable, DEV_ON_BASEBOARD, PROFILE_NONE},
	{tps65217_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
	{mii1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
	{lcdc_16_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
	{mfd_tscadc_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
	{usb0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
	{usb1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
	{mmc1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
	{mmc0_no_cd_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
	{NULL, 0, 0},
};

Addition to video driver da8xx-fb.c

static struct da8xx_panel known_lcd_panels[] = {

...
	/* Ortustech COM35T3M09XTC */
	[3] = {
		.name = "Ortus_COM35T3M09XTC",
		.width = 240,
		.height = 320,
		.hfp = 44,
		.hbp = 1,
		.hsw = 2,
		.vfp = 3,
		.vbp = 1,
		.vsw = 2,
		.pxl_clk = 5600000,
		.invert_pxl_clk = 0,
	},

...
};

Addition to modedb.c

	/* 240x320 @ 60 Hz, 5.6 kHz hsync, 3:4 aspect ratio */
	{ NULL, 60, 240, 320, 56000, 44, 2, 3, 2, 1, 48, 1, 0,
		FB_VMODE_DOUBLE },

I am having no success getting the fb0 device to create itself in the new DRM .dts framework.

I've added the following to the am335x-bone-common.dtsi file:

	panel {
		compatible = "ti,tilcdc,panel";
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&lcd_pins_default>;
		panel-info {
			ac-bias           = <255>;
			ac-bias-intrpt    = <0>;
			dma-burst-sz      = <16>;
			bpp               = <16>;
			fdd               = <0x80>;
			sync-edge         = <0>;
			sync-ctrl         = <1>;
			raster-order      = <0>;
			fifo-th           = <0>;
		};

		display-timings {
			240x320p60 {
				hactive         = <240>;
				vactive         = <320>;
				hback-porch     = <1>;
				hfront-porch    = <44>;
				hsync-len       = <2>;
				vback-porch     = <1>;
				vfront-porch    = <3>;
				vsync-len       = <2>;
				clock-frequency = <5600000>;
				hsync-active    = <0>;
				vsync-active    = <0>;
			};
		};

	tscadc {
		compatible = "ti-tscadc-dt";

		ti,hwmods = "adc_tsc";

		tsc-wires = <4>;
		tsc-x-plate-resistance = <200>;
		tsc-steps = <5>;

		adc-channels = <4>;
	};



	lcd_pins_default: lcd_pins_default {
		pinctrl-single,pins = <
			0x20 0x01	/* gpmc_ad8.lcd_data16, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
			0x24 0x01	/* gpmc_ad9.lcd_data17, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
			0x28 0x01	/* gpmc_ad10.lcd_data18, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
			0x2c 0x01	/* gpmc_ad11.lcd_data19, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
			0x30 0x01	/* gpmc_ad12.lcd_data20, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
			0x34 0x01	/* gpmc_ad13.lcd_data21, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
			0x38 0x01	/* gpmc_ad14.lcd_data22, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
			0x3c 0x01	/* gpmc_ad15.lcd_data23, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
			0xa0 0x08	/* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xa4 0x08	/* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xa8 0x08	/* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xac 0x08	/* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xb0 0x08	/* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xb4 0x08	/* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xb8 0x08	/* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xbc 0x08	/* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xc0 0x08	/* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xc4 0x08	/* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xc8 0x08	/* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xcc 0x08	/* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xd0 0x08	/* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xd4 0x08	/* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xd8 0x08	/* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xdc 0x08	/* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
			0xe0 0x00	/* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
			0xe4 0x00	/* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
			0xe8 0x00	/* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
			0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
		>;
	};
	

However, during kernel startup, I see

[1.582480] [drm] Initialized drm 1.1.0 20060810

but I see no other acknowledgement of the LCD device.

When I start executing my processes I immediately see 

INIT: version 2.88 booting

Error opening /dev/fb0: No such file or directory.

I'm looking for advice in changes to the .dts file and/or the singlecore-omap2plus-defconfig file to get my framebuffer recognized.

Any suggestions or help would be appreciated.

David