标签:
本文非专业讲SPI,只是讲网上看到的资料略微总结,并加上自己的想法,附资料links。
devs.c :各个platform_device 的定义,比如I2C、USB、SPI等等。应该是内核加载时,读取该配置文件,然后注册进系统。目录在/arch/arm/plat-samsung/devs.c
比如:
/* SPI */ #ifdef CONFIG_PLAT_S3C24XX static struct resource s3c_spi0_resource[] = { //下面s3c_device_spi0对象的资源 [0] = DEFINE_RES_MEM(S3C24XX_PA_SPI, SZ_32), [1] = DEFINE_RES_IRQ(IRQ_SPI0), }; struct platform_device s3c_device_spi0 = { // 声明s3c_device_spi0 platform设备 .name = "s3c2410-spi", //会与驱动匹配,比较两个名字是一样的 .id = 0, //相当于次设备号 .num_resources = ARRAY_SIZE(s3c_spi0_resource), .resource = s3c_spi0_resource, .dev = { .dma_mask = &samsung_device_dma_mask, .coherent_dma_mask = DMA_BIT_MASK(32), } };
SPI分三层:
SPI核心层:/drivers/spi/spi.c
SPI控制器驱动层:/drivers/spi/spi-s3c24xx.c
SPI设备驱动层: /drivers/spi/spidev.c
related links:
标签:
原文地址:http://www.cnblogs.com/zhongyuan/p/4283826.html