linux/arch/sh/boards/board-edosk7705.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2/*
   3 * arch/sh/boards/renesas/edosk7705/setup.c
   4 *
   5 * Copyright (C) 2000  Kazumoto Kojima
   6 *
   7 * Hitachi SolutionEngine Support.
   8 *
   9 * Modified for edosk7705 development
  10 * board by S. Dunn, 2003.
  11 */
  12#include <linux/init.h>
  13#include <linux/irq.h>
  14#include <linux/platform_device.h>
  15#include <linux/interrupt.h>
  16#include <linux/smc91x.h>
  17#include <linux/sh_intc.h>
  18#include <asm/machvec.h>
  19#include <linux/sizes.h>
  20
  21#define SMC_IOBASE      0xA2000000
  22#define SMC_IO_OFFSET   0x300
  23#define SMC_IOADDR      (SMC_IOBASE + SMC_IO_OFFSET)
  24
  25#define ETHERNET_IRQ    evt2irq(0x320)
  26
  27static void __init sh_edosk7705_init_irq(void)
  28{
  29        make_imask_irq(ETHERNET_IRQ);
  30}
  31
  32/* eth initialization functions */
  33static struct smc91x_platdata smc91x_info = {
  34        .flags = SMC91X_USE_16BIT | SMC91X_IO_SHIFT_1 | IORESOURCE_IRQ_LOWLEVEL,
  35};
  36
  37static struct resource smc91x_res[] = {
  38        [0] = {
  39                .start  = SMC_IOADDR,
  40                .end    = SMC_IOADDR + SZ_32 - 1,
  41                .flags  = IORESOURCE_MEM,
  42        },
  43        [1] = {
  44                .start  = ETHERNET_IRQ,
  45                .end    = ETHERNET_IRQ,
  46                .flags  = IORESOURCE_IRQ ,
  47        }
  48};
  49
  50static struct platform_device smc91x_dev = {
  51        .name           = "smc91x",
  52        .id             = -1,
  53        .num_resources  = ARRAY_SIZE(smc91x_res),
  54        .resource       = smc91x_res,
  55
  56        .dev    = {
  57                .platform_data  = &smc91x_info,
  58        },
  59};
  60
  61/* platform init code */
  62static struct platform_device *edosk7705_devices[] __initdata = {
  63        &smc91x_dev,
  64};
  65
  66static int __init init_edosk7705_devices(void)
  67{
  68        return platform_add_devices(edosk7705_devices,
  69                                    ARRAY_SIZE(edosk7705_devices));
  70}
  71device_initcall(init_edosk7705_devices);
  72
  73/*
  74 * The Machine Vector
  75 */
  76static struct sh_machine_vector mv_edosk7705 __initmv = {
  77        .mv_name                = "EDOSK7705",
  78        .mv_init_irq            = sh_edosk7705_init_irq,
  79};
  80