diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-23 19:08:40 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-23 19:08:40 -0400 |
commit | 5e512d0785e67d9ff41ee4af39bb71fc6161d5c9 (patch) | |
tree | 5b0decd6d5b11138a6614c4f7b17592aa76520c6 /arch/arm/mach-imx | |
parent | 451ce7f9cf2d17e34d5d64b76cac047a2a1a3b89 (diff) | |
parent | 233de298cb44e7dd300cd68f5abd7f1a75561fd5 (diff) |
Merge tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull arm soc-specific updates from Arnd Bergmann:
"This is stuff that does not fit well into another category and in
particular is not related to a particular board. The largest part in
here is extending the am33xx support in the omap platform."
Fix up trivial conflicts in arch/arm/mach-{imx/mach-mx35_3ds.c, tegra/Makefile}
* tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (74 commits)
ARM: LPC32xx: Add PWM support
ARM: LPC32xx: Add PWM clock
ARM: LPC32xx: Set system serial based on cpu unique id
ARM: vexpress: Config option for early printk console
ARM: vexpress: Add Device Tree for V2P-CA15_CA7 core tile
ARM: vexpress: Convert V2P-CA15 Device Tree to 64 bit addresses
ARM: vexpress: Add fixed regulator for SMSC
ARM: vexpress: Add missing SP804 interrupt in motherboard's DTS files
ARM: vexpress: Initial common clock support
ARM: SAMSUNG: Introduce Kconfig variable for Samsung custom clk API
ARM: EXYNOS: Add missing static storage class specifier in pmu.c file
ARM: EXYNOS: Make combiner_init function static
ARM: EXYNOS: Update HSOTG PHY clock setting for EXYNOS4X12
ARM: versatile: Make plat-versatile clock optional
ARM: vexpress: Check master site in daughterboard's sysctl operations
ARM: vexpress: remove automatic errata workaround selection
ARM: LPC32xx: Adjust to pl08x DMA interface changes
ARM: EXYNOS: Clear SYS_WDTRESET bit to use watchdog reset
ARM: imx: fix mx51 ehci setup errors
ARM: imx: make ehci power/oc polarities configurable
...
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r-- | arch/arm/mach-imx/Kconfig | 3 | ||||
-rw-r--r-- | arch/arm/mach-imx/devices-imx35.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-imx/ehci-imx25.c | 24 | ||||
-rw-r--r-- | arch/arm/mach-imx/ehci-imx35.c | 24 | ||||
-rw-r--r-- | arch/arm/mach-imx/ehci-imx5.c | 31 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-mx35_3ds.c | 1 |
6 files changed, 72 insertions, 15 deletions
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 0da882a3c063..1bba37c6598b 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig | |||
@@ -73,7 +73,7 @@ config SOC_IMX31 | |||
73 | 73 | ||
74 | config SOC_IMX35 | 74 | config SOC_IMX35 |
75 | bool | 75 | bool |
76 | select CPU_V6 | 76 | select CPU_V6K |
77 | select ARCH_MXC_IOMUX_V3 | 77 | select ARCH_MXC_IOMUX_V3 |
78 | select COMMON_CLK | 78 | select COMMON_CLK |
79 | select HAVE_EPIT | 79 | select HAVE_EPIT |
@@ -588,6 +588,7 @@ config MACH_MX35_3DS | |||
588 | select IMX_HAVE_PLATFORM_IPU_CORE | 588 | select IMX_HAVE_PLATFORM_IPU_CORE |
589 | select IMX_HAVE_PLATFORM_MXC_EHCI | 589 | select IMX_HAVE_PLATFORM_MXC_EHCI |
590 | select IMX_HAVE_PLATFORM_MXC_NAND | 590 | select IMX_HAVE_PLATFORM_MXC_NAND |
591 | select IMX_HAVE_PLATFORM_MXC_RTC | ||
591 | select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX | 592 | select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX |
592 | help | 593 | help |
593 | Include support for MX35PDK platform. This includes specific | 594 | Include support for MX35PDK platform. This includes specific |
diff --git a/arch/arm/mach-imx/devices-imx35.h b/arch/arm/mach-imx/devices-imx35.h index 27245ce9cab2..4815be1ee675 100644 --- a/arch/arm/mach-imx/devices-imx35.h +++ b/arch/arm/mach-imx/devices-imx35.h | |||
@@ -68,6 +68,10 @@ extern const struct imx_mxc_nand_data imx35_mxc_nand_data; | |||
68 | #define imx35_add_mxc_nand(pdata) \ | 68 | #define imx35_add_mxc_nand(pdata) \ |
69 | imx_add_mxc_nand(&imx35_mxc_nand_data, pdata) | 69 | imx_add_mxc_nand(&imx35_mxc_nand_data, pdata) |
70 | 70 | ||
71 | extern const struct imx_mxc_rtc_data imx35_mxc_rtc_data; | ||
72 | #define imx35_add_mxc_rtc() \ | ||
73 | imx_add_mxc_rtc(&imx35_mxc_rtc_data) | ||
74 | |||
71 | extern const struct imx_mxc_w1_data imx35_mxc_w1_data; | 75 | extern const struct imx_mxc_w1_data imx35_mxc_w1_data; |
72 | #define imx35_add_mxc_w1() \ | 76 | #define imx35_add_mxc_w1() \ |
73 | imx_add_mxc_w1(&imx35_mxc_w1_data) | 77 | imx_add_mxc_w1(&imx35_mxc_w1_data) |
diff --git a/arch/arm/mach-imx/ehci-imx25.c b/arch/arm/mach-imx/ehci-imx25.c index 865daf0b09e9..05bb41d99728 100644 --- a/arch/arm/mach-imx/ehci-imx25.c +++ b/arch/arm/mach-imx/ehci-imx25.c | |||
@@ -24,14 +24,18 @@ | |||
24 | #define MX25_OTG_SIC_SHIFT 29 | 24 | #define MX25_OTG_SIC_SHIFT 29 |
25 | #define MX25_OTG_SIC_MASK (0x3 << MX25_OTG_SIC_SHIFT) | 25 | #define MX25_OTG_SIC_MASK (0x3 << MX25_OTG_SIC_SHIFT) |
26 | #define MX25_OTG_PM_BIT (1 << 24) | 26 | #define MX25_OTG_PM_BIT (1 << 24) |
27 | #define MX25_OTG_PP_BIT (1 << 11) | ||
28 | #define MX25_OTG_OCPOL_BIT (1 << 3) | ||
27 | 29 | ||
28 | #define MX25_H1_SIC_SHIFT 21 | 30 | #define MX25_H1_SIC_SHIFT 21 |
29 | #define MX25_H1_SIC_MASK (0x3 << MX25_H1_SIC_SHIFT) | 31 | #define MX25_H1_SIC_MASK (0x3 << MX25_H1_SIC_SHIFT) |
32 | #define MX25_H1_PP_BIT (1 << 18) | ||
30 | #define MX25_H1_PM_BIT (1 << 8) | 33 | #define MX25_H1_PM_BIT (1 << 8) |
31 | #define MX25_H1_IPPUE_UP_BIT (1 << 7) | 34 | #define MX25_H1_IPPUE_UP_BIT (1 << 7) |
32 | #define MX25_H1_IPPUE_DOWN_BIT (1 << 6) | 35 | #define MX25_H1_IPPUE_DOWN_BIT (1 << 6) |
33 | #define MX25_H1_TLL_BIT (1 << 5) | 36 | #define MX25_H1_TLL_BIT (1 << 5) |
34 | #define MX25_H1_USBTE_BIT (1 << 4) | 37 | #define MX25_H1_USBTE_BIT (1 << 4) |
38 | #define MX25_H1_OCPOL_BIT (1 << 2) | ||
35 | 39 | ||
36 | int mx25_initialize_usb_hw(int port, unsigned int flags) | 40 | int mx25_initialize_usb_hw(int port, unsigned int flags) |
37 | { | 41 | { |
@@ -41,21 +45,35 @@ int mx25_initialize_usb_hw(int port, unsigned int flags) | |||
41 | 45 | ||
42 | switch (port) { | 46 | switch (port) { |
43 | case 0: /* OTG port */ | 47 | case 0: /* OTG port */ |
44 | v &= ~(MX25_OTG_SIC_MASK | MX25_OTG_PM_BIT); | 48 | v &= ~(MX25_OTG_SIC_MASK | MX25_OTG_PM_BIT | MX25_OTG_PP_BIT | |
49 | MX25_OTG_OCPOL_BIT); | ||
45 | v |= (flags & MXC_EHCI_INTERFACE_MASK) << MX25_OTG_SIC_SHIFT; | 50 | v |= (flags & MXC_EHCI_INTERFACE_MASK) << MX25_OTG_SIC_SHIFT; |
46 | 51 | ||
47 | if (!(flags & MXC_EHCI_POWER_PINS_ENABLED)) | 52 | if (!(flags & MXC_EHCI_POWER_PINS_ENABLED)) |
48 | v |= MX25_OTG_PM_BIT; | 53 | v |= MX25_OTG_PM_BIT; |
49 | 54 | ||
55 | if (flags & MXC_EHCI_PWR_PIN_ACTIVE_HIGH) | ||
56 | v |= MX25_OTG_PP_BIT; | ||
57 | |||
58 | if (!(flags & MXC_EHCI_OC_PIN_ACTIVE_LOW)) | ||
59 | v |= MX25_OTG_OCPOL_BIT; | ||
60 | |||
50 | break; | 61 | break; |
51 | case 1: /* H1 port */ | 62 | case 1: /* H1 port */ |
52 | v &= ~(MX25_H1_SIC_MASK | MX25_H1_PM_BIT | MX25_H1_TLL_BIT | | 63 | v &= ~(MX25_H1_SIC_MASK | MX25_H1_PM_BIT | MX25_H1_PP_BIT | |
53 | MX25_H1_USBTE_BIT | MX25_H1_IPPUE_DOWN_BIT | MX25_H1_IPPUE_UP_BIT); | 64 | MX25_H1_OCPOL_BIT | MX25_H1_TLL_BIT | MX25_H1_USBTE_BIT | |
65 | MX25_H1_IPPUE_DOWN_BIT | MX25_H1_IPPUE_UP_BIT); | ||
54 | v |= (flags & MXC_EHCI_INTERFACE_MASK) << MX25_H1_SIC_SHIFT; | 66 | v |= (flags & MXC_EHCI_INTERFACE_MASK) << MX25_H1_SIC_SHIFT; |
55 | 67 | ||
56 | if (!(flags & MXC_EHCI_POWER_PINS_ENABLED)) | 68 | if (!(flags & MXC_EHCI_POWER_PINS_ENABLED)) |
57 | v |= MX25_H1_PM_BIT; | 69 | v |= MX25_H1_PM_BIT; |
58 | 70 | ||
71 | if (flags & MXC_EHCI_PWR_PIN_ACTIVE_HIGH) | ||
72 | v |= MX25_H1_PP_BIT; | ||
73 | |||
74 | if (!(flags & MXC_EHCI_OC_PIN_ACTIVE_LOW)) | ||
75 | v |= MX25_H1_OCPOL_BIT; | ||
76 | |||
59 | if (!(flags & MXC_EHCI_TTL_ENABLED)) | 77 | if (!(flags & MXC_EHCI_TTL_ENABLED)) |
60 | v |= MX25_H1_TLL_BIT; | 78 | v |= MX25_H1_TLL_BIT; |
61 | 79 | ||
diff --git a/arch/arm/mach-imx/ehci-imx35.c b/arch/arm/mach-imx/ehci-imx35.c index 001ec3971f5d..73574c30cf50 100644 --- a/arch/arm/mach-imx/ehci-imx35.c +++ b/arch/arm/mach-imx/ehci-imx35.c | |||
@@ -24,14 +24,18 @@ | |||
24 | #define MX35_OTG_SIC_SHIFT 29 | 24 | #define MX35_OTG_SIC_SHIFT 29 |
25 | #define MX35_OTG_SIC_MASK (0x3 << MX35_OTG_SIC_SHIFT) | 25 | #define MX35_OTG_SIC_MASK (0x3 << MX35_OTG_SIC_SHIFT) |
26 | #define MX35_OTG_PM_BIT (1 << 24) | 26 | #define MX35_OTG_PM_BIT (1 << 24) |
27 | #define MX35_OTG_PP_BIT (1 << 11) | ||
28 | #define MX35_OTG_OCPOL_BIT (1 << 3) | ||
27 | 29 | ||
28 | #define MX35_H1_SIC_SHIFT 21 | 30 | #define MX35_H1_SIC_SHIFT 21 |
29 | #define MX35_H1_SIC_MASK (0x3 << MX35_H1_SIC_SHIFT) | 31 | #define MX35_H1_SIC_MASK (0x3 << MX35_H1_SIC_SHIFT) |
32 | #define MX35_H1_PP_BIT (1 << 18) | ||
30 | #define MX35_H1_PM_BIT (1 << 8) | 33 | #define MX35_H1_PM_BIT (1 << 8) |
31 | #define MX35_H1_IPPUE_UP_BIT (1 << 7) | 34 | #define MX35_H1_IPPUE_UP_BIT (1 << 7) |
32 | #define MX35_H1_IPPUE_DOWN_BIT (1 << 6) | 35 | #define MX35_H1_IPPUE_DOWN_BIT (1 << 6) |
33 | #define MX35_H1_TLL_BIT (1 << 5) | 36 | #define MX35_H1_TLL_BIT (1 << 5) |
34 | #define MX35_H1_USBTE_BIT (1 << 4) | 37 | #define MX35_H1_USBTE_BIT (1 << 4) |
38 | #define MX35_H1_OCPOL_BIT (1 << 2) | ||
35 | 39 | ||
36 | int mx35_initialize_usb_hw(int port, unsigned int flags) | 40 | int mx35_initialize_usb_hw(int port, unsigned int flags) |
37 | { | 41 | { |
@@ -41,21 +45,35 @@ int mx35_initialize_usb_hw(int port, unsigned int flags) | |||
41 | 45 | ||
42 | switch (port) { | 46 | switch (port) { |
43 | case 0: /* OTG port */ | 47 | case 0: /* OTG port */ |
44 | v &= ~(MX35_OTG_SIC_MASK | MX35_OTG_PM_BIT); | 48 | v &= ~(MX35_OTG_SIC_MASK | MX35_OTG_PM_BIT | MX35_OTG_PP_BIT | |
49 | MX35_OTG_OCPOL_BIT); | ||
45 | v |= (flags & MXC_EHCI_INTERFACE_MASK) << MX35_OTG_SIC_SHIFT; | 50 | v |= (flags & MXC_EHCI_INTERFACE_MASK) << MX35_OTG_SIC_SHIFT; |
46 | 51 | ||
47 | if (!(flags & MXC_EHCI_POWER_PINS_ENABLED)) | 52 | if (!(flags & MXC_EHCI_POWER_PINS_ENABLED)) |
48 | v |= MX35_OTG_PM_BIT; | 53 | v |= MX35_OTG_PM_BIT; |
49 | 54 | ||
55 | if (flags & MXC_EHCI_PWR_PIN_ACTIVE_HIGH) | ||
56 | v |= MX35_OTG_PP_BIT; | ||
57 | |||
58 | if (!(flags & MXC_EHCI_OC_PIN_ACTIVE_LOW)) | ||
59 | v |= MX35_OTG_OCPOL_BIT; | ||
60 | |||
50 | break; | 61 | break; |
51 | case 1: /* H1 port */ | 62 | case 1: /* H1 port */ |
52 | v &= ~(MX35_H1_SIC_MASK | MX35_H1_PM_BIT | MX35_H1_TLL_BIT | | 63 | v &= ~(MX35_H1_SIC_MASK | MX35_H1_PM_BIT | MX35_H1_PP_BIT | |
53 | MX35_H1_USBTE_BIT | MX35_H1_IPPUE_DOWN_BIT | MX35_H1_IPPUE_UP_BIT); | 64 | MX35_H1_OCPOL_BIT | MX35_H1_TLL_BIT | MX35_H1_USBTE_BIT | |
65 | MX35_H1_IPPUE_DOWN_BIT | MX35_H1_IPPUE_UP_BIT); | ||
54 | v |= (flags & MXC_EHCI_INTERFACE_MASK) << MX35_H1_SIC_SHIFT; | 66 | v |= (flags & MXC_EHCI_INTERFACE_MASK) << MX35_H1_SIC_SHIFT; |
55 | 67 | ||
56 | if (!(flags & MXC_EHCI_POWER_PINS_ENABLED)) | 68 | if (!(flags & MXC_EHCI_POWER_PINS_ENABLED)) |
57 | v |= MX35_H1_PM_BIT; | 69 | v |= MX35_H1_PM_BIT; |
58 | 70 | ||
71 | if (flags & MXC_EHCI_PWR_PIN_ACTIVE_HIGH) | ||
72 | v |= MX35_H1_PP_BIT; | ||
73 | |||
74 | if (!(flags & MXC_EHCI_OC_PIN_ACTIVE_LOW)) | ||
75 | v |= MX35_H1_OCPOL_BIT; | ||
76 | |||
59 | if (!(flags & MXC_EHCI_TTL_ENABLED)) | 77 | if (!(flags & MXC_EHCI_TTL_ENABLED)) |
60 | v |= MX35_H1_TLL_BIT; | 78 | v |= MX35_H1_TLL_BIT; |
61 | 79 | ||
diff --git a/arch/arm/mach-imx/ehci-imx5.c b/arch/arm/mach-imx/ehci-imx5.c index c17fa131728b..a6a4afb0ad62 100644 --- a/arch/arm/mach-imx/ehci-imx5.c +++ b/arch/arm/mach-imx/ehci-imx5.c | |||
@@ -28,11 +28,14 @@ | |||
28 | #define MXC_OTG_UCTRL_OPM_BIT (1 << 24) /* OTG power mask */ | 28 | #define MXC_OTG_UCTRL_OPM_BIT (1 << 24) /* OTG power mask */ |
29 | #define MXC_H1_UCTRL_H1UIE_BIT (1 << 12) /* Host1 ULPI interrupt enable */ | 29 | #define MXC_H1_UCTRL_H1UIE_BIT (1 << 12) /* Host1 ULPI interrupt enable */ |
30 | #define MXC_H1_UCTRL_H1WIE_BIT (1 << 11) /* HOST1 wakeup intr enable */ | 30 | #define MXC_H1_UCTRL_H1WIE_BIT (1 << 11) /* HOST1 wakeup intr enable */ |
31 | #define MXC_H1_UCTRL_H1PM_BIT (1 << 8) /* HOST1 power mask */ | 31 | #define MXC_H1_UCTRL_H1PM_BIT (1 << 8) /* HOST1 power mask */ |
32 | 32 | ||
33 | /* USB_PHY_CTRL_FUNC */ | 33 | /* USB_PHY_CTRL_FUNC */ |
34 | #define MXC_OTG_PHYCTRL_OC_POL_BIT (1 << 9) /* OTG Polarity of Overcurrent */ | ||
34 | #define MXC_OTG_PHYCTRL_OC_DIS_BIT (1 << 8) /* OTG Disable Overcurrent Event */ | 35 | #define MXC_OTG_PHYCTRL_OC_DIS_BIT (1 << 8) /* OTG Disable Overcurrent Event */ |
36 | #define MXC_H1_OC_POL_BIT (1 << 6) /* UH1 Polarity of Overcurrent */ | ||
35 | #define MXC_H1_OC_DIS_BIT (1 << 5) /* UH1 Disable Overcurrent Event */ | 37 | #define MXC_H1_OC_DIS_BIT (1 << 5) /* UH1 Disable Overcurrent Event */ |
38 | #define MXC_OTG_PHYCTRL_PWR_POL_BIT (1 << 3) /* OTG Power Pin Polarity */ | ||
36 | 39 | ||
37 | /* USBH2CTRL */ | 40 | /* USBH2CTRL */ |
38 | #define MXC_H2_UCTRL_H2UIE_BIT (1 << 8) | 41 | #define MXC_H2_UCTRL_H2UIE_BIT (1 << 8) |
@@ -80,13 +83,21 @@ int mx51_initialize_usb_hw(int port, unsigned int flags) | |||
80 | if (flags & MXC_EHCI_INTERNAL_PHY) { | 83 | if (flags & MXC_EHCI_INTERNAL_PHY) { |
81 | v = __raw_readl(usbother_base + MXC_USB_PHY_CTR_FUNC_OFFSET); | 84 | v = __raw_readl(usbother_base + MXC_USB_PHY_CTR_FUNC_OFFSET); |
82 | 85 | ||
86 | if (flags & MXC_EHCI_OC_PIN_ACTIVE_LOW) | ||
87 | v |= MXC_OTG_PHYCTRL_OC_POL_BIT; | ||
88 | else | ||
89 | v &= ~MXC_OTG_PHYCTRL_OC_POL_BIT; | ||
83 | if (flags & MXC_EHCI_POWER_PINS_ENABLED) { | 90 | if (flags & MXC_EHCI_POWER_PINS_ENABLED) { |
84 | /* OC/USBPWR is not used */ | ||
85 | v |= MXC_OTG_PHYCTRL_OC_DIS_BIT; | ||
86 | } else { | ||
87 | /* OC/USBPWR is used */ | 91 | /* OC/USBPWR is used */ |
88 | v &= ~MXC_OTG_PHYCTRL_OC_DIS_BIT; | 92 | v &= ~MXC_OTG_PHYCTRL_OC_DIS_BIT; |
93 | } else { | ||
94 | /* OC/USBPWR is not used */ | ||
95 | v |= MXC_OTG_PHYCTRL_OC_DIS_BIT; | ||
89 | } | 96 | } |
97 | if (flags & MXC_EHCI_PWR_PIN_ACTIVE_HIGH) | ||
98 | v |= MXC_OTG_PHYCTRL_PWR_POL_BIT; | ||
99 | else | ||
100 | v &= ~MXC_OTG_PHYCTRL_PWR_POL_BIT; | ||
90 | __raw_writel(v, usbother_base + MXC_USB_PHY_CTR_FUNC_OFFSET); | 101 | __raw_writel(v, usbother_base + MXC_USB_PHY_CTR_FUNC_OFFSET); |
91 | 102 | ||
92 | v = __raw_readl(usbother_base + MXC_USBCTRL_OFFSET); | 103 | v = __raw_readl(usbother_base + MXC_USBCTRL_OFFSET); |
@@ -95,9 +106,9 @@ int mx51_initialize_usb_hw(int port, unsigned int flags) | |||
95 | else | 106 | else |
96 | v &= ~MXC_OTG_UCTRL_OWIE_BIT;/* OTG wakeup disable */ | 107 | v &= ~MXC_OTG_UCTRL_OWIE_BIT;/* OTG wakeup disable */ |
97 | if (flags & MXC_EHCI_POWER_PINS_ENABLED) | 108 | if (flags & MXC_EHCI_POWER_PINS_ENABLED) |
98 | v |= MXC_OTG_UCTRL_OPM_BIT; | ||
99 | else | ||
100 | v &= ~MXC_OTG_UCTRL_OPM_BIT; | 109 | v &= ~MXC_OTG_UCTRL_OPM_BIT; |
110 | else | ||
111 | v |= MXC_OTG_UCTRL_OPM_BIT; | ||
101 | __raw_writel(v, usbother_base + MXC_USBCTRL_OFFSET); | 112 | __raw_writel(v, usbother_base + MXC_USBCTRL_OFFSET); |
102 | } | 113 | } |
103 | break; | 114 | break; |
@@ -113,12 +124,16 @@ int mx51_initialize_usb_hw(int port, unsigned int flags) | |||
113 | } | 124 | } |
114 | 125 | ||
115 | if (flags & MXC_EHCI_POWER_PINS_ENABLED) | 126 | if (flags & MXC_EHCI_POWER_PINS_ENABLED) |
116 | v &= ~MXC_H1_UCTRL_H1PM_BIT; /* HOST1 power mask used*/ | 127 | v &= ~MXC_H1_UCTRL_H1PM_BIT; /* HOST1 power mask unused*/ |
117 | else | 128 | else |
118 | v |= MXC_H1_UCTRL_H1PM_BIT; /* HOST1 power mask used*/ | 129 | v |= MXC_H1_UCTRL_H1PM_BIT; /* HOST1 power mask used*/ |
119 | __raw_writel(v, usbother_base + MXC_USBCTRL_OFFSET); | 130 | __raw_writel(v, usbother_base + MXC_USBCTRL_OFFSET); |
120 | 131 | ||
121 | v = __raw_readl(usbother_base + MXC_USB_PHY_CTR_FUNC_OFFSET); | 132 | v = __raw_readl(usbother_base + MXC_USB_PHY_CTR_FUNC_OFFSET); |
133 | if (flags & MXC_EHCI_OC_PIN_ACTIVE_LOW) | ||
134 | v |= MXC_H1_OC_POL_BIT; | ||
135 | else | ||
136 | v &= ~MXC_H1_OC_POL_BIT; | ||
122 | if (flags & MXC_EHCI_POWER_PINS_ENABLED) | 137 | if (flags & MXC_EHCI_POWER_PINS_ENABLED) |
123 | v &= ~MXC_H1_OC_DIS_BIT; /* OC is used */ | 138 | v &= ~MXC_H1_OC_DIS_BIT; /* OC is used */ |
124 | else | 139 | else |
@@ -142,7 +157,7 @@ int mx51_initialize_usb_hw(int port, unsigned int flags) | |||
142 | } | 157 | } |
143 | 158 | ||
144 | if (flags & MXC_EHCI_POWER_PINS_ENABLED) | 159 | if (flags & MXC_EHCI_POWER_PINS_ENABLED) |
145 | v &= ~MXC_H2_UCTRL_H2PM_BIT; /* HOST2 power mask used*/ | 160 | v &= ~MXC_H2_UCTRL_H2PM_BIT; /* HOST2 power mask unused*/ |
146 | else | 161 | else |
147 | v |= MXC_H2_UCTRL_H2PM_BIT; /* HOST2 power mask used*/ | 162 | v |= MXC_H2_UCTRL_H2PM_BIT; /* HOST2 power mask used*/ |
148 | __raw_writel(v, usbother_base + MXC_USBH2CTRL_OFFSET); | 163 | __raw_writel(v, usbother_base + MXC_USBH2CTRL_OFFSET); |
diff --git a/arch/arm/mach-imx/mach-mx35_3ds.c b/arch/arm/mach-imx/mach-mx35_3ds.c index 6bff87907317..69018e5c52de 100644 --- a/arch/arm/mach-imx/mach-mx35_3ds.c +++ b/arch/arm/mach-imx/mach-mx35_3ds.c | |||
@@ -572,6 +572,7 @@ static void __init mx35_3ds_init(void) | |||
572 | 572 | ||
573 | imx35_add_fec(NULL); | 573 | imx35_add_fec(NULL); |
574 | imx35_add_imx2_wdt(); | 574 | imx35_add_imx2_wdt(); |
575 | imx35_add_mxc_rtc(); | ||
575 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 576 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
576 | 577 | ||
577 | imx35_add_imx_uart0(&uart_pdata); | 578 | imx35_add_imx_uart0(&uart_pdata); |