~ubuntu-branches/ubuntu/maverick/u-boot-omap3/maverick

« back to all changes in this revision

Viewing changes to drivers/usb/host/ehci-fsl.c

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2010-03-22 15:06:23 UTC
  • Revision ID: james.westby@ubuntu.com-20100322150623-i21g8rgiyl5dohag
Tags: upstream-2010.3git20100315
ImportĀ upstreamĀ versionĀ 2010.3git20100315

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * (C) Copyright 2009 Freescale Semiconductor, Inc.
 
3
 *
 
4
 * (C) Copyright 2008, Excito Elektronik i Sk=E5ne AB
 
5
 *
 
6
 * Author: Tor Krill tor@excito.com
 
7
 *
 
8
 * This program is free software; you can redistribute it and/or
 
9
 * modify it under the terms of the GNU General Public License as
 
10
 * published by the Free Software Foundation; either version 2 of
 
11
 * the License, or (at your option) any later version.
 
12
 *
 
13
 * This program is distributed in the hope that it will be useful,
 
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 
16
 * GNU General Public License for more details.
 
17
 *
 
18
 * You should have received a copy of the GNU General Public License
 
19
 * along with this program; if not, write to the Free Software
 
20
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 
21
 * MA 02111-1307 USA
 
22
 */
 
23
 
 
24
#include <common.h>
 
25
#include <pci.h>
 
26
#include <usb.h>
 
27
#include <asm/io.h>
 
28
#include <usb/ehci-fsl.h>
 
29
 
 
30
#include "ehci.h"
 
31
#include "ehci-core.h"
 
32
 
 
33
/*
 
34
 * Create the appropriate control structures to manage
 
35
 * a new EHCI host controller.
 
36
 *
 
37
 * Excerpts from linux ehci fsl driver.
 
38
 */
 
39
int ehci_hcd_init(void)
 
40
{
 
41
        struct usb_ehci *ehci;
 
42
 
 
43
        ehci = (struct usb_ehci *)CONFIG_SYS_MPC8xxx_USB_ADDR;
 
44
        hccr = (struct ehci_hccr *)((uint32_t)&ehci->caplength);
 
45
        hcor = (struct ehci_hcor *)((uint32_t) hccr +
 
46
                        HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
 
47
 
 
48
        /* Set to Host mode */
 
49
        setbits_le32(&ehci->usbmode, CM_HOST);
 
50
 
 
51
        out_be32(&ehci->snoop1, SNOOP_SIZE_2GB);
 
52
        out_be32(&ehci->snoop2, 0x80000000 | SNOOP_SIZE_2GB);
 
53
 
 
54
        /* Init phy */
 
55
        if (!strcmp(getenv("usb_phy_type"), "utmi"))
 
56
                out_le32(&(hcor->or_portsc[0]), PORT_PTS_UTMI);
 
57
        else
 
58
                out_le32(&(hcor->or_portsc[0]), PORT_PTS_ULPI);
 
59
 
 
60
        /* Enable interface. */
 
61
        setbits_be32(&ehci->control, USB_EN);
 
62
 
 
63
        out_be32(&ehci->prictrl, 0x0000000c);
 
64
        out_be32(&ehci->age_cnt_limit, 0x00000040);
 
65
        out_be32(&ehci->sictrl, 0x00000001);
 
66
 
 
67
        in_le32(&ehci->usbmode);
 
68
 
 
69
        return 0;
 
70
}
 
71
 
 
72
/*
 
73
 * Destroy the appropriate control structures corresponding
 
74
 * the the EHCI host controller.
 
75
 */
 
76
int ehci_hcd_stop(void)
 
77
{
 
78
        return 0;
 
79
}