|  | /* Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 
|  | * | 
|  | * This program is free software; you can redistribute it and/or modify | 
|  | * it under the terms of the GNU General Public License version 2 and | 
|  | * only version 2 as published by the Free Software Foundation. | 
|  | * | 
|  | * This program is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | * GNU General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU General Public License | 
|  | * along with this program; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | 
|  | * 02110-1301, USA. | 
|  | */ | 
|  |  | 
|  | #include <linux/kernel.h> | 
|  | #include <linux/platform_device.h> | 
|  |  | 
|  | #include <linux/dma-mapping.h> | 
|  | #include <mach/irqs-8960.h> | 
|  | #include <mach/board.h> | 
|  |  | 
|  | #include "devices.h" | 
|  |  | 
|  | #define MSM_GSBI2_PHYS		0x16100000 | 
|  | #define MSM_UART2DM_PHYS	(MSM_GSBI2_PHYS + 0x40000) | 
|  |  | 
|  | #define MSM_GSBI5_PHYS		0x16400000 | 
|  | #define MSM_UART5DM_PHYS	(MSM_GSBI5_PHYS + 0x40000) | 
|  |  | 
|  | static struct resource resources_uart_gsbi2[] = { | 
|  | { | 
|  | .start	= GSBI2_UARTDM_IRQ, | 
|  | .end	= GSBI2_UARTDM_IRQ, | 
|  | .flags	= IORESOURCE_IRQ, | 
|  | }, | 
|  | { | 
|  | .start	= MSM_UART2DM_PHYS, | 
|  | .end	= MSM_UART2DM_PHYS + PAGE_SIZE - 1, | 
|  | .name	= "uart_resource", | 
|  | .flags	= IORESOURCE_MEM, | 
|  | }, | 
|  | { | 
|  | .start	= MSM_GSBI2_PHYS, | 
|  | .end	= MSM_GSBI2_PHYS + PAGE_SIZE - 1, | 
|  | .name	= "gsbi_resource", | 
|  | .flags	= IORESOURCE_MEM, | 
|  | }, | 
|  | }; | 
|  |  | 
|  | struct platform_device msm8960_device_uart_gsbi2 = { | 
|  | .name	= "msm_serial", | 
|  | .id	= 0, | 
|  | .num_resources	= ARRAY_SIZE(resources_uart_gsbi2), | 
|  | .resource	= resources_uart_gsbi2, | 
|  | }; | 
|  |  | 
|  | static struct resource resources_uart_gsbi5[] = { | 
|  | { | 
|  | .start	= GSBI5_UARTDM_IRQ, | 
|  | .end	= GSBI5_UARTDM_IRQ, | 
|  | .flags	= IORESOURCE_IRQ, | 
|  | }, | 
|  | { | 
|  | .start	= MSM_UART5DM_PHYS, | 
|  | .end	= MSM_UART5DM_PHYS + PAGE_SIZE - 1, | 
|  | .name	= "uart_resource", | 
|  | .flags	= IORESOURCE_MEM, | 
|  | }, | 
|  | { | 
|  | .start	= MSM_GSBI5_PHYS, | 
|  | .end	= MSM_GSBI5_PHYS + PAGE_SIZE - 1, | 
|  | .name	= "gsbi_resource", | 
|  | .flags	= IORESOURCE_MEM, | 
|  | }, | 
|  | }; | 
|  |  | 
|  | struct platform_device msm8960_device_uart_gsbi5 = { | 
|  | .name	= "msm_serial", | 
|  | .id	= 0, | 
|  | .num_resources	= ARRAY_SIZE(resources_uart_gsbi5), | 
|  | .resource	= resources_uart_gsbi5, | 
|  | }; |