~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/blackfin/mach-bf561/boards/tepla.c

Version: ~ [ linux-5.4-rc7 ] ~ [ linux-5.3.11 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.84 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.154 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.201 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.201 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.77 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Copyright 2004-2007 Analog Devices Inc.
  3  *                2005 National ICT Australia (NICTA)
  4  *                      Aidan Williams <aidan@nicta.com.au>
  5  *
  6  * Thanks to Jamey Hicks.
  7  *
  8  * Only SMSC91C1111 was registered, may do more later.
  9  *
 10  * Licensed under the GPL-2
 11  */
 12 
 13 #include <linux/device.h>
 14 #include <linux/platform_device.h>
 15 #include <linux/irq.h>
 16 
 17 const char bfin_board_name[] = "Tepla-BF561";
 18 
 19 /*
 20  *  Driver needs to know address, irq and flag pin.
 21  */
 22 static struct resource smc91x_resources[] = {
 23         {
 24                 .start  = 0x2C000300,
 25                 .end    = 0x2C000320,
 26                 .flags  = IORESOURCE_MEM,
 27         }, {
 28                 .start  = IRQ_PROG_INTB,
 29                 .end    = IRQ_PROG_INTB,
 30                 .flags  = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL,
 31         }, {
 32                 .start  = IRQ_PF7,
 33                 .end    = IRQ_PF7,
 34                 .flags  = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL,
 35         },
 36 };
 37 
 38 static struct platform_device smc91x_device = {
 39         .name          = "smc91x",
 40         .id            = 0,
 41         .num_resources = ARRAY_SIZE(smc91x_resources),
 42         .resource      = smc91x_resources,
 43 };
 44 
 45 #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
 46 #ifdef CONFIG_SERIAL_BFIN_UART0
 47 static struct resource bfin_uart0_resources[] = {
 48         {
 49                 .start = BFIN_UART_THR,
 50                 .end = BFIN_UART_GCTL+2,
 51                 .flags = IORESOURCE_MEM,
 52         },
 53         {
 54                 .start = IRQ_UART_TX,
 55                 .end = IRQ_UART_TX,
 56                 .flags = IORESOURCE_IRQ,
 57         },
 58         {
 59                 .start = IRQ_UART_RX,
 60                 .end = IRQ_UART_RX,
 61                 .flags = IORESOURCE_IRQ,
 62         },
 63         {
 64                 .start = IRQ_UART_ERROR,
 65                 .end = IRQ_UART_ERROR,
 66                 .flags = IORESOURCE_IRQ,
 67         },
 68         {
 69                 .start = CH_UART_TX,
 70                 .end = CH_UART_TX,
 71                 .flags = IORESOURCE_DMA,
 72         },
 73         {
 74                 .start = CH_UART_RX,
 75                 .end = CH_UART_RX,
 76                 .flags = IORESOURCE_DMA,
 77         },
 78 };
 79 
 80 static unsigned short bfin_uart0_peripherals[] = {
 81         P_UART0_TX, P_UART0_RX, 0
 82 };
 83 
 84 static struct platform_device bfin_uart0_device = {
 85         .name = "bfin-uart",
 86         .id = 0,
 87         .num_resources = ARRAY_SIZE(bfin_uart0_resources),
 88         .resource = bfin_uart0_resources,
 89         .dev = {
 90                 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
 91         },
 92 };
 93 #endif
 94 #endif
 95 
 96 #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
 97 #ifdef CONFIG_BFIN_SIR0
 98 static struct resource bfin_sir0_resources[] = {
 99         {
100                 .start = 0xFFC00400,
101                 .end = 0xFFC004FF,
102                 .flags = IORESOURCE_MEM,
103         },
104         {
105                 .start = IRQ_UART0_RX,
106                 .end = IRQ_UART0_RX+1,
107                 .flags = IORESOURCE_IRQ,
108         },
109         {
110                 .start = CH_UART0_RX,
111                 .end = CH_UART0_RX+1,
112                 .flags = IORESOURCE_DMA,
113         },
114 };
115 
116 static struct platform_device bfin_sir0_device = {
117         .name = "bfin_sir",
118         .id = 0,
119         .num_resources = ARRAY_SIZE(bfin_sir0_resources),
120         .resource = bfin_sir0_resources,
121 };
122 #endif
123 #endif
124 
125 static struct platform_device *tepla_devices[] __initdata = {
126         &smc91x_device,
127 
128 #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
129 #ifdef CONFIG_SERIAL_BFIN_UART0
130         &bfin_uart0_device,
131 #endif
132 #endif
133 
134 #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
135 #ifdef CONFIG_BFIN_SIR0
136         &bfin_sir0_device,
137 #endif
138 #endif
139 };
140 
141 static int __init tepla_init(void)
142 {
143         printk(KERN_INFO "%s(): registering device resources\n", __func__);
144         return platform_add_devices(tepla_devices, ARRAY_SIZE(tepla_devices));
145 }
146 
147 arch_initcall(tepla_init);
148 
149 static struct platform_device *tepla_early_devices[] __initdata = {
150 #if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
151 #ifdef CONFIG_SERIAL_BFIN_UART0
152         &bfin_uart0_device,
153 #endif
154 #endif
155 };
156 
157 void __init native_machine_early_platform_add_devices(void)
158 {
159         printk(KERN_INFO "register early platform devices\n");
160         early_platform_add_devices(tepla_early_devices,
161                 ARRAY_SIZE(tepla_early_devices));
162 }
163 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp