Tiny 4412 lcd 驱动分析 2

news/2025/2/11 18:16:45/

/home/yangjia/samba/linux-3.5/arch/arm/mach-exynos/mach-tiny4412.c  。_initdata 定义在此文件中。平台驱动都重要在这里注册。平台驱动是匹配名字的。

static struct platform_device *smdk4x12_devices[] __initdata = {
#ifdef CONFIG_EXYNOS4_DEV_DWMCI&exynos_device_dwmci,
#endif&s3c_device_hsmmc2,&s3c_device_hsmmc3,&wm8994_fixed_voltage0,&wm8994_fixed_voltage1,&wm8994_fixed_voltage2,&s3c_device_i2c0,&s3c_device_i2c1,&s3c_device_i2c2,&s3c_device_i2c3,
#ifdef CONFIG_VIDEO_M5MOLS&s3c_device_i2c4,
#endif&s3c_device_i2c7,&s3c_device_adc,&s3c_device_rtc,&s3c_device_wdt,
#ifdef CONFIG_TINY4412_BUZZER&s3c_device_timer[0],
#endif
#ifdef CONFIG_VIDEO_EXYNOS_FIMC_LITE&exynos_device_flite0,&exynos_device_flite1,
#endif&s5p_device_mipi_csis0,&s5p_device_mipi_csis1,&s5p_device_fimc0,&s5p_device_fimc1,&s5p_device_fimc2,&s5p_device_fimc3,&s5p_device_fimc_md,<span style="color:#cc0000;">&s5p_device_fimd0,</span>

在/home/yangjia/samba/linux-3.5/arch/arm/plat-samsung/devs.c 中定义有 s3c_device_fb 和s5p_device_fimd0 。S5P_PA_FIMD0是VIDCON0的地址,可以查三星的用户手册,地址为 0x11C00000。s5p-fb这个名字没有在后面匹配。


#ifdef CONFIG_S5P_DEV_FIMD0
static struct resource s5p_fimd0_resource[] = {[0] = DEFINE_RES_MEM(S5P_PA_FIMD0, SZ_32K),[1] = DEFINE_RES_IRQ(IRQ_FIMD0_VSYNC),[2] = DEFINE_RES_IRQ(IRQ_FIMD0_FIFO),[3] = DEFINE_RES_IRQ(IRQ_FIMD0_SYSTEM),
};struct platform_device s5p_device_fimd0 = {.name		= "s5p-fb",.id		= 0,.num_resources	= ARRAY_SIZE(s5p_fimd0_resource),.resource	= s5p_fimd0_resource,.dev		= {.dma_mask		= &samsung_device_dma_mask,.coherent_dma_mask	= DMA_BIT_MASK(32),},
};
#ifdef CONFIG_S3C_DEV_FB
static struct resource s3c_fb_resource[] = {[0] = DEFINE_RES_MEM(S3C_PA_FB, SZ_16K),[1] = DEFINE_RES_IRQ(IRQ_LCD_VSYNC),[2] = DEFINE_RES_IRQ(IRQ_LCD_FIFO),[3] = DEFINE_RES_IRQ(IRQ_LCD_SYSTEM),
};struct platform_device s3c_device_fb = {.name		= "s3c-fb",.id		= -1,.num_resources	= ARRAY_SIZE(s3c_fb_resource),.resource	= s3c_fb_resource,.dev		= {.dma_mask		= &samsung_device_dma_mask,.coherent_dma_mask	= DMA_BIT_MASK(32),},
};
#ifdef CONFIG_S5P_DEV_FIMD0
static struct resource s5p_fimd0_resource[] = {[0] = DEFINE_RES_MEM(<span style="color:#cc0000;">S5P_PA_FIMD0</span>, SZ_32K),[1] = DEFINE_RES_IRQ(IRQ_FIMD0_VSYNC),[2] = DEFINE_RES_IRQ(IRQ_FIMD0_FIFO),[3] = DEFINE_RES_IRQ(IRQ_FIMD0_SYSTEM),
};

/home/yangjia/samba/linux-3.5/arch/arm/mach-exynos/mach-tiny4412.c  

static void __init smdk4x12_machine_init(void)
{
#ifdef CONFIG_TOUCHSCREEN_FT5X0Xstruct s3cfb_lcd *lcd = tiny4412_get_lcd();ft5x0x_pdata.screen_max_x = lcd->width;ft5x0x_pdata.screen_max_y = lcd->height;

/home/yangjia/samba/linux-3.5/arch/arm/mach-exynos/tiny4412-lcds.c 在这个文件中对lcd的参数进行配置。

static struct {char *name;struct s3cfb_lcd *lcd;int ctp;
} tiny4412_lcd_config[] = {{ "HD700",	&wxga_hd700, 1 },{ "S70",	&wvga_s70,   1 },{ "W50",	&wvga_w50,   0 },{ "W101",	&wsvga_w101, 1 },{ "A97",	&xga_a97,    0 },{ "HDM",	&hdmi_def,   0 },	/* Pls keep it at last */
};static int lcd_idx = 0;static int __init tiny4412_setup_lcd(char *str)
{int i;if (!strncasecmp("HDMI", str, 4)) {struct hdmi_config *cfg = &tiny4412_hdmi_config[0];struct s3cfb_lcd *lcd;lcd_idx = ARRAY_SIZE(tiny4412_lcd_config) - 1;lcd = tiny4412_lcd_config[lcd_idx].lcd;for (i = 0; i < ARRAY_SIZE(tiny4412_hdmi_config); i++, cfg++) {if (!strcasecmp(cfg->name, str)) {lcd->width = cfg->width;lcd->height = cfg->height;goto __ret;}}}for (i = 0; i < ARRAY_SIZE(tiny4412_lcd_config); i++) {if (!strcasecmp(tiny4412_lcd_config[i].name, str)) {lcd_idx = i;break;}}__ret:printk("TINY4412: %s selected\n", tiny4412_lcd_config[lcd_idx].name);return 0;
}
early_param("lcd", tiny4412_setup_lcd);







http://www.ppmy.cn/news/639918.html

相关文章

AcWing 4410. 吃鸡蛋 (简单模拟)

小明家里有 nn 个鸡蛋。 每天早上&#xff0c;小明都要吃 11 个鸡蛋作为早餐。 小明家里还有一个母鸡。 母鸡会在第 m,2m,3m…m,2m,3m… 天的晚上下蛋&#xff0c;每次只下 11 个蛋。 请问&#xff0c;连续多少天以后&#xff0c;小明就没有早餐鸡蛋吃了&#xff1f; 输入…

iTOP4412 LCD驱动(FB)

0 前言 我购买的LCD的接口是LVDS的,然而Exynos4412并不支持LVDS接口,因此iTOP4412需要通过转接芯片实现RGB到LVDS信号的转换,本文重点分析相关硬件电路和软件驱动,内核版本为linux-3.0.15。 1 电路 Exynos4412支持MIPI-DSI、RGB和HDMI三种显示接口,并不支持LVDS接口,那么…

tiny4412 lcd驱动

fbmem.c文件提供了framebuffer驱动程序的通用文件操作接口&#xff0c;自定义的framebuffer驱动程序可以使用fbmem.c中提供默认的接口。用EXPORT_SYMBOL导出到其他文件中应用 s3c-fb.c是针对的三星开发板的lcd驱动文件接口&#xff08;s3c_fb_probe等&#xff09;。 一下都是在…

【EI会议2023】12.20之后ddl

csdn 摘出来上文中的一些ddl var code "7aecbc27-0665-4410-875f-e4b16853eb64" # ICET 2023(成都 5月12日-5月15日) http://www.icet.net/track9.html 截稿时间2022.12.20 通知录用:2023.1.20 SEGRE 2023(长沙 4月21日-4月23日) http://www.icsegre.org/ 截…

音频处理——音频处理的基本概念

目录 声音的本质声音的物理性质波形频率一个例子 数字音频采样率采样量化&#xff08;采样精度、采样深度&#xff09;音频帧 常见名词解释举例 声音的本质 声音是一种由物体震动引发的物理现象&#xff0c;如小提琴的弦声等。物体的震动使其四周空气的压强产生变化&#xff0…

Power Query 系列 (13) - 自定义函数

本篇博客介绍 Power Query 自定义函数的技巧&#xff0c;在 PQ 中计算个税。 以工资类所得应交个税为例&#xff0c;最新的个税起征点为 5000 并按下表的级次进行缴税&#xff08;假设没有其它扣除项&#xff09;。 对照税率表&#xff0c;我们先看看手工如何计算。比如 xxx…

Tiny4412 LCD驱动(FB)

0 前言 本文重点分析Tiny4412官方内核linux-3.5.0中的LCD驱动,其中关键内核配置如下: CONFIG_FB=y CONFIG_FB_S3C=y CONFIG_FB_S3C_NR_BUFFERS=3 相关:《SMDK2440 LCD驱动(FB)》、《SMDK6410 LCD驱动(FB)》、《Tiny4412 LCD驱动(DRM)》、《NanoPC-T4 LCD驱动(eDP)…

【MySQL Shell】8.4 部署 InnoDB ClusterSet

按照以下步骤部署沙盒或生产 InnoDB ClusterSet 部署。沙盒部署是所有 MySQL 服务器实例和其他软件在一台机器上运行的地方。对于生产部署&#xff0c;服务器实例和其他软件位于不同的计算机上。 此过程假设您已经拥有 第 8.1 节 “InnoDB ClusterSet 的要求” 中列出的以下组…