1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * RSK+SH7269 Support 4 * 5 * Copyright (C) 2012 Renesas Electronics Europe Ltd 6 * Copyright (C) 2012 Phil Edworthy 7 */ 8 #include <linux/init.h> 9 #include <linux/types.h> 10 #include <linux/platform_device.h> 11 #include <linux/interrupt.h> 12 #include <linux/input.h> 13 #include <linux/smsc911x.h> 14 #include <linux/gpio.h> 15 #include <asm/machvec.h> 16 #include <asm/io.h> 17 18 static struct smsc911x_platform_config smsc911x_config = { 19 .phy_interface = PHY_INTERFACE_MODE_MII, 20 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, 21 .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL, 22 .flags = SMSC911X_USE_16BIT | SMSC911X_SWAP_FIFO, 23 }; 24 25 static struct resource smsc911x_resources[] = { 26 [0] = { 27 .start = 0x24000000, 28 .end = 0x240000ff, 29 .flags = IORESOURCE_MEM, 30 }, 31 [1] = { 32 .start = 85, 33 .end = 85, 34 .flags = IORESOURCE_IRQ, 35 }, 36 }; 37 38 static struct platform_device smsc911x_device = { 39 .name = "smsc911x", 40 .id = -1, 41 .num_resources = ARRAY_SIZE(smsc911x_resources), 42 .resource = smsc911x_resources, 43 .dev = { 44 .platform_data = &smsc911x_config, 45 }, 46 }; 47 48 static struct platform_device *rsk7269_devices[] __initdata = { 49 &smsc911x_device, 50 }; 51 52 static int __init rsk7269_devices_setup(void) 53 { 54 return platform_add_devices(rsk7269_devices, 55 ARRAY_SIZE(rsk7269_devices)); 56 } 57 device_initcall(rsk7269_devices_setup); 58