diff options
author | Tony Lindgren <tony@atomide.com> | 2010-08-04 07:43:45 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2010-08-04 07:43:45 -0400 |
commit | 7590d1defdc720a97a9e186f45f529c4ae1b40f7 (patch) | |
tree | e7ffdc043a2847f410d654d8e99e001f3138937a /arch/arm/plat-mxc/ehci.c | |
parent | 7e788b4289bb025a96e327c604cb2db92e17108f (diff) | |
parent | 869fef41547db95df8523bf67845a21313709428 (diff) |
Merge branch 'devel-map-io' into omap-for-linus
Diffstat (limited to 'arch/arm/plat-mxc/ehci.c')
-rw-r--r-- | arch/arm/plat-mxc/ehci.c | 50 |
1 files changed, 45 insertions, 5 deletions
diff --git a/arch/arm/plat-mxc/ehci.c b/arch/arm/plat-mxc/ehci.c index 2a8646173c2f..35a064ff02ba 100644 --- a/arch/arm/plat-mxc/ehci.c +++ b/arch/arm/plat-mxc/ehci.c | |||
@@ -11,10 +11,6 @@ | |||
11 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | 11 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
12 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | 12 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
13 | * for more details. | 13 | * for more details. |
14 | * | ||
15 | * You should have received a copy of the GNU General Public License | ||
16 | * along with this program; if not, write to the Free Software Foundation, | ||
17 | * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
18 | */ | 14 | */ |
19 | 15 | ||
20 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
@@ -73,7 +69,51 @@ | |||
73 | int mxc_initialize_usb_hw(int port, unsigned int flags) | 69 | int mxc_initialize_usb_hw(int port, unsigned int flags) |
74 | { | 70 | { |
75 | unsigned int v; | 71 | unsigned int v; |
76 | #ifdef CONFIG_ARCH_MX3 | 72 | #if defined(CONFIG_ARCH_MX25) |
73 | if (cpu_is_mx25()) { | ||
74 | v = readl(MX25_IO_ADDRESS(MX25_OTG_BASE_ADDR + | ||
75 | USBCTRL_OTGBASE_OFFSET)); | ||
76 | |||
77 | switch (port) { | ||
78 | case 0: /* OTG port */ | ||
79 | v &= ~(MX35_OTG_SIC_MASK | MX35_OTG_PM_BIT); | ||
80 | v |= (flags & MXC_EHCI_INTERFACE_MASK) | ||
81 | << MX35_OTG_SIC_SHIFT; | ||
82 | if (!(flags & MXC_EHCI_POWER_PINS_ENABLED)) | ||
83 | v |= MX35_OTG_PM_BIT; | ||
84 | |||
85 | break; | ||
86 | case 1: /* H1 port */ | ||
87 | v &= ~(MX35_H1_SIC_MASK | MX35_H1_PM_BIT | MX35_H1_TLL_BIT | | ||
88 | MX35_H1_USBTE_BIT | MX35_H1_IPPUE_DOWN_BIT | MX35_H1_IPPUE_UP_BIT); | ||
89 | v |= (flags & MXC_EHCI_INTERFACE_MASK) | ||
90 | << MX35_H1_SIC_SHIFT; | ||
91 | if (!(flags & MXC_EHCI_POWER_PINS_ENABLED)) | ||
92 | v |= MX35_H1_PM_BIT; | ||
93 | |||
94 | if (!(flags & MXC_EHCI_TTL_ENABLED)) | ||
95 | v |= MX35_H1_TLL_BIT; | ||
96 | |||
97 | if (flags & MXC_EHCI_INTERNAL_PHY) | ||
98 | v |= MX35_H1_USBTE_BIT; | ||
99 | |||
100 | if (flags & MXC_EHCI_IPPUE_DOWN) | ||
101 | v |= MX35_H1_IPPUE_DOWN_BIT; | ||
102 | |||
103 | if (flags & MXC_EHCI_IPPUE_UP) | ||
104 | v |= MX35_H1_IPPUE_UP_BIT; | ||
105 | |||
106 | break; | ||
107 | default: | ||
108 | return -EINVAL; | ||
109 | } | ||
110 | |||
111 | writel(v, MX25_IO_ADDRESS(MX25_OTG_BASE_ADDR + | ||
112 | USBCTRL_OTGBASE_OFFSET)); | ||
113 | return 0; | ||
114 | } | ||
115 | #endif /* CONFIG_ARCH_MX25 */ | ||
116 | #if defined(CONFIG_ARCH_MX3) | ||
77 | if (cpu_is_mx31()) { | 117 | if (cpu_is_mx31()) { |
78 | v = readl(MX31_IO_ADDRESS(MX31_OTG_BASE_ADDR + | 118 | v = readl(MX31_IO_ADDRESS(MX31_OTG_BASE_ADDR + |
79 | USBCTRL_OTGBASE_OFFSET)); | 119 | USBCTRL_OTGBASE_OFFSET)); |