diff options
| author | Tony Lindgren <tony@atomide.com> | 2012-10-24 15:05:45 -0700 | 
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2012-10-24 15:05:45 -0700 | 
| commit | 6d02643d64b4440394ee462ea4b870c8506cd9e7 (patch) | |
| tree | e58aba813aa1d040b98355325459ec8ad1c6a4e6 | |
| parent | 3d82cbbb3aadb4f8a30e3f614e51be96574a0855 (diff) | |
| parent | e8c4a7acc9ec0ee82feedcdc3c6d0ee44d67918a (diff) | |
| download | olio-linux-3.10-6d02643d64b4440394ee462ea4b870c8506cd9e7.tar.xz olio-linux-3.10-6d02643d64b4440394ee462ea4b870c8506cd9e7.zip | |
Merge branch 'omap-for-v3.8/cleanup-headers-usb' into omap-for-v3.8/cleanup-headers
Conflicts:
	arch/arm/mach-omap1/clock.c
	arch/arm/mach-omap2/board-2430sdp.c
	arch/arm/mach-omap2/board-4430sdp.c
	arch/arm/mach-omap2/board-cm-t35.c
	arch/arm/mach-omap2/board-igep0020.c
	arch/arm/mach-omap2/board-ldp.c
	arch/arm/mach-omap2/board-omap3beagle.c
	arch/arm/mach-omap2/board-omap3logic.c
	arch/arm/mach-omap2/board-omap4panda.c
	arch/arm/mach-omap2/board-overo.c
	arch/arm/mach-omap2/board-rm680.c
	arch/arm/mach-omap2/board-rx51.c
	arch/arm/mach-omap2/twl-common.c
	arch/arm/mach-omap2/usb-host.c
	arch/arm/mach-omap2/usb-musb.c
