diff options
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r-- | arch/powerpc/platforms/86xx/gef_sbc610.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/86xx/gef_sbc610.c b/arch/powerpc/platforms/86xx/gef_sbc610.c index 8a9dee247618..ee215002b1cf 100644 --- a/arch/powerpc/platforms/86xx/gef_sbc610.c +++ b/arch/powerpc/platforms/86xx/gef_sbc610.c | |||
@@ -12,6 +12,8 @@ | |||
12 | * | 12 | * |
13 | * Based on: mpc86xx_hpcn.c (MPC86xx HPCN board specific routines) | 13 | * Based on: mpc86xx_hpcn.c (MPC86xx HPCN board specific routines) |
14 | * Copyright 2006 Freescale Semiconductor Inc. | 14 | * Copyright 2006 Freescale Semiconductor Inc. |
15 | * | ||
16 | * NEC fixup adapted from arch/mips/pci/fixup-lm2e.c | ||
15 | */ | 17 | */ |
16 | 18 | ||
17 | #include <linux/stddef.h> | 19 | #include <linux/stddef.h> |
@@ -75,6 +77,21 @@ static void gef_sbc610_show_cpuinfo(struct seq_file *m) | |||
75 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | 77 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); |
76 | } | 78 | } |
77 | 79 | ||
80 | static void __init gef_sbc610_nec_fixup(struct pci_dev *pdev) | ||
81 | { | ||
82 | unsigned int val; | ||
83 | |||
84 | printk(KERN_INFO "Running NEC uPD720101 Fixup\n"); | ||
85 | |||
86 | /* Ensure ports 1, 2, 3, 4 & 5 are enabled */ | ||
87 | pci_read_config_dword(pdev, 0xe0, &val); | ||
88 | pci_write_config_dword(pdev, 0xe0, (val & ~7) | 0x5); | ||
89 | |||
90 | /* System clock is 48-MHz Oscillator and EHCI Enabled. */ | ||
91 | pci_write_config_dword(pdev, 0xe4, 1 << 5); | ||
92 | } | ||
93 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_USB, | ||
94 | gef_sbc610_nec_fixup); | ||
78 | 95 | ||
79 | /* | 96 | /* |
80 | * Called very early, device-tree isn't unflattened | 97 | * Called very early, device-tree isn't unflattened |