diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 21:19:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 21:19:05 -0400 |
commit | 61464c8357c8f6b780e4c44f5c79471799c51ca7 (patch) | |
tree | 4509cf075403965528f380f2f825c46908fb7d4e /drivers/usb/host | |
parent | 47061eda2584b9e4516d1e3a9713406a3a559ac8 (diff) | |
parent | 9cf1c871526cf6bfec2a653e1e068ee72592542c (diff) |
Merge tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM soc general cleanups from Olof Johansson:
"This is a large branch that contains a handful of different cleanups:
- Fixing up the I/O space remapping on PCI on ARM. This is a series
from Rob Herring that restructures how all pci devices allocate I/O
space, and it's part of the work to allow multiplatform kernels.
- A number of cleanup series for OMAP, moving and removing some
headers, sparse irq rework and in general preparation for
multiplatform.
- Final removal of all non-DT boards for Tegra, it is now
device-tree-only!
- Removal of a stale platform, nxp4008. It's an old mobile chipset
that is no longer in use, and was very likely never really used
with a mainline kernel. We have not been able to find anyone
interested in keeping it around in the kernel.
- Removal of the legacy dmaengine driver on tegra
+ A handful of other things that I haven't described above."
Fix up some conflicts with the staging tree (and because nxp4008 was
removed)
* tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (184 commits)
ARM: OMAP2+: serial: Change MAX_HSUART_PORTS to 6
ARM: OMAP4: twl-common: Support for additional devices on i2c1 bus
ARM: mmp: using for_each_set_bit to simplify the code
ARM: tegra: harmony: fix ldo7 regulator-name
ARM: OMAP2+: Make omap4-keypad.h local
ARM: OMAP2+: Make l4_3xxx.h local
ARM: OMAP2+: Make l4_2xxx.h local
ARM: OMAP2+: Make l3_3xxx.h local
ARM: OMAP2+: Make l3_2xxx.h local
ARM: OMAP1: Move irda.h from plat to mach
ARM: OMAP2+: Make hdq1w.h local
ARM: OMAP2+: Make gpmc-smsc911x.h local
ARM: OMAP2+: Make gpmc-smc91x.h local
ARM: OMAP1: Move flash.h from plat to mach
ARM: OMAP2+: Make debug-devices.h local
ARM: OMAP1: Move board-voiceblue.h from plat to mach
ARM: OMAP1: Move board-sx1.h from plat to mach
ARM: OMAP2+: Make omap-wakeupgen.h local
ARM: OMAP2+: Make omap-secure.h local
ARM: OMAP2+: Make ctrl_module_wkup_44xx.h local
...
Diffstat (limited to 'drivers/usb/host')
-rw-r--r-- | drivers/usb/host/Kconfig | 2 | ||||
-rw-r--r-- | drivers/usb/host/ohci-hcd.c | 2 | ||||
-rw-r--r-- | drivers/usb/host/ohci-nxp.c | 84 | ||||
-rw-r--r-- | drivers/usb/host/ohci-omap.c | 2 |
4 files changed, 4 insertions, 86 deletions
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index b1deb0fd4197..3f1431d37e1c 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig | |||
@@ -292,7 +292,7 @@ config USB_OHCI_HCD | |||
292 | depends on USB && USB_ARCH_HAS_OHCI | 292 | depends on USB && USB_ARCH_HAS_OHCI |
293 | select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 | 293 | select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 |
294 | select USB_OTG_UTILS if ARCH_OMAP | 294 | select USB_OTG_UTILS if ARCH_OMAP |
295 | depends on USB_ISP1301 || !(ARCH_LPC32XX || ARCH_PNX4008) | 295 | depends on USB_ISP1301 || !ARCH_LPC32XX |
296 | ---help--- | 296 | ---help--- |
297 | The Open Host Controller Interface (OHCI) is a standard for accessing | 297 | The Open Host Controller Interface (OHCI) is a standard for accessing |
298 | USB 1.1 host controller hardware. It does more in hardware than Intel's | 298 | USB 1.1 host controller hardware. It does more in hardware than Intel's |
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index 2b1e8d84c873..6780010e9c3c 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c | |||
@@ -1049,7 +1049,7 @@ MODULE_LICENSE ("GPL"); | |||
1049 | #define PLATFORM_DRIVER ohci_hcd_at91_driver | 1049 | #define PLATFORM_DRIVER ohci_hcd_at91_driver |
1050 | #endif | 1050 | #endif |
1051 | 1051 | ||
1052 | #if defined(CONFIG_ARCH_PNX4008) || defined(CONFIG_ARCH_LPC32XX) | 1052 | #ifdef CONFIG_ARCH_LPC32XX |
1053 | #include "ohci-nxp.c" | 1053 | #include "ohci-nxp.c" |
1054 | #define PLATFORM_DRIVER usb_hcd_nxp_driver | 1054 | #define PLATFORM_DRIVER usb_hcd_nxp_driver |
1055 | #endif | 1055 | #endif |
diff --git a/drivers/usb/host/ohci-nxp.c b/drivers/usb/host/ohci-nxp.c index c60066a63606..e068f034cb9b 100644 --- a/drivers/usb/host/ohci-nxp.c +++ b/drivers/usb/host/ohci-nxp.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * driver for NXP USB Host devices | 2 | * driver for NXP USB Host devices |
3 | * | 3 | * |
4 | * Currently supported OHCI host devices: | 4 | * Currently supported OHCI host devices: |
5 | * - Philips PNX4008 | ||
6 | * - NXP LPC32xx | 5 | * - NXP LPC32xx |
7 | * | 6 | * |
8 | * Authors: Dmitry Chigirev <source@mvista.com> | 7 | * Authors: Dmitry Chigirev <source@mvista.com> |
@@ -66,38 +65,6 @@ static struct clk *usb_pll_clk; | |||
66 | static struct clk *usb_dev_clk; | 65 | static struct clk *usb_dev_clk; |
67 | static struct clk *usb_otg_clk; | 66 | static struct clk *usb_otg_clk; |
68 | 67 | ||
69 | static void isp1301_configure_pnx4008(void) | ||
70 | { | ||
71 | /* PNX4008 only supports DAT_SE0 USB mode */ | ||
72 | /* PNX4008 R2A requires setting the MAX603 to output 3.6V */ | ||
73 | /* Power up externel charge-pump */ | ||
74 | |||
75 | i2c_smbus_write_byte_data(isp1301_i2c_client, | ||
76 | ISP1301_I2C_MODE_CONTROL_1, MC1_DAT_SE0 | MC1_SPEED_REG); | ||
77 | i2c_smbus_write_byte_data(isp1301_i2c_client, | ||
78 | ISP1301_I2C_MODE_CONTROL_1 | ISP1301_I2C_REG_CLEAR_ADDR, | ||
79 | ~(MC1_DAT_SE0 | MC1_SPEED_REG)); | ||
80 | i2c_smbus_write_byte_data(isp1301_i2c_client, | ||
81 | ISP1301_I2C_MODE_CONTROL_2, | ||
82 | MC2_BI_DI | MC2_PSW_EN | MC2_SPD_SUSP_CTRL); | ||
83 | i2c_smbus_write_byte_data(isp1301_i2c_client, | ||
84 | ISP1301_I2C_MODE_CONTROL_2 | ISP1301_I2C_REG_CLEAR_ADDR, | ||
85 | ~(MC2_BI_DI | MC2_PSW_EN | MC2_SPD_SUSP_CTRL)); | ||
86 | i2c_smbus_write_byte_data(isp1301_i2c_client, | ||
87 | ISP1301_I2C_OTG_CONTROL_1, OTG1_DM_PULLDOWN | OTG1_DP_PULLDOWN); | ||
88 | i2c_smbus_write_byte_data(isp1301_i2c_client, | ||
89 | ISP1301_I2C_OTG_CONTROL_1 | ISP1301_I2C_REG_CLEAR_ADDR, | ||
90 | ~(OTG1_DM_PULLDOWN | OTG1_DP_PULLDOWN)); | ||
91 | i2c_smbus_write_byte_data(isp1301_i2c_client, | ||
92 | ISP1301_I2C_INTERRUPT_LATCH | ISP1301_I2C_REG_CLEAR_ADDR, 0xFF); | ||
93 | i2c_smbus_write_byte_data(isp1301_i2c_client, | ||
94 | ISP1301_I2C_INTERRUPT_FALLING | ISP1301_I2C_REG_CLEAR_ADDR, | ||
95 | 0xFF); | ||
96 | i2c_smbus_write_byte_data(isp1301_i2c_client, | ||
97 | ISP1301_I2C_INTERRUPT_RISING | ISP1301_I2C_REG_CLEAR_ADDR, | ||
98 | 0xFF); | ||
99 | } | ||
100 | |||
101 | static void isp1301_configure_lpc32xx(void) | 68 | static void isp1301_configure_lpc32xx(void) |
102 | { | 69 | { |
103 | /* LPC32XX only supports DAT_SE0 USB mode */ | 70 | /* LPC32XX only supports DAT_SE0 USB mode */ |
@@ -149,10 +116,7 @@ static void isp1301_configure_lpc32xx(void) | |||
149 | 116 | ||
150 | static void isp1301_configure(void) | 117 | static void isp1301_configure(void) |
151 | { | 118 | { |
152 | if (machine_is_pnx4008()) | 119 | isp1301_configure_lpc32xx(); |
153 | isp1301_configure_pnx4008(); | ||
154 | else | ||
155 | isp1301_configure_lpc32xx(); | ||
156 | } | 120 | } |
157 | 121 | ||
158 | static inline void isp1301_vbus_on(void) | 122 | static inline void isp1301_vbus_on(void) |
@@ -241,47 +205,6 @@ static const struct hc_driver ohci_nxp_hc_driver = { | |||
241 | .start_port_reset = ohci_start_port_reset, | 205 | .start_port_reset = ohci_start_port_reset, |
242 | }; | 206 | }; |
243 | 207 | ||
244 | static void nxp_set_usb_bits(void) | ||
245 | { | ||
246 | if (machine_is_pnx4008()) { | ||
247 | start_int_set_falling_edge(SE_USB_OTG_ATX_INT_N); | ||
248 | start_int_ack(SE_USB_OTG_ATX_INT_N); | ||
249 | start_int_umask(SE_USB_OTG_ATX_INT_N); | ||
250 | |||
251 | start_int_set_rising_edge(SE_USB_OTG_TIMER_INT); | ||
252 | start_int_ack(SE_USB_OTG_TIMER_INT); | ||
253 | start_int_umask(SE_USB_OTG_TIMER_INT); | ||
254 | |||
255 | start_int_set_rising_edge(SE_USB_I2C_INT); | ||
256 | start_int_ack(SE_USB_I2C_INT); | ||
257 | start_int_umask(SE_USB_I2C_INT); | ||
258 | |||
259 | start_int_set_rising_edge(SE_USB_INT); | ||
260 | start_int_ack(SE_USB_INT); | ||
261 | start_int_umask(SE_USB_INT); | ||
262 | |||
263 | start_int_set_rising_edge(SE_USB_NEED_CLK_INT); | ||
264 | start_int_ack(SE_USB_NEED_CLK_INT); | ||
265 | start_int_umask(SE_USB_NEED_CLK_INT); | ||
266 | |||
267 | start_int_set_rising_edge(SE_USB_AHB_NEED_CLK_INT); | ||
268 | start_int_ack(SE_USB_AHB_NEED_CLK_INT); | ||
269 | start_int_umask(SE_USB_AHB_NEED_CLK_INT); | ||
270 | } | ||
271 | } | ||
272 | |||
273 | static void nxp_unset_usb_bits(void) | ||
274 | { | ||
275 | if (machine_is_pnx4008()) { | ||
276 | start_int_mask(SE_USB_OTG_ATX_INT_N); | ||
277 | start_int_mask(SE_USB_OTG_TIMER_INT); | ||
278 | start_int_mask(SE_USB_I2C_INT); | ||
279 | start_int_mask(SE_USB_INT); | ||
280 | start_int_mask(SE_USB_NEED_CLK_INT); | ||
281 | start_int_mask(SE_USB_AHB_NEED_CLK_INT); | ||
282 | } | ||
283 | } | ||
284 | |||
285 | static int __devinit usb_hcd_nxp_probe(struct platform_device *pdev) | 208 | static int __devinit usb_hcd_nxp_probe(struct platform_device *pdev) |
286 | { | 209 | { |
287 | struct usb_hcd *hcd = 0; | 210 | struct usb_hcd *hcd = 0; |
@@ -376,9 +299,6 @@ static int __devinit usb_hcd_nxp_probe(struct platform_device *pdev) | |||
376 | goto out8; | 299 | goto out8; |
377 | } | 300 | } |
378 | 301 | ||
379 | /* Set all USB bits in the Start Enable register */ | ||
380 | nxp_set_usb_bits(); | ||
381 | |||
382 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 302 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
383 | if (!res) { | 303 | if (!res) { |
384 | dev_err(&pdev->dev, "Failed to get MEM resource\n"); | 304 | dev_err(&pdev->dev, "Failed to get MEM resource\n"); |
@@ -413,7 +333,6 @@ static int __devinit usb_hcd_nxp_probe(struct platform_device *pdev) | |||
413 | 333 | ||
414 | nxp_stop_hc(); | 334 | nxp_stop_hc(); |
415 | out8: | 335 | out8: |
416 | nxp_unset_usb_bits(); | ||
417 | usb_put_hcd(hcd); | 336 | usb_put_hcd(hcd); |
418 | out7: | 337 | out7: |
419 | clk_disable(usb_otg_clk); | 338 | clk_disable(usb_otg_clk); |
@@ -441,7 +360,6 @@ static int usb_hcd_nxp_remove(struct platform_device *pdev) | |||
441 | nxp_stop_hc(); | 360 | nxp_stop_hc(); |
442 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); | 361 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); |
443 | usb_put_hcd(hcd); | 362 | usb_put_hcd(hcd); |
444 | nxp_unset_usb_bits(); | ||
445 | clk_disable(usb_pll_clk); | 363 | clk_disable(usb_pll_clk); |
446 | clk_put(usb_pll_clk); | 364 | clk_put(usb_pll_clk); |
447 | clk_disable(usb_dev_clk); | 365 | clk_disable(usb_dev_clk); |
diff --git a/drivers/usb/host/ohci-omap.c b/drivers/usb/host/ohci-omap.c index f8b2d91851f7..4531d03503c3 100644 --- a/drivers/usb/host/ohci-omap.c +++ b/drivers/usb/host/ohci-omap.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include <asm/io.h> | 24 | #include <asm/io.h> |
25 | #include <asm/mach-types.h> | 25 | #include <asm/mach-types.h> |
26 | 26 | ||
27 | #include <plat/mux.h> | 27 | #include <mach/mux.h> |
28 | #include <plat/fpga.h> | 28 | #include <plat/fpga.h> |
29 | 29 | ||
30 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |