⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 devices.c

📁 trident tm5600的linux驱动
💻 C
📖 第 1 页 / 共 2 页
字号:
};static u64 pxa25x_assp_dma_mask = DMA_BIT_MASK(32);static struct resource pxa25x_resource_assp[] = {	[0] = {		.start	= 0x41500000,		.end	= 0x4150002f,		.flags	= IORESOURCE_MEM,	},	[1] = {		.start	= IRQ_ASSP,		.end	= IRQ_ASSP,		.flags	= IORESOURCE_IRQ,	},	[2] = {		/* DRCMR for RX */		.start	= 23,		.end	= 23,		.flags	= IORESOURCE_DMA,	},	[3] = {		/* DRCMR for TX */		.start	= 24,		.end	= 24,		.flags	= IORESOURCE_DMA,	},};struct platform_device pxa25x_device_assp = {	/* ASSP is basically equivalent to NSSP */	.name		= "pxa25x-nssp",	.id		= 2,	.dev		= {		.dma_mask = &pxa25x_assp_dma_mask,		.coherent_dma_mask = DMA_BIT_MASK(32),	},	.resource	= pxa25x_resource_assp,	.num_resources	= ARRAY_SIZE(pxa25x_resource_assp),};#endif /* CONFIG_PXA25x */#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)static struct resource pxa27x_resource_keypad[] = {	[0] = {		.start	= 0x41500000,		.end	= 0x4150004c,		.flags	= IORESOURCE_MEM,	},	[1] = {		.start	= IRQ_KEYPAD,		.end	= IRQ_KEYPAD,		.flags	= IORESOURCE_IRQ,	},};struct platform_device pxa27x_device_keypad = {	.name		= "pxa27x-keypad",	.id		= -1,	.resource	= pxa27x_resource_keypad,	.num_resources	= ARRAY_SIZE(pxa27x_resource_keypad),};void __init pxa_set_keypad_info(struct pxa27x_keypad_platform_data *info){	pxa_register_device(&pxa27x_device_keypad, info);}static u64 pxa27x_ohci_dma_mask = DMA_BIT_MASK(32);static struct resource pxa27x_resource_ohci[] = {	[0] = {		.start  = 0x4C000000,		.end    = 0x4C00ff6f,		.flags  = IORESOURCE_MEM,	},	[1] = {		.start  = IRQ_USBH1,		.end    = IRQ_USBH1,		.flags  = IORESOURCE_IRQ,	},};struct platform_device pxa27x_device_ohci = {	.name		= "pxa27x-ohci",	.id		= -1,	.dev		= {		.dma_mask = &pxa27x_ohci_dma_mask,		.coherent_dma_mask = DMA_BIT_MASK(32),	},	.num_resources  = ARRAY_SIZE(pxa27x_resource_ohci),	.resource       = pxa27x_resource_ohci,};void __init pxa_set_ohci_info(struct pxaohci_platform_data *info){	pxa_register_device(&pxa27x_device_ohci, info);}static u64 pxa27x_ssp1_dma_mask = DMA_BIT_MASK(32);static struct resource pxa27x_resource_ssp1[] = {	[0] = {		.start	= 0x41000000,		.end	= 0x4100003f,		.flags	= IORESOURCE_MEM,	},	[1] = {		.start	= IRQ_SSP,		.end	= IRQ_SSP,		.flags	= IORESOURCE_IRQ,	},	[2] = {		/* DRCMR for RX */		.start	= 13,		.end	= 13,		.flags	= IORESOURCE_DMA,	},	[3] = {		/* DRCMR for TX */		.start	= 14,		.end	= 14,		.flags	= IORESOURCE_DMA,	},};struct platform_device pxa27x_device_ssp1 = {	.name		= "pxa27x-ssp",	.id		= 0,	.dev		= {		.dma_mask = &pxa27x_ssp1_dma_mask,		.coherent_dma_mask = DMA_BIT_MASK(32),	},	.resource	= pxa27x_resource_ssp1,	.num_resources	= ARRAY_SIZE(pxa27x_resource_ssp1),};static u64 pxa27x_ssp2_dma_mask = DMA_BIT_MASK(32);static struct resource pxa27x_resource_ssp2[] = {	[0] = {		.start	= 0x41700000,		.end	= 0x4170003f,		.flags	= IORESOURCE_MEM,	},	[1] = {		.start	= IRQ_SSP2,		.end	= IRQ_SSP2,		.flags	= IORESOURCE_IRQ,	},	[2] = {		/* DRCMR for RX */		.start	= 15,		.end	= 15,		.flags	= IORESOURCE_DMA,	},	[3] = {		/* DRCMR for TX */		.start	= 16,		.end	= 16,		.flags	= IORESOURCE_DMA,	},};struct platform_device pxa27x_device_ssp2 = {	.name		= "pxa27x-ssp",	.id		= 1,	.dev		= {		.dma_mask = &pxa27x_ssp2_dma_mask,		.coherent_dma_mask = DMA_BIT_MASK(32),	},	.resource	= pxa27x_resource_ssp2,	.num_resources	= ARRAY_SIZE(pxa27x_resource_ssp2),};static u64 pxa27x_ssp3_dma_mask = DMA_BIT_MASK(32);static struct resource pxa27x_resource_ssp3[] = {	[0] = {		.start	= 0x41900000,		.end	= 0x4190003f,		.flags	= IORESOURCE_MEM,	},	[1] = {		.start	= IRQ_SSP3,		.end	= IRQ_SSP3,		.flags	= IORESOURCE_IRQ,	},	[2] = {		/* DRCMR for RX */		.start	= 66,		.end	= 66,		.flags	= IORESOURCE_DMA,	},	[3] = {		/* DRCMR for TX */		.start	= 67,		.end	= 67,		.flags	= IORESOURCE_DMA,	},};struct platform_device pxa27x_device_ssp3 = {	.name		= "pxa27x-ssp",	.id		= 2,	.dev		= {		.dma_mask = &pxa27x_ssp3_dma_mask,		.coherent_dma_mask = DMA_BIT_MASK(32),	},	.resource	= pxa27x_resource_ssp3,	.num_resources	= ARRAY_SIZE(pxa27x_resource_ssp3),};static struct resource pxa27x_resource_pwm0[] = {	[0] = {		.start	= 0x40b00000,		.end	= 0x40b0001f,		.flags	= IORESOURCE_MEM,	},};struct platform_device pxa27x_device_pwm0 = {	.name		= "pxa27x-pwm",	.id		= 0,	.resource	= pxa27x_resource_pwm0,	.num_resources	= ARRAY_SIZE(pxa27x_resource_pwm0),};static struct resource pxa27x_resource_pwm1[] = {	[0] = {		.start	= 0x40c00000,		.end	= 0x40c0001f,		.flags	= IORESOURCE_MEM,	},};struct platform_device pxa27x_device_pwm1 = {	.name		= "pxa27x-pwm",	.id		= 1,	.resource	= pxa27x_resource_pwm1,	.num_resources	= ARRAY_SIZE(pxa27x_resource_pwm1),};static struct resource pxa27x_resource_camera[] = {	[0] = {		.start	= 0x50000000,		.end	= 0x50000fff,		.flags	= IORESOURCE_MEM,	},	[1] = {		.start	= IRQ_CAMERA,		.end	= IRQ_CAMERA,		.flags	= IORESOURCE_IRQ,	},};static u64 pxa27x_dma_mask_camera = DMA_BIT_MASK(32);static struct platform_device pxa27x_device_camera = {	.name		= "pxa27x-camera",	.id		= 0, /* This is used to put cameras on this interface */	.dev		= {		.dma_mask      		= &pxa27x_dma_mask_camera,		.coherent_dma_mask	= 0xffffffff,	},	.num_resources	= ARRAY_SIZE(pxa27x_resource_camera),	.resource	= pxa27x_resource_camera,};void __init pxa_set_camera_info(struct pxacamera_platform_data *info){	pxa_register_device(&pxa27x_device_camera, info);}#endif /* CONFIG_PXA27x || CONFIG_PXA3xx */#ifdef CONFIG_PXA3xxstatic u64 pxa3xx_ssp4_dma_mask = DMA_BIT_MASK(32);static struct resource pxa3xx_resource_ssp4[] = {	[0] = {		.start	= 0x41a00000,		.end	= 0x41a0003f,		.flags	= IORESOURCE_MEM,	},	[1] = {		.start	= IRQ_SSP4,		.end	= IRQ_SSP4,		.flags	= IORESOURCE_IRQ,	},	[2] = {		/* DRCMR for RX */		.start	= 2,		.end	= 2,		.flags	= IORESOURCE_DMA,	},	[3] = {		/* DRCMR for TX */		.start	= 3,		.end	= 3,		.flags	= IORESOURCE_DMA,	},};struct platform_device pxa3xx_device_ssp4 = {	/* PXA3xx SSP is basically equivalent to PXA27x */	.name		= "pxa27x-ssp",	.id		= 3,	.dev		= {		.dma_mask = &pxa3xx_ssp4_dma_mask,		.coherent_dma_mask = DMA_BIT_MASK(32),	},	.resource	= pxa3xx_resource_ssp4,	.num_resources	= ARRAY_SIZE(pxa3xx_resource_ssp4),};static struct resource pxa3xx_resources_mci2[] = {	[0] = {		.start	= 0x42000000,		.end	= 0x42000fff,		.flags	= IORESOURCE_MEM,	},	[1] = {		.start	= IRQ_MMC2,		.end	= IRQ_MMC2,		.flags	= IORESOURCE_IRQ,	},	[2] = {		.start	= 93,		.end	= 93,		.flags	= IORESOURCE_DMA,	},	[3] = {		.start	= 94,		.end	= 94,		.flags	= IORESOURCE_DMA,	},};struct platform_device pxa3xx_device_mci2 = {	.name		= "pxa2xx-mci",	.id		= 1,	.dev		= {		.dma_mask = &pxamci_dmamask,		.coherent_dma_mask =	0xffffffff,	},	.num_resources	= ARRAY_SIZE(pxa3xx_resources_mci2),	.resource	= pxa3xx_resources_mci2,};void __init pxa3xx_set_mci2_info(struct pxamci_platform_data *info){	pxa_register_device(&pxa3xx_device_mci2, info);}static struct resource pxa3xx_resources_mci3[] = {	[0] = {		.start	= 0x42500000,		.end	= 0x42500fff,		.flags	= IORESOURCE_MEM,	},	[1] = {		.start	= IRQ_MMC3,		.end	= IRQ_MMC3,		.flags	= IORESOURCE_IRQ,	},	[2] = {		.start	= 100,		.end	= 100,		.flags	= IORESOURCE_DMA,	},	[3] = {		.start	= 101,		.end	= 101,		.flags	= IORESOURCE_DMA,	},};struct platform_device pxa3xx_device_mci3 = {	.name		= "pxa2xx-mci",	.id		= 2,	.dev		= {		.dma_mask = &pxamci_dmamask,		.coherent_dma_mask = 0xffffffff,	},	.num_resources	= ARRAY_SIZE(pxa3xx_resources_mci3),	.resource	= pxa3xx_resources_mci3,};void __init pxa3xx_set_mci3_info(struct pxamci_platform_data *info){	pxa_register_device(&pxa3xx_device_mci3, info);}static struct resource pxa3xx_resources_nand[] = {	[0] = {		.start	= 0x43100000,		.end	= 0x43100053,		.flags	= IORESOURCE_MEM,	},	[1] = {		.start	= IRQ_NAND,		.end	= IRQ_NAND,		.flags	= IORESOURCE_IRQ,	},	[2] = {		/* DRCMR for Data DMA */		.start	= 97,		.end	= 97,		.flags	= IORESOURCE_DMA,	},	[3] = {		/* DRCMR for Command DMA */		.start	= 99,		.end	= 99,		.flags	= IORESOURCE_DMA,	},};static u64 pxa3xx_nand_dma_mask = DMA_BIT_MASK(32);struct platform_device pxa3xx_device_nand = {	.name		= "pxa3xx-nand",	.id		= -1,	.dev		= {		.dma_mask = &pxa3xx_nand_dma_mask,		.coherent_dma_mask = DMA_BIT_MASK(32),	},	.num_resources	= ARRAY_SIZE(pxa3xx_resources_nand),	.resource	= pxa3xx_resources_nand,};void __init pxa3xx_set_nand_info(struct pxa3xx_nand_platform_data *info){	pxa_register_device(&pxa3xx_device_nand, info);}#endif /* CONFIG_PXA3xx *//* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1. * See comment in arch/arm/mach-pxa/ssp.c::ssp_probe() */void __init pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_master *info){	struct platform_device *pd;	pd = platform_device_alloc("pxa2xx-spi", id);	if (pd == NULL) {		printk(KERN_ERR "pxa2xx-spi: failed to allocate device id %d\n",		       id);		return;	}	pd->dev.platform_data = info;	platform_device_add(pd);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -