2010-01-14 02:23:53 +03:00
/* linux/arch/arm/plat-s5p/dev-uart.c
*
* Copyright ( c ) 2009 Samsung Electronics Co . , Ltd .
* http : //www.samsung.com/
*
* Base S5P UART resource and device definitions
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# include <linux/kernel.h>
# include <linux/types.h>
# include <linux/interrupt.h>
# include <linux/list.h>
# include <linux/platform_device.h>
# include <asm/mach/arch.h>
# include <asm/mach/irq.h>
# include <mach/hardware.h>
# include <mach/map.h>
# include <plat/devs.h>
/* Serial port registrations */
static struct resource s5p_uart0_resource [ ] = {
[ 0 ] = {
. start = S5P_PA_UART0 ,
2011-02-15 08:35:47 +03:00
. end = S5P_PA_UART0 + S5P_SZ_UART - 1 ,
2010-01-14 02:23:53 +03:00
. flags = IORESOURCE_MEM ,
} ,
[ 1 ] = {
2011-08-10 14:21:20 +04:00
. start = IRQ_UART0 ,
. end = IRQ_UART0 ,
2010-01-14 02:23:53 +03:00
. flags = IORESOURCE_IRQ ,
} ,
} ;
static struct resource s5p_uart1_resource [ ] = {
[ 0 ] = {
. start = S5P_PA_UART1 ,
2011-02-15 08:35:47 +03:00
. end = S5P_PA_UART1 + S5P_SZ_UART - 1 ,
2010-01-14 02:23:53 +03:00
. flags = IORESOURCE_MEM ,
} ,
[ 1 ] = {
2011-08-10 14:21:20 +04:00
. start = IRQ_UART1 ,
. end = IRQ_UART1 ,
2010-01-14 02:23:53 +03:00
. flags = IORESOURCE_IRQ ,
} ,
} ;
static struct resource s5p_uart2_resource [ ] = {
[ 0 ] = {
. start = S5P_PA_UART2 ,
2011-02-15 08:35:47 +03:00
. end = S5P_PA_UART2 + S5P_SZ_UART - 1 ,
2010-01-14 02:23:53 +03:00
. flags = IORESOURCE_MEM ,
} ,
[ 1 ] = {
2011-08-10 14:21:20 +04:00
. start = IRQ_UART2 ,
. end = IRQ_UART2 ,
2010-01-14 02:23:53 +03:00
. flags = IORESOURCE_IRQ ,
} ,
} ;
static struct resource s5p_uart3_resource [ ] = {
2010-01-29 04:23:40 +03:00
# if CONFIG_SERIAL_SAMSUNG_UARTS > 3
2010-01-14 02:23:53 +03:00
[ 0 ] = {
. start = S5P_PA_UART3 ,
2011-02-15 08:35:47 +03:00
. end = S5P_PA_UART3 + S5P_SZ_UART - 1 ,
2010-01-14 02:23:53 +03:00
. flags = IORESOURCE_MEM ,
} ,
[ 1 ] = {
2011-08-10 14:21:20 +04:00
. start = IRQ_UART3 ,
. end = IRQ_UART3 ,
2010-01-14 02:23:53 +03:00
. flags = IORESOURCE_IRQ ,
} ,
2010-01-29 04:23:40 +03:00
# endif
2010-01-14 02:23:53 +03:00
} ;
2010-09-01 10:13:44 +04:00
static struct resource s5p_uart4_resource [ ] = {
# if CONFIG_SERIAL_SAMSUNG_UARTS > 4
[ 0 ] = {
. start = S5P_PA_UART4 ,
2011-02-15 08:35:47 +03:00
. end = S5P_PA_UART4 + S5P_SZ_UART - 1 ,
2010-09-01 10:13:44 +04:00
. flags = IORESOURCE_MEM ,
} ,
[ 1 ] = {
2011-08-10 14:21:20 +04:00
. start = IRQ_UART4 ,
. end = IRQ_UART4 ,
2010-09-01 10:13:44 +04:00
. flags = IORESOURCE_IRQ ,
} ,
# endif
} ;
static struct resource s5p_uart5_resource [ ] = {
# if CONFIG_SERIAL_SAMSUNG_UARTS > 5
[ 0 ] = {
. start = S5P_PA_UART5 ,
2011-02-15 08:35:47 +03:00
. end = S5P_PA_UART5 + S5P_SZ_UART - 1 ,
2010-09-01 10:13:44 +04:00
. flags = IORESOURCE_MEM ,
} ,
[ 1 ] = {
2011-08-10 14:21:20 +04:00
. start = IRQ_UART5 ,
. end = IRQ_UART5 ,
2010-09-01 10:13:44 +04:00
. flags = IORESOURCE_IRQ ,
} ,
# endif
} ;
2010-01-14 02:23:53 +03:00
struct s3c24xx_uart_resources s5p_uart_resources [ ] __initdata = {
[ 0 ] = {
. resources = s5p_uart0_resource ,
. nr_resources = ARRAY_SIZE ( s5p_uart0_resource ) ,
} ,
[ 1 ] = {
. resources = s5p_uart1_resource ,
. nr_resources = ARRAY_SIZE ( s5p_uart1_resource ) ,
} ,
[ 2 ] = {
. resources = s5p_uart2_resource ,
. nr_resources = ARRAY_SIZE ( s5p_uart2_resource ) ,
} ,
[ 3 ] = {
. resources = s5p_uart3_resource ,
. nr_resources = ARRAY_SIZE ( s5p_uart3_resource ) ,
} ,
2010-09-01 10:13:44 +04:00
[ 4 ] = {
. resources = s5p_uart4_resource ,
. nr_resources = ARRAY_SIZE ( s5p_uart4_resource ) ,
} ,
[ 5 ] = {
. resources = s5p_uart5_resource ,
. nr_resources = ARRAY_SIZE ( s5p_uart5_resource ) ,
} ,
2010-01-14 02:23:53 +03:00
} ;