Commit 9d1e7875 authored by Maarten ter Huurne's avatar Maarten ter Huurne Committed by Ralf Baechle
Browse files

MIPS: JZ4740: Probe OHCI platform device via DT



The DT fragment will select the ohci-platform driver, since that can
handle the JZ4740 OHCI just fine. While I don't have a JZ4740-based
board with anything connected to the USB host controller, I did test
the generic OHCI driver successfully on a JZ4770-based board.

The device is disabled by default; boards that want to use it can
override the "status" property. The mass-production Qi LB60 boards
don't use the USB host controller.

Signed-off-by: default avatarMaarten ter Huurne <maarten@treewalker.org>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Paul Cercueil <paul@crapouillou.net>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/13104/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 46d6ccdb
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -65,4 +65,18 @@
		clocks = <&ext>, <&cgu JZ4740_CLK_UART1>;
		clock-names = "baud", "module";
	};

	uhc: uhc@13030000 {
		compatible = "ingenic,jz4740-ohci", "generic-ohci";
		reg = <0x13030000 0x1000>;

		clocks = <&cgu JZ4740_CLK_UHC>;
		assigned-clocks = <&cgu JZ4740_CLK_UHC>;
		assigned-clock-rates = <48000000>;

		interrupt-parent = <&intc>;
		interrupts = <3>;

		status = "disabled";
	};
};
+0 −1
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@

#include <linux/platform_device.h>

extern struct platform_device jz4740_usb_ohci_device;
extern struct platform_device jz4740_udc_device;
extern struct platform_device jz4740_udc_xceiv_device;
extern struct platform_device jz4740_mmc_device;
+0 −25
Original line number Diff line number Diff line
@@ -32,31 +32,6 @@

#include "clock.h"

/* OHCI controller */
static struct resource jz4740_usb_ohci_resources[] = {
	{
		.start	= JZ4740_UHC_BASE_ADDR,
		.end	= JZ4740_UHC_BASE_ADDR + 0x1000 - 1,
		.flags	= IORESOURCE_MEM,
	},
	{
		.start	= JZ4740_IRQ_UHC,
		.end	= JZ4740_IRQ_UHC,
		.flags	= IORESOURCE_IRQ,
	},
};

struct platform_device jz4740_usb_ohci_device = {
	.name		= "jz4740-ohci",
	.id		= -1,
	.dev = {
		.dma_mask = &jz4740_usb_ohci_device.dev.coherent_dma_mask,
		.coherent_dma_mask = DMA_BIT_MASK(32),
	},
	.num_resources	= ARRAY_SIZE(jz4740_usb_ohci_resources),
	.resource	= jz4740_usb_ohci_resources,
};

/* USB Device Controller */
struct platform_device jz4740_udc_xceiv_device = {
	.name = "usb_phy_generic",