Commit d52dcfe5 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Support for SC1100

From: David Goodenough <david.goodenough@btconnect.com>

Add PCI device supoprt for the Geode SC1100-based Microtik Routerboard 230.
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent df050b72
...@@ -86,7 +86,10 @@ int __init scx200_init(void) ...@@ -86,7 +86,10 @@ int __init scx200_init(void)
if ((bridge = pci_find_device(PCI_VENDOR_ID_NS, if ((bridge = pci_find_device(PCI_VENDOR_ID_NS,
PCI_DEVICE_ID_NS_SCx200_BRIDGE, PCI_DEVICE_ID_NS_SCx200_BRIDGE,
NULL)) == NULL) NULL)) == NULL
&& (bridge = pci_find_device(PCI_VENDOR_ID_NS,
PCI_DEVICE_ID_NS_SC1100_BRIDGE,
NULL)) == NULL)
return -ENODEV; return -ENODEV;
base = pci_resource_start(bridge, 0); base = pci_resource_start(bridge, 0);
......
...@@ -221,10 +221,16 @@ static int __init scx200_wdt_init(void) ...@@ -221,10 +221,16 @@ static int __init scx200_wdt_init(void)
printk(KERN_DEBUG NAME ": NatSemi SCx200 Watchdog Driver\n"); printk(KERN_DEBUG NAME ": NatSemi SCx200 Watchdog Driver\n");
/* First check that this really is a NatSemi SCx200 CPU */ /*
* First check that this really is a NatSemi SCx200 CPU or a Geode
* SC1100 processor
*/
if ((pci_find_device(PCI_VENDOR_ID_NS, if ((pci_find_device(PCI_VENDOR_ID_NS,
PCI_DEVICE_ID_NS_SCx200_BRIDGE, PCI_DEVICE_ID_NS_SCx200_BRIDGE,
NULL)) == NULL) NULL)) == NULL
&& (pci_find_device(PCI_VENDOR_ID_NS,
PCI_DEVICE_ID_NS_SC1100_BRIDGE,
NULL)) == NULL)
return -ENODEV; return -ENODEV;
/* More sanity checks, verify that the configuration block is there */ /* More sanity checks, verify that the configuration block is there */
......
...@@ -43,7 +43,7 @@ MODULE_DESCRIPTION("NatSemi SCx200 ACCESS.bus Driver"); ...@@ -43,7 +43,7 @@ MODULE_DESCRIPTION("NatSemi SCx200 ACCESS.bus Driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
#define MAX_DEVICES 4 #define MAX_DEVICES 4
static int base[MAX_DEVICES] = { 0x840 }; static int base[MAX_DEVICES] = { 0x820, 0x840 };
MODULE_PARM(base, "1-4i"); MODULE_PARM(base, "1-4i");
MODULE_PARM_DESC(base, "Base addresses for the ACCESS.bus controllers"); MODULE_PARM_DESC(base, "Base addresses for the ACCESS.bus controllers");
...@@ -510,7 +510,10 @@ static int __init scx200_acb_init(void) ...@@ -510,7 +510,10 @@ static int __init scx200_acb_init(void)
/* Verify that this really is a SCx200 processor */ /* Verify that this really is a SCx200 processor */
if (pci_find_device(PCI_VENDOR_ID_NS, if (pci_find_device(PCI_VENDOR_ID_NS,
PCI_DEVICE_ID_NS_SCx200_BRIDGE, PCI_DEVICE_ID_NS_SCx200_BRIDGE,
NULL) == NULL) NULL) == NULL
&& pci_find_device(PCI_VENDOR_ID_NS,
PCI_DEVICE_ID_NS_SC1100_BRIDGE,
NULL) == NULL)
return -ENODEV; return -ENODEV;
rc = -ENXIO; rc = -ENXIO;
......
...@@ -373,6 +373,7 @@ ...@@ -373,6 +373,7 @@
#define PCI_DEVICE_ID_NS_SCx200_AUDIO 0x0503 #define PCI_DEVICE_ID_NS_SCx200_AUDIO 0x0503
#define PCI_DEVICE_ID_NS_SCx200_VIDEO 0x0504 #define PCI_DEVICE_ID_NS_SCx200_VIDEO 0x0504
#define PCI_DEVICE_ID_NS_SCx200_XBUS 0x0505 #define PCI_DEVICE_ID_NS_SCx200_XBUS 0x0505
#define PCI_DEVICE_ID_NS_SC1100_BRIDGE 0x0510
#define PCI_DEVICE_ID_NS_87410 0xd001 #define PCI_DEVICE_ID_NS_87410 0xd001
#define PCI_VENDOR_ID_TSENG 0x100c #define PCI_VENDOR_ID_TSENG 0x100c
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment