1d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko/* Copyright (c) 2011, Code Aurora Forum. All rights reserved. 2d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * 3d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * This program is free software; you can redistribute it and/or modify 4d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * it under the terms of the GNU General Public License version 2 and 5d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * only version 2 as published by the Free Software Foundation. 6d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * 7d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * This program is distributed in the hope that it will be useful, 8d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * but WITHOUT ANY WARRANTY; without even the implied warranty of 9d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * GNU General Public License for more details. 11d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * 12d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * You should have received a copy of the GNU General Public License 13d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * along with this program; if not, write to the Free Software 14d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 15d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko * 02110-1301, USA. 16d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko */ 17d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko 18d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko#include <linux/kernel.h> 19d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko#include <linux/platform_device.h> 20d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko 21d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko#include <linux/dma-mapping.h> 22d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko#include <mach/irqs-8960.h> 23d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko#include <mach/board.h> 24d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko 25d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko#include "devices.h" 26d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko 27d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko#define MSM_GSBI2_PHYS 0x16100000 28d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko#define MSM_UART2DM_PHYS (MSM_GSBI2_PHYS + 0x40000) 29d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko 30d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko#define MSM_GSBI5_PHYS 0x16400000 31d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko#define MSM_UART5DM_PHYS (MSM_GSBI5_PHYS + 0x40000) 32d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko 33d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenkostatic struct resource resources_uart_gsbi2[] = { 34d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko { 35d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .start = GSBI2_UARTDM_IRQ, 36d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .end = GSBI2_UARTDM_IRQ, 37d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .flags = IORESOURCE_IRQ, 38d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko }, 39d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko { 40d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .start = MSM_UART2DM_PHYS, 41d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .end = MSM_UART2DM_PHYS + PAGE_SIZE - 1, 42d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .name = "uart_resource", 43d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .flags = IORESOURCE_MEM, 44d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko }, 45d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko { 46d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .start = MSM_GSBI2_PHYS, 47d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .end = MSM_GSBI2_PHYS + PAGE_SIZE - 1, 48d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .name = "gsbi_resource", 49d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .flags = IORESOURCE_MEM, 50d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko }, 51d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko}; 52d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko 53d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenkostruct platform_device msm8960_device_uart_gsbi2 = { 54d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .name = "msm_serial", 55d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .id = 0, 56d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .num_resources = ARRAY_SIZE(resources_uart_gsbi2), 57d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .resource = resources_uart_gsbi2, 58d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko}; 59d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko 60d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenkostatic struct resource resources_uart_gsbi5[] = { 61d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko { 62d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .start = GSBI5_UARTDM_IRQ, 63d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .end = GSBI5_UARTDM_IRQ, 64d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .flags = IORESOURCE_IRQ, 65d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko }, 66d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko { 67d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .start = MSM_UART5DM_PHYS, 68d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .end = MSM_UART5DM_PHYS + PAGE_SIZE - 1, 69d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .name = "uart_resource", 70d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .flags = IORESOURCE_MEM, 71d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko }, 72d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko { 73d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .start = MSM_GSBI5_PHYS, 74d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .end = MSM_GSBI5_PHYS + PAGE_SIZE - 1, 75d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .name = "gsbi_resource", 76d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .flags = IORESOURCE_MEM, 77d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko }, 78d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko}; 79d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko 80d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenkostruct platform_device msm8960_device_uart_gsbi5 = { 81d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .name = "msm_serial", 82d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .id = 0, 83d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .num_resources = ARRAY_SIZE(resources_uart_gsbi5), 84d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko .resource = resources_uart_gsbi5, 85d056fca32354dd990ffbd90fd1da10eaec72aa87Stepan Moskovchenko}; 86