linux/arch/blackfin/mach-bf561/boards/tepla.c
<<
>>
Prefs
   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
  17const char bfin_board_name[] = "Tepla-BF561";
  18
  19/*
  20 *  Driver needs to know address, irq and flag pin.
  21 */
  22static 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
  38static 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_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
  46#ifdef CONFIG_BFIN_SIR0
  47static struct resource bfin_sir0_resources[] = {
  48        {
  49                .start = 0xFFC00400,
  50                .end = 0xFFC004FF,
  51                .flags = IORESOURCE_MEM,
  52        },
  53        {
  54                .start = IRQ_UART0_RX,
  55                .end = IRQ_UART0_RX+1,
  56                .flags = IORESOURCE_IRQ,
  57        },
  58        {
  59                .start = CH_UART0_RX,
  60                .end = CH_UART0_RX+1,
  61                .flags = IORESOURCE_DMA,
  62        },
  63};
  64
  65static struct platform_device bfin_sir0_device = {
  66        .name = "bfin_sir",
  67        .id = 0,
  68        .num_resources = ARRAY_SIZE(bfin_sir0_resources),
  69        .resource = bfin_sir0_resources,
  70};
  71#endif
  72#endif
  73
  74static struct platform_device *tepla_devices[] __initdata = {
  75        &smc91x_device,
  76#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
  77#ifdef CONFIG_BFIN_SIR0
  78        &bfin_sir0_device,
  79#endif
  80#endif
  81};
  82
  83static int __init tepla_init(void)
  84{
  85        printk(KERN_INFO "%s(): registering device resources\n", __func__);
  86        return platform_add_devices(tepla_devices, ARRAY_SIZE(tepla_devices));
  87}
  88
  89arch_initcall(tepla_init);
  90