42 files changed, 201 insertions, 237 deletions
| diff --git a/arch/arm/mach-omap1/clock.c b/arch/arm/mach-omap1/clock.c index 9e74aa664ac..931f3f6d396 100644 --- a/arch/arm/mach-omap1/clock.c +++ b/arch/arm/mach-omap1/clock.c @@ -22,13 +22,11 @@  #include <asm/mach-types.h> -#include "soc.h" -#include <plat/usb.h> -  #include <mach/hardware.h>  #include "../plat-omap/sram.h" +#include "soc.h"  #include "iomap.h"  #include "clock.h"  #include "opp.h" diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c index 49e49d0b7cf..3fc6d839fb3 100644 --- a/arch/arm/mach-omap2/board-2430sdp.c +++ b/arch/arm/mach-omap2/board-2430sdp.c @@ -35,7 +35,6 @@  #include "common.h"  #include "gpmc.h" -#include <plat/usb.h>  #include "gpmc-smc91x.h"  #include <video/omapdss.h> diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c index d2a419fcfce..79fd9048fd7 100644 --- a/arch/arm/mach-omap2/board-3430sdp.c +++ b/arch/arm/mach-omap2/board-3430sdp.c @@ -30,7 +30,6 @@  #include <asm/mach/arch.h>  #include <asm/mach/map.h> -#include <plat/usb.h>  #include "common.h"  #include <plat-omap/dma-omap.h>  #include <video/omapdss.h> diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c index f1df60102a6..81871b1c735 100644 --- a/arch/arm/mach-omap2/board-3630sdp.c +++ b/arch/arm/mach-omap2/board-3630sdp.c @@ -18,7 +18,6 @@  #include "common.h"  #include "gpmc-smc91x.h" -#include <plat/usb.h>  #include "board-zoom.h" diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index 2ab267ec3b7..fd80d976872 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c @@ -27,6 +27,7 @@  #include <linux/leds.h>  #include <linux/leds_pwm.h>  #include <linux/platform_data/omap4-keypad.h> +#include <linux/usb/musb.h>  #include <asm/hardware/gic.h>  #include <asm/mach-types.h> @@ -34,7 +35,6 @@  #include <asm/mach/map.h>  #include "common.h" -#include <plat/usb.h>  #include "omap4-keypad.h"  #include <video/omapdss.h>  #include <video/omap-panel-nokia-dsi.h> diff --git a/arch/arm/mach-omap2/board-am3517crane.c b/arch/arm/mach-omap2/board-am3517crane.c index 318feadb1d6..603503c587b 100644 --- a/arch/arm/mach-omap2/board-am3517crane.c +++ b/arch/arm/mach-omap2/board-am3517crane.c @@ -26,7 +26,6 @@  #include <asm/mach/map.h>  #include "common.h" -#include <plat/usb.h>  #include "am35xx-emac.h"  #include "mux.h" diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c index e16289755f2..96d6c5ab5d4 100644 --- a/arch/arm/mach-omap2/board-am3517evm.c +++ b/arch/arm/mach-omap2/board-am3517evm.c @@ -25,6 +25,7 @@  #include <linux/can/platform/ti_hecc.h>  #include <linux/davinci_emac.h>  #include <linux/mmc/host.h> +#include <linux/usb/musb.h>  #include <linux/platform_data/gpio-omap.h>  #include "am35xx.h" @@ -33,7 +34,6 @@  #include <asm/mach/map.h>  #include "common.h" -#include <plat/usb.h>  #include <video/omapdss.h>  #include <video/omap-panel-generic-dpi.h>  #include <video/omap-panel-tfp410.h> diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c index 73e2ba9b343..cf9449bde18 100644 --- a/arch/arm/mach-omap2/board-cm-t35.c +++ b/arch/arm/mach-omap2/board-cm-t35.c @@ -38,10 +38,7 @@  #include <asm/mach/arch.h>  #include <asm/mach/map.h> -#include "common.h"  #include <linux/platform_data/mtd-nand-omap2.h> -#include "gpmc.h" -#include <plat/usb.h>  #include <video/omapdss.h>  #include <video/omap-panel-generic-dpi.h>  #include <video/omap-panel-tfp410.h> @@ -49,10 +46,12 @@  #include <mach/hardware.h> +#include "common.h"  #include "mux.h"  #include "sdram-micron-mt46h32m32lf-6.h"  #include "hsmmc.h"  #include "common-board-devices.h" +#include "gpmc.h"  #include "gpmc-nand.h"  #define CM_T35_GPIO_PENDOWN		57 diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-omap2/board-cm-t3517.c index b5495e41502..278664731d2 100644 --- a/arch/arm/mach-omap2/board-cm-t3517.c +++ b/arch/arm/mach-omap2/board-cm-t3517.c @@ -39,7 +39,6 @@  #include <asm/mach/map.h>  #include "common.h" -#include <plat/usb.h>  #include <linux/platform_data/mtd-nand-omap2.h>  #include "gpmc.h" diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c index 3eedb8fd037..933479e3673 100644 --- a/arch/arm/mach-omap2/board-devkit8000.c +++ b/arch/arm/mach-omap2/board-devkit8000.c @@ -41,7 +41,6 @@  #include "common.h"  #include "gpmc.h"  #include <linux/platform_data/mtd-nand-omap2.h> -#include <plat/usb.h>  #include <video/omapdss.h>  #include <video/omap-panel-generic-dpi.h>  #include <video/omap-panel-tfp410.h> diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index 9a9a9b5f78b..dbc705ac433 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c @@ -29,14 +29,12 @@  #include <asm/mach-types.h>  #include <asm/mach/arch.h> -#include "common.h" -#include "gpmc.h" -#include <plat/usb.h> -  #include <video/omapdss.h>  #include <video/omap-panel-tfp410.h>  #include <linux/platform_data/mtd-onenand-omap2.h> +#include "common.h" +#include "gpmc.h"  #include "mux.h"  #include "hsmmc.h"  #include "sdram-numonyx-m65kxxxxam.h" diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c index 35ee018d928..1164b106103 100644 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c @@ -35,9 +35,8 @@  #include <asm/mach/map.h>  #include "common.h" -#include "gpmc.h"  #include "board-zoom.h" -#include <plat/usb.h> +#include "gpmc.h"  #include "gpmc-smsc911x.h"  #include <video/omapdss.h> diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index a5497ce0a6c..85c09a09c5e 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c @@ -38,14 +38,13 @@  #include <asm/mach/map.h>  #include <asm/mach/flash.h> -#include "common.h"  #include <video/omapdss.h>  #include <video/omap-panel-tfp410.h> -#include "gpmc.h"  #include <linux/platform_data/mtd-nand-omap2.h> -#include <plat/usb.h> -#include "omap_device.h" +#include "common.h" +#include "omap_device.h" +#include "gpmc.h"  #include "soc.h"  #include "mux.h"  #include "hsmmc.h" diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index 8479779fd34..3c0b9a90f3b 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c @@ -32,6 +32,7 @@  #include <linux/spi/ads7846.h>  #include <linux/i2c/twl.h>  #include <linux/usb/otg.h> +#include <linux/usb/musb.h>  #include <linux/usb/nop-usb-xceiv.h>  #include <linux/smsc911x.h> @@ -45,7 +46,6 @@  #include <asm/mach/arch.h>  #include <asm/mach/map.h> -#include <plat/usb.h>  #include <linux/platform_data/mtd-nand-omap2.h>  #include "common.h"  #include <linux/platform_data/spi-omap2-mcspi.h> diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-omap2/board-omap3logic.c index 6f58cad5bf7..e84e2a87537 100644 --- a/arch/arm/mach-omap2/board-omap3logic.c +++ b/arch/arm/mach-omap2/board-omap3logic.c @@ -34,8 +34,6 @@  #include <asm/mach/arch.h>  #include <asm/mach/map.h> -#include <plat/usb.h> -  #include "common.h"  #include "mux.h"  #include "hsmmc.h" diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index f286b4b4bd5..ce31bd329f3 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c @@ -42,7 +42,6 @@  #include <asm/mach/map.h>  #include "common.h" -#include <plat/usb.h>  #include <video/omapdss.h>  #include <linux/platform_data/mtd-nand-omap2.h> diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c index 3c83b9fbff4..ba1124538b9 100644 --- a/arch/arm/mach-omap2/board-omap3stalker.c +++ b/arch/arm/mach-omap2/board-omap3stalker.c @@ -42,7 +42,6 @@  #include "common.h"  #include "gpmc.h"  #include <linux/platform_data/mtd-nand-omap2.h> -#include <plat/usb.h>  #include <video/omapdss.h>  #include <video/omap-panel-generic-dpi.h>  #include <video/omap-panel-tfp410.h> diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c index cd282ae0856..a225d819633 100644 --- a/arch/arm/mach-omap2/board-omap3touchbook.c +++ b/arch/arm/mach-omap2/board-omap3touchbook.c @@ -46,7 +46,6 @@  #include "common.h"  #include "gpmc.h"  #include <linux/platform_data/mtd-nand-omap2.h> -#include <plat/usb.h>  #include "mux.h"  #include "hsmmc.h" diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index e9ce9fb9ffa..8c00b99cd2a 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c @@ -29,6 +29,7 @@  #include <linux/regulator/machine.h>  #include <linux/regulator/fixed.h>  #include <linux/ti_wilink_st.h> +#include <linux/usb/musb.h>  #include <linux/wl12xx.h>  #include <linux/platform_data/omap-abe-twl6040.h> @@ -38,10 +39,9 @@  #include <asm/mach/map.h>  #include <video/omapdss.h> -#include "common.h" -#include <plat/usb.h>  #include <video/omap-panel-tfp410.h> +#include "common.h"  #include "soc.h"  #include "mmc.h"  #include "hsmmc.h" diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c index 3a9d1fa8beb..1cfb0374f5e 100644 --- a/arch/arm/mach-omap2/board-overo.c +++ b/arch/arm/mach-omap2/board-overo.c @@ -49,11 +49,11 @@  #include <video/omapdss.h>  #include <video/omap-panel-generic-dpi.h>  #include <video/omap-panel-tfp410.h> -#include "gpmc.h" -#include <plat/usb.h> +#include "common.h"  #include "mux.h"  #include "sdram-micron-mt46h32m32lf-6.h" +#include "gpmc.h"  #include "hsmmc.h"  #include "board-flash.h"  #include "common-board-devices.h" diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c index d0a33130aaa..1997e0e722a 100644 --- a/arch/arm/mach-omap2/board-rm680.c +++ b/arch/arm/mach-omap2/board-rm680.c @@ -22,11 +22,9 @@  #include <asm/mach/arch.h>  #include <asm/mach-types.h> -#include <plat/usb.h> -#include "gpmc.h"  #include "common.h" -  #include "mux.h" +#include "gpmc.h"  #include "mmc.h"  #include "hsmmc.h"  #include "sdram-nokia.h" diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c index 63b33c63bd9..c388aec1479 100644 --- a/arch/arm/mach-omap2/board-rx51.c +++ b/arch/arm/mach-omap2/board-rx51.c @@ -17,6 +17,7 @@  #include <linux/io.h>  #include <linux/gpio.h>  #include <linux/leds.h> +#include <linux/usb/musb.h>  #include <linux/platform_data/spi-omap2-mcspi.h>  #include <asm/mach-types.h> @@ -24,7 +25,6 @@  #include <asm/mach/map.h>  #include <plat-omap/dma-omap.h> -#include <plat/usb.h>  #include "common.h"  #include "mux.h" diff --git a/arch/arm/mach-omap2/board-ti8168evm.c b/arch/arm/mach-omap2/board-ti8168evm.c index c4f8833b4c3..5e672c2b6a4 100644 --- a/arch/arm/mach-omap2/board-ti8168evm.c +++ b/arch/arm/mach-omap2/board-ti8168evm.c @@ -14,13 +14,14 @@   */  #include <linux/kernel.h>  #include <linux/init.h> +#include <linux/platform_device.h> +#include <linux/usb/musb.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h>  #include "common.h" -#include <plat/usb.h>  static struct omap_musb_board_data musb_board_data = {  	.set_phy_power	= ti81xx_musb_phy_power, diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c index 74ac565ca9d..26e07addc9d 100644 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c @@ -26,7 +26,6 @@  #include <asm/mach/map.h>  #include "common.h" -#include <plat/usb.h>  #include "board-zoom.h" diff --git a/arch/arm/mach-omap2/board-zoom.c b/arch/arm/mach-omap2/board-zoom.c index 50e98795b09..8feb4d99b96 100644 --- a/arch/arm/mach-omap2/board-zoom.c +++ b/arch/arm/mach-omap2/board-zoom.c @@ -22,7 +22,6 @@  #include <asm/mach/arch.h>  #include "common.h" -#include <plat/usb.h>  #include "board-zoom.h" diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index c85022ab22d..c925c805969 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h @@ -39,6 +39,8 @@  #include "i2c.h"  #include "serial.h" +#include "usb.h" +  #define OMAP_INTC_START		NR_IRQS  #ifdef CONFIG_SOC_OMAP2420 diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c index d992db8ff0b..4d76a3ca5bf 100644 --- a/arch/arm/mach-omap2/omap_phy_internal.c +++ b/arch/arm/mach-omap2/omap_phy_internal.c @@ -27,11 +27,11 @@  #include <linux/io.h>  #include <linux/err.h>  #include <linux/usb.h> - -#include <plat/usb.h> +#include <linux/usb/musb.h>  #include "soc.h"  #include "control.h" +#include "usb.h"  void am35x_musb_reset(void)  { diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c index 1a0739d397f..827f54a1dd1 100644 --- a/arch/arm/mach-omap2/twl-common.c +++ b/arch/arm/mach-omap2/twl-common.c @@ -26,8 +26,6 @@  #include <linux/regulator/machine.h>  #include <linux/regulator/fixed.h> -#include <plat/usb.h> -  #include "soc.h"  #include "twl-common.h"  #include "pm.h" diff --git a/arch/arm/mach-omap2/usb-host.c b/arch/arm/mach-omap2/usb-host.c index 4fe67129643..d1dbe125b34 100644 --- a/arch/arm/mach-omap2/usb-host.c +++ b/arch/arm/mach-omap2/usb-host.c @@ -25,11 +25,10 @@  #include <asm/io.h> -#include <plat/usb.h>  #include "soc.h"  #include "omap_device.h" -  #include "mux.h" +#include "usb.h"  #ifdef CONFIG_MFD_OMAP_USB_HOST diff --git a/arch/arm/mach-omap2/usb-musb.c b/arch/arm/mach-omap2/usb-musb.c index 07f385a2900..7b33b375fe7 100644 --- a/arch/arm/mach-omap2/usb-musb.c +++ b/arch/arm/mach-omap2/usb-musb.c @@ -25,11 +25,10 @@  #include <linux/io.h>  #include <linux/usb/musb.h> -#include <plat/usb.h>  #include "omap_device.h" -  #include "soc.h"  #include "mux.h" +#include "usb.h"  static struct musb_hdrc_config musb_config = {  	.multipoint	= 1, diff --git a/arch/arm/mach-omap2/usb-tusb6010.c b/arch/arm/mach-omap2/usb-tusb6010.c index 6064425ed47..a8795ff19e6 100644 --- a/arch/arm/mach-omap2/usb-tusb6010.c +++ b/arch/arm/mach-omap2/usb-tusb6010.c @@ -15,6 +15,7 @@  #include <linux/platform_device.h>  #include <linux/gpio.h>  #include <linux/export.h> +#include <linux/platform_data/usb-omap.h>  #include <linux/usb/musb.h> diff --git a/arch/arm/mach-omap2/usb.h b/arch/arm/mach-omap2/usb.h new file mode 100644 index 00000000000..9b986ead7c4 --- /dev/null +++ b/arch/arm/mach-omap2/usb.h @@ -0,0 +1,82 @@ +#include <linux/platform_data/usb-omap.h> + +/* AM35x */ +/* USB 2.0 PHY Control */ +#define CONF2_PHY_GPIOMODE	(1 << 23) +#define CONF2_OTGMODE		(3 << 14) +#define CONF2_NO_OVERRIDE	(0 << 14) +#define CONF2_FORCE_HOST	(1 << 14) +#define CONF2_FORCE_DEVICE	(2 << 14) +#define CONF2_FORCE_HOST_VBUS_LOW (3 << 14) +#define CONF2_SESENDEN		(1 << 13) +#define CONF2_VBDTCTEN		(1 << 12) +#define CONF2_REFFREQ_24MHZ	(2 << 8) +#define CONF2_REFFREQ_26MHZ	(7 << 8) +#define CONF2_REFFREQ_13MHZ	(6 << 8) +#define CONF2_REFFREQ		(0xf << 8) +#define CONF2_PHYCLKGD		(1 << 7) +#define CONF2_VBUSSENSE		(1 << 6) +#define CONF2_PHY_PLLON		(1 << 5) +#define CONF2_RESET		(1 << 4) +#define CONF2_PHYPWRDN		(1 << 3) +#define CONF2_OTGPWRDN		(1 << 2) +#define CONF2_DATPOL		(1 << 1) + +/* TI81XX specific definitions */ +#define USBCTRL0	0x620 +#define USBSTAT0	0x624 + +/* TI816X PHY controls bits */ +#define TI816X_USBPHY0_NORMAL_MODE	(1 << 0) +#define TI816X_USBPHY_REFCLK_OSC	(1 << 8) + +/* TI814X PHY controls bits */ +#define USBPHY_CM_PWRDN		(1 << 0) +#define USBPHY_OTG_PWRDN	(1 << 1) +#define USBPHY_CHGDET_DIS	(1 << 2) +#define USBPHY_CHGDET_RSTRT	(1 << 3) +#define USBPHY_SRCONDM		(1 << 4) +#define USBPHY_SINKONDP		(1 << 5) +#define USBPHY_CHGISINK_EN	(1 << 6) +#define USBPHY_CHGVSRC_EN	(1 << 7) +#define USBPHY_DMPULLUP		(1 << 8) +#define USBPHY_DPPULLUP		(1 << 9) +#define USBPHY_CDET_EXTCTL	(1 << 10) +#define USBPHY_GPIO_MODE	(1 << 12) +#define USBPHY_DPOPBUFCTL	(1 << 13) +#define USBPHY_DMOPBUFCTL	(1 << 14) +#define USBPHY_DPINPUT		(1 << 15) +#define USBPHY_DMINPUT		(1 << 16) +#define USBPHY_DPGPIO_PD	(1 << 17) +#define USBPHY_DMGPIO_PD	(1 << 18) +#define USBPHY_OTGVDET_EN	(1 << 19) +#define USBPHY_OTGSESSEND_EN	(1 << 20) +#define USBPHY_DATA_POLARITY	(1 << 23) + +struct usbhs_omap_board_data { +	enum usbhs_omap_port_mode	port_mode[OMAP3_HS_USB_PORTS]; + +	/* have to be valid if phy_reset is true and portx is in phy mode */ +	int	reset_gpio_port[OMAP3_HS_USB_PORTS]; + +	/* Set this to true for ES2.x silicon */ +	unsigned			es2_compatibility:1; + +	unsigned			phy_reset:1; + +	/* +	 * Regulators for USB PHYs. +	 * Each PHY can have a separate regulator. +	 */ +	struct regulator		*regulator[OMAP3_HS_USB_PORTS]; +}; + +extern void usb_musb_init(struct omap_musb_board_data *board_data); +extern void usbhs_init(const struct usbhs_omap_board_data *pdata); + +extern void am35x_musb_reset(void); +extern void am35x_musb_phy_power(u8 on); +extern void am35x_musb_clear_irq(void); +extern void am35x_set_mode(u8 musb_mode); +extern void ti81xx_musb_phy_power(u8 on); + diff --git a/arch/arm/plat-omap/include/plat/usb.h b/arch/arm/plat-omap/include/plat/usb.h deleted file mode 100644 index 87ee140fefa..00000000000 --- a/arch/arm/plat-omap/include/plat/usb.h +++ /dev/null @@ -1,179 +0,0 @@ -// include/asm-arm/mach-omap/usb.h - -#ifndef	__ASM_ARCH_OMAP_USB_H -#define	__ASM_ARCH_OMAP_USB_H - -#include <linux/io.h> -#include <linux/platform_device.h> -#include <linux/usb/musb.h> - -#define OMAP3_HS_USB_PORTS	3 - -enum usbhs_omap_port_mode { -	OMAP_USBHS_PORT_MODE_UNUSED, -	OMAP_EHCI_PORT_MODE_PHY, -	OMAP_EHCI_PORT_MODE_TLL, -	OMAP_EHCI_PORT_MODE_HSIC, -	OMAP_OHCI_PORT_MODE_PHY_6PIN_DATSE0, -	OMAP_OHCI_PORT_MODE_PHY_6PIN_DPDM, -	OMAP_OHCI_PORT_MODE_PHY_3PIN_DATSE0, -	OMAP_OHCI_PORT_MODE_PHY_4PIN_DPDM, -	OMAP_OHCI_PORT_MODE_TLL_6PIN_DATSE0, -	OMAP_OHCI_PORT_MODE_TLL_6PIN_DPDM, -	OMAP_OHCI_PORT_MODE_TLL_3PIN_DATSE0, -	OMAP_OHCI_PORT_MODE_TLL_4PIN_DPDM, -	OMAP_OHCI_PORT_MODE_TLL_2PIN_DATSE0, -	OMAP_OHCI_PORT_MODE_TLL_2PIN_DPDM -}; - -struct usbhs_omap_board_data { -	enum usbhs_omap_port_mode	port_mode[OMAP3_HS_USB_PORTS]; - -	/* have to be valid if phy_reset is true and portx is in phy mode */ -	int	reset_gpio_port[OMAP3_HS_USB_PORTS]; - -	/* Set this to true for ES2.x silicon */ -	unsigned			es2_compatibility:1; - -	unsigned			phy_reset:1; - -	/* -	 * Regulators for USB PHYs. -	 * Each PHY can have a separate regulator. -	 */ -	struct regulator		*regulator[OMAP3_HS_USB_PORTS]; -}; - -#ifdef CONFIG_ARCH_OMAP2PLUS - -struct ehci_hcd_omap_platform_data { -	enum usbhs_omap_port_mode	port_mode[OMAP3_HS_USB_PORTS]; -	int				reset_gpio_port[OMAP3_HS_USB_PORTS]; -	struct regulator		*regulator[OMAP3_HS_USB_PORTS]; -	unsigned			phy_reset:1; -}; - -struct ohci_hcd_omap_platform_data { -	enum usbhs_omap_port_mode	port_mode[OMAP3_HS_USB_PORTS]; -	unsigned			es2_compatibility:1; -}; - -struct usbhs_omap_platform_data { -	enum usbhs_omap_port_mode		port_mode[OMAP3_HS_USB_PORTS]; - -	struct ehci_hcd_omap_platform_data	*ehci_data; -	struct ohci_hcd_omap_platform_data	*ohci_data; -}; - -struct usbtll_omap_platform_data { -	enum usbhs_omap_port_mode		port_mode[OMAP3_HS_USB_PORTS]; -}; -/*-------------------------------------------------------------------------*/ - -struct omap_musb_board_data { -	u8	interface_type; -	u8	mode; -	u16	power; -	unsigned extvbus:1; -	void	(*set_phy_power)(u8 on); -	void	(*clear_irq)(void); -	void	(*set_mode)(u8 mode); -	void	(*reset)(void); -}; - -enum musb_interface    {MUSB_INTERFACE_ULPI, MUSB_INTERFACE_UTMI}; - -extern void usb_musb_init(struct omap_musb_board_data *board_data); - -extern void usbhs_init(const struct usbhs_omap_board_data *pdata); -extern int omap_tll_enable(void); -extern int omap_tll_disable(void); - -extern int omap4430_phy_power(struct device *dev, int ID, int on); -extern int omap4430_phy_set_clk(struct device *dev, int on); -extern int omap4430_phy_init(struct device *dev); -extern int omap4430_phy_exit(struct device *dev); -extern int omap4430_phy_suspend(struct device *dev, int suspend); - -#endif - -extern void am35x_musb_reset(void); -extern void am35x_musb_phy_power(u8 on); -extern void am35x_musb_clear_irq(void); -extern void am35x_set_mode(u8 musb_mode); -extern void ti81xx_musb_phy_power(u8 on); - -/* AM35x */ -/* USB 2.0 PHY Control */ -#define CONF2_PHY_GPIOMODE	(1 << 23) -#define CONF2_OTGMODE		(3 << 14) -#define CONF2_NO_OVERRIDE	(0 << 14) -#define CONF2_FORCE_HOST	(1 << 14) -#define CONF2_FORCE_DEVICE	(2 << 14) -#define CONF2_FORCE_HOST_VBUS_LOW (3 << 14) -#define CONF2_SESENDEN		(1 << 13) -#define CONF2_VBDTCTEN		(1 << 12) -#define CONF2_REFFREQ_24MHZ	(2 << 8) -#define CONF2_REFFREQ_26MHZ	(7 << 8) -#define CONF2_REFFREQ_13MHZ	(6 << 8) -#define CONF2_REFFREQ		(0xf << 8) -#define CONF2_PHYCLKGD		(1 << 7) -#define CONF2_VBUSSENSE		(1 << 6) -#define CONF2_PHY_PLLON		(1 << 5) -#define CONF2_RESET		(1 << 4) -#define CONF2_PHYPWRDN		(1 << 3) -#define CONF2_OTGPWRDN		(1 << 2) -#define CONF2_DATPOL		(1 << 1) - -/* TI81XX specific definitions */ -#define USBCTRL0	0x620 -#define USBSTAT0	0x624 - -/* TI816X PHY controls bits */ -#define TI816X_USBPHY0_NORMAL_MODE	(1 << 0) -#define TI816X_USBPHY_REFCLK_OSC	(1 << 8) - -/* TI814X PHY controls bits */ -#define USBPHY_CM_PWRDN		(1 << 0) -#define USBPHY_OTG_PWRDN	(1 << 1) -#define USBPHY_CHGDET_DIS	(1 << 2) -#define USBPHY_CHGDET_RSTRT	(1 << 3) -#define USBPHY_SRCONDM		(1 << 4) -#define USBPHY_SINKONDP		(1 << 5) -#define USBPHY_CHGISINK_EN	(1 << 6) -#define USBPHY_CHGVSRC_EN	(1 << 7) -#define USBPHY_DMPULLUP		(1 << 8) -#define USBPHY_DPPULLUP		(1 << 9) -#define USBPHY_CDET_EXTCTL	(1 << 10) -#define USBPHY_GPIO_MODE	(1 << 12) -#define USBPHY_DPOPBUFCTL	(1 << 13) -#define USBPHY_DMOPBUFCTL	(1 << 14) -#define USBPHY_DPINPUT		(1 << 15) -#define USBPHY_DMINPUT		(1 << 16) -#define USBPHY_DPGPIO_PD	(1 << 17) -#define USBPHY_DMGPIO_PD	(1 << 18) -#define USBPHY_OTGVDET_EN	(1 << 19) -#define USBPHY_OTGSESSEND_EN	(1 << 20) -#define USBPHY_DATA_POLARITY	(1 << 23) - -#if defined(CONFIG_ARCH_OMAP1) && defined(CONFIG_USB) -u32 omap1_usb0_init(unsigned nwires, unsigned is_device); -u32 omap1_usb1_init(unsigned nwires); -u32 omap1_usb2_init(unsigned nwires, unsigned alt_pingroup); -#else -static inline u32 omap1_usb0_init(unsigned nwires, unsigned is_device) -{ -	return 0; -} -static inline u32 omap1_usb1_init(unsigned nwires) -{ -	return 0; - -} -static inline u32 omap1_usb2_init(unsigned nwires, unsigned alt_pingroup) -{ -	return 0; -} -#endif - -#endif	/* __ASM_ARCH_OMAP_USB_H */ diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c index 23cec57c02b..cebfe0a68aa 100644 --- a/drivers/mfd/omap-usb-host.c +++ b/drivers/mfd/omap-usb-host.c @@ -26,9 +26,12 @@  #include <linux/spinlock.h>  #include <linux/gpio.h>  #include <plat/cpu.h> -#include <plat/usb.h> +#include <linux/platform_device.h> +#include <linux/platform_data/usb-omap.h>  #include <linux/pm_runtime.h> +#include "omap-usb.h" +  #define USBHS_DRIVER_NAME	"usbhs_omap"  #define OMAP_EHCI_DEVICE	"ehci-omap"  #define OMAP_OHCI_DEVICE	"ohci-omap3" diff --git a/drivers/mfd/omap-usb-tll.c b/drivers/mfd/omap-usb-tll.c index 4b7757b8430..0db0dfa3d08 100644 --- a/drivers/mfd/omap-usb-tll.c +++ b/drivers/mfd/omap-usb-tll.c @@ -25,8 +25,8 @@  #include <linux/clk.h>  #include <linux/io.h>  #include <linux/err.h> -#include <plat/usb.h>  #include <linux/pm_runtime.h> +#include <linux/platform_data/usb-omap.h>  #define USBTLL_DRIVER_NAME	"usbhs_tll" diff --git a/drivers/mfd/omap-usb.h b/drivers/mfd/omap-usb.h new file mode 100644 index 00000000000..972aa961b06 --- /dev/null +++ b/drivers/mfd/omap-usb.h @@ -0,0 +1,2 @@ +extern int omap_tll_enable(void); +extern int omap_tll_disable(void); diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c index d7fe287d067..0d5ac36fdf4 100644 --- a/drivers/usb/host/ehci-omap.c +++ b/drivers/usb/host/ehci-omap.c @@ -39,12 +39,13 @@  #include <linux/platform_device.h>  #include <linux/slab.h>  #include <linux/usb/ulpi.h> -#include <plat/usb.h>  #include <linux/regulator/consumer.h>  #include <linux/pm_runtime.h>  #include <linux/gpio.h>  #include <linux/clk.h> +#include <linux/platform_data/usb-omap.h> +  /* EHCI Register Set */  #define EHCI_INSNREG04					(0xA0)  #define EHCI_INSNREG04_DISABLE_UNSUSPEND		(1 << 5) diff --git a/drivers/usb/host/ohci-omap3.c b/drivers/usb/host/ohci-omap3.c index 1b8133b6e45..bd7803dce9b 100644 --- a/drivers/usb/host/ohci-omap3.c +++ b/drivers/usb/host/ohci-omap3.c @@ -30,7 +30,6 @@   */  #include <linux/platform_device.h> -#include <plat/usb.h>  #include <linux/pm_runtime.h>  /*-------------------------------------------------------------------------*/ diff --git a/drivers/usb/musb/am35x.c b/drivers/usb/musb/am35x.c index c964d6af178..a87cdd2387c 100644 --- a/drivers/usb/musb/am35x.c +++ b/drivers/usb/musb/am35x.c @@ -34,8 +34,7 @@  #include <linux/platform_device.h>  #include <linux/dma-mapping.h>  #include <linux/usb/nop-usb-xceiv.h> - -#include <plat/usb.h> +#include <linux/platform_data/usb-omap.h>  #include "musb_core.h" diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c index 444346e1e10..a67af21c146 100644 --- a/drivers/usb/musb/musb_dsps.c +++ b/drivers/usb/musb/musb_dsps.c @@ -38,13 +38,12 @@  #include <linux/pm_runtime.h>  #include <linux/module.h>  #include <linux/usb/nop-usb-xceiv.h> +#include <linux/platform_data/usb-omap.h>  #include <linux/of.h>  #include <linux/of_device.h>  #include <linux/of_address.h> -#include <plat/usb.h> -  #include "musb_core.h"  #ifdef CONFIG_OF diff --git a/drivers/usb/musb/omap2430.h b/drivers/usb/musb/omap2430.h index b85f3973e78..8ef656659fc 100644 --- a/drivers/usb/musb/omap2430.h +++ b/drivers/usb/musb/omap2430.h @@ -10,7 +10,7 @@  #ifndef __MUSB_OMAP243X_H__  #define __MUSB_OMAP243X_H__ -#include <plat/usb.h> +#include <linux/platform_data/usb-omap.h>  /*   * OMAP2430-specific definitions diff --git a/include/linux/platform_data/usb-omap.h b/include/linux/platform_data/usb-omap.h new file mode 100644 index 00000000000..8570bcfe631 --- /dev/null +++ b/include/linux/platform_data/usb-omap.h @@ -0,0 +1,80 @@ +/* + * usb-omap.h - Platform data for the various OMAP USB IPs + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com + * + * This software is distributed under the terms of the GNU General Public + * License ("GPL") version 2, as published by the Free Software Foundation. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#define OMAP3_HS_USB_PORTS	3 + +enum usbhs_omap_port_mode { +	OMAP_USBHS_PORT_MODE_UNUSED, +	OMAP_EHCI_PORT_MODE_PHY, +	OMAP_EHCI_PORT_MODE_TLL, +	OMAP_EHCI_PORT_MODE_HSIC, +	OMAP_OHCI_PORT_MODE_PHY_6PIN_DATSE0, +	OMAP_OHCI_PORT_MODE_PHY_6PIN_DPDM, +	OMAP_OHCI_PORT_MODE_PHY_3PIN_DATSE0, +	OMAP_OHCI_PORT_MODE_PHY_4PIN_DPDM, +	OMAP_OHCI_PORT_MODE_TLL_6PIN_DATSE0, +	OMAP_OHCI_PORT_MODE_TLL_6PIN_DPDM, +	OMAP_OHCI_PORT_MODE_TLL_3PIN_DATSE0, +	OMAP_OHCI_PORT_MODE_TLL_4PIN_DPDM, +	OMAP_OHCI_PORT_MODE_TLL_2PIN_DATSE0, +	OMAP_OHCI_PORT_MODE_TLL_2PIN_DPDM +}; + +struct usbtll_omap_platform_data { +	enum usbhs_omap_port_mode		port_mode[OMAP3_HS_USB_PORTS]; +}; + +struct ehci_hcd_omap_platform_data { +	enum usbhs_omap_port_mode	port_mode[OMAP3_HS_USB_PORTS]; +	int				reset_gpio_port[OMAP3_HS_USB_PORTS]; +	struct regulator		*regulator[OMAP3_HS_USB_PORTS]; +	unsigned			phy_reset:1; +}; + +struct ohci_hcd_omap_platform_data { +	enum usbhs_omap_port_mode	port_mode[OMAP3_HS_USB_PORTS]; +	unsigned			es2_compatibility:1; +}; + +struct usbhs_omap_platform_data { +	enum usbhs_omap_port_mode		port_mode[OMAP3_HS_USB_PORTS]; + +	struct ehci_hcd_omap_platform_data	*ehci_data; +	struct ohci_hcd_omap_platform_data	*ohci_data; +}; + +/*-------------------------------------------------------------------------*/ + +struct omap_musb_board_data { +	u8	interface_type; +	u8	mode; +	u16	power; +	unsigned extvbus:1; +	void	(*set_phy_power)(u8 on); +	void	(*clear_irq)(void); +	void	(*set_mode)(u8 mode); +	void	(*reset)(void); +}; + +enum musb_interface { +	MUSB_INTERFACE_ULPI, +	MUSB_INTERFACE_UTMI +}; |