162747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi/* Specification for the SMSC911x NIC 262747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi * 362747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi * Copyright (C) 2006 Matsushita Electric Industrial Co., Ltd. 462747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi * All Rights Reserved. 562747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi * 662747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi * This program is free software; you can redistribute it and/or 762747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi * modify it under the terms of the GNU General Public License 862747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi * as published by the Free Software Foundation; either version 962747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi * 2 of the License, or (at your option) any later version. 1062747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi */ 1162747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi 1262747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi#include <linux/kernel.h> 1362747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi#include <linux/init.h> 1462747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi#include <linux/platform_device.h> 1562747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi#include <linux/io.h> 1662747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi#include <linux/ioport.h> 1762747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi#include <linux/smsc911x.h> 1862747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi#include <unit/smsc911x.h> 1962747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi 2062747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchistatic struct smsc911x_platform_config smsc911x_config = { 2162747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, 2262747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, 2362747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .flags = SMSC911X_USE_32BIT, 2462747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi}; 2562747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi 2662747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchistatic struct resource smsc911x_resources[] = { 2762747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi [0] = { 2862747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .start = SMSC911X_BASE, 2962747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .end = SMSC911X_BASE_END, 3062747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .flags = IORESOURCE_MEM, 3162747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi }, 3262747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi [1] = { 3362747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .start = SMSC911X_IRQ, 3462747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .end = SMSC911X_IRQ, 3562747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .flags = IORESOURCE_IRQ, 3662747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi }, 3762747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi}; 3862747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi 3962747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchistatic struct platform_device smsc911x_device = { 4062747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .name = "smsc911x", 4162747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .id = 0, 4262747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .num_resources = ARRAY_SIZE(smsc911x_resources), 4362747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .resource = smsc911x_resources, 4462747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .dev = { 4562747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi .platform_data = &smsc911x_config, 4662747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi } 4762747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi}; 4862747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi 4962747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi/* 5062747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi * add platform devices 5162747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi */ 5262747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchistatic int __init unit_device_init(void) 5362747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi{ 5462747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi platform_device_register(&smsc911x_device); 5562747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi return 0; 5662747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi} 5762747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchi 5862747cd27ee241ffa32d501e45980cdc441d4a09Akira Takeuchidevice_initcall(unit_device_init); 59