1 /* 2 * RSK+SH7264 Support. 3 * 4 * Copyright (C) 2012 Renesas Electronics Europe 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file "COPYING" in the main directory of this archive 8 * for more details. 9 */ 10 #include <linux/init.h> 11 #include <linux/types.h> 12 #include <linux/platform_device.h> 13 #include <linux/interrupt.h> 14 #include <linux/input.h> 15 #include <linux/smsc911x.h> 16 #include <asm/machvec.h> 17 #include <asm/io.h> 18 19 static struct smsc911x_platform_config smsc911x_config = { 20 .phy_interface = PHY_INTERFACE_MODE_MII, 21 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, 22 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, 23 .flags = SMSC911X_USE_16BIT | SMSC911X_SWAP_FIFO, 24 }; 25 26 static struct resource smsc911x_resources[] = { 27 [0] = { 28 .start = 0x28000000, 29 .end = 0x280000ff, 30 .flags = IORESOURCE_MEM, 31 }, 32 [1] = { 33 .start = 65, 34 .end = 65, 35 .flags = IORESOURCE_IRQ, 36 }, 37 }; 38 39 static struct platform_device smsc911x_device = { 40 .name = "smsc911x", 41 .id = -1, 42 .num_resources = ARRAY_SIZE(smsc911x_resources), 43 .resource = smsc911x_resources, 44 .dev = { 45 .platform_data = &smsc911x_config, 46 }, 47 }; 48 49 static struct platform_device *rsk7264_devices[] __initdata = { 50 &smsc911x_device, 51 }; 52 53 static int __init rsk7264_devices_setup(void) 54 { 55 return platform_add_devices(rsk7264_devices, 56 ARRAY_SIZE(rsk7264_devices)); 57 } 58 device_initcall(rsk7264_devices_setup); 59