Commit 23f6d914 authored by Hong Xu's avatar Hong Xu Committed by Greg Kroah-Hartman
Browse files

USB: modifications for at91sam9g10



Modify both host and gadget USB drivers for at91sam9g10.
This add a clock management equivalent to at91sam9261 on usb drivers.
It also add the way of handling gadget pull-ups (like the at91sam9261).

Signed-off-by: default avatarHong Xu <hong.xu@atmel.com>
Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
parent 0ad72524
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -892,7 +892,7 @@ static void pullup(struct at91_udc *udc, int is_on)

			txvc |= AT91_UDP_TXVC_PUON;
			at91_udp_write(udc, AT91_UDP_TXVC, txvc);
		} else if (cpu_is_at91sam9261()) {
		} else if (cpu_is_at91sam9261() || cpu_is_at91sam9g10()) {
			u32	usbpucr;

			usbpucr = at91_sys_read(AT91_MATRIX_USBPUCR);
@@ -910,7 +910,7 @@ static void pullup(struct at91_udc *udc, int is_on)

			txvc &= ~AT91_UDP_TXVC_PUON;
			at91_udp_write(udc, AT91_UDP_TXVC, txvc);
		} else if (cpu_is_at91sam9261()) {
		} else if (cpu_is_at91sam9261() || cpu_is_at91sam9g10()) {
			u32	usbpucr;

			usbpucr = at91_sys_read(AT91_MATRIX_USBPUCR);
@@ -1692,7 +1692,7 @@ static int __init at91udc_probe(struct platform_device *pdev)
		udc->ep[3].maxpacket = 64;
		udc->ep[4].maxpacket = 512;
		udc->ep[5].maxpacket = 512;
	} else if (cpu_is_at91sam9261()) {
	} else if (cpu_is_at91sam9261() || cpu_is_at91sam9g10()) {
		udc->ep[3].maxpacket = 64;
	} else if (cpu_is_at91sam9263()) {
		udc->ep[0].maxpacket = 64;
+5 −5
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ extern int usb_disabled(void);

static void at91_start_clock(void)
{
	if (cpu_is_at91sam9261())
	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
		clk_enable(hclk);
	clk_enable(iclk);
	clk_enable(fclk);
@@ -46,7 +46,7 @@ static void at91_stop_clock(void)
{
	clk_disable(fclk);
	clk_disable(iclk);
	if (cpu_is_at91sam9261())
	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
		clk_disable(hclk);
	clocked = 0;
}
@@ -142,7 +142,7 @@ static int usb_hcd_at91_probe(const struct hc_driver *driver,

	iclk = clk_get(&pdev->dev, "ohci_clk");
	fclk = clk_get(&pdev->dev, "uhpck");
	if (cpu_is_at91sam9261())
	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
		hclk = clk_get(&pdev->dev, "hck0");

	at91_start_hc(pdev);
@@ -155,7 +155,7 @@ static int usb_hcd_at91_probe(const struct hc_driver *driver,
	/* Error handling */
	at91_stop_hc(pdev);

	if (cpu_is_at91sam9261())
	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
		clk_put(hclk);
	clk_put(fclk);
	clk_put(iclk);
@@ -192,7 +192,7 @@ static void usb_hcd_at91_remove(struct usb_hcd *hcd,
	release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
	usb_put_hcd(hcd);

	if (cpu_is_at91sam9261())
	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
		clk_put(hclk);
	clk_put(fclk);
	clk_put(iclk);