summaryrefslogtreecommitdiffstats
path: root/arch/mips/pnx8550
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2012-10-08 15:11:30 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-10-22 11:24:11 -0700
commitf2028bdf06f45955f93cbba8d0a5b5e47be0f359 (patch)
tree2450d81d87973a4a8d7bb0c36b437113e6f751dd /arch/mips/pnx8550
parentcfa49b4b88fe14d2b5792f2ea7ba5b88c8cd1d15 (diff)
downloadlinux-f2028bdf06f45955f93cbba8d0a5b5e47be0f359.tar.gz
linux-f2028bdf06f45955f93cbba8d0a5b5e47be0f359.tar.bz2
linux-f2028bdf06f45955f93cbba8d0a5b5e47be0f359.zip
MIPS: PNX8550: use OHCI platform driver
Change the PNX8550 platform code to register an ohci-platform driver instead of ohci-pnx8550 since the ohci-platform is suitable for use. Signed-off-by: Florian Fainelli <florian@openwrt.org> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/mips/pnx8550')
-rw-r--r--arch/mips/pnx8550/common/platform.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/arch/mips/pnx8550/common/platform.c b/arch/mips/pnx8550/common/platform.c
index 5264cc09a27b..0a8faeaa7b70 100644
--- a/arch/mips/pnx8550/common/platform.c
+++ b/arch/mips/pnx8550/common/platform.c
@@ -20,6 +20,7 @@
#include <linux/serial.h>
#include <linux/serial_pnx8xxx.h>
#include <linux/platform_device.h>
+#include <linux/usb/ohci_pdriver.h>
#include <int.h>
#include <usb.h>
@@ -96,12 +97,40 @@ static u64 ohci_dmamask = DMA_BIT_MASK(32);
static u64 uart_dmamask = DMA_BIT_MASK(32);
+static int pnx8550_usb_ohci_power_on(struct platform_device *pdev)
+{
+ /*
+ * Set register CLK48CTL to enable and 48MHz
+ */
+ outl(0x00000003, PCI_BASE | 0x0004770c);
+
+ /*
+ * Set register CLK12CTL to enable and 48MHz
+ */
+ outl(0x00000003, PCI_BASE | 0x00047710);
+
+ udelay(100);
+
+ return 0;
+}
+
+static void pnx8550_usb_ohci_power_off(struct platform_device *pdev)
+{
+ udelay(10);
+}
+
+static struct usb_ohci_pdata pnx8550_usb_ohci_pdata = {
+ .power_on = pnx8550_usb_ohci_power_on,
+ .power_off = pnx8550_usb_ohci_power_off,
+};
+
static struct platform_device pnx8550_usb_ohci_device = {
- .name = "pnx8550-ohci",
+ .name = "ohci-platform",
.id = -1,
.dev = {
.dma_mask = &ohci_dmamask,
.coherent_dma_mask = DMA_BIT_MASK(32),
+ .platform_data = &pnx8550_usb_ohci_pdata,
},
.num_resources = ARRAY_SIZE(pnx8550_usb_ohci_resources),
.resource = pnx8550_usb_ohci_resources,