diff options
Diffstat (limited to 'arch/arm/mach-omap2')
27 files changed, 101 insertions, 40 deletions
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c index 5f413968d56..a3e0aaa4886 100644 --- a/arch/arm/mach-omap2/board-2430sdp.c +++ b/arch/arm/mach-omap2/board-2430sdp.c @@ -27,6 +27,7 @@  #include <linux/clk.h>  #include <linux/io.h>  #include <linux/gpio.h> +#include <linux/usb/phy.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> @@ -263,6 +264,7 @@ static void __init omap_2430sdp_init(void)  	omap_hsmmc_init(mmc);  	omap_mux_init_signal("usb0hs_stp", OMAP_PULL_ENA | OMAP_PULL_UP); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	board_smc91x_init(); diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c index 8e2513f6a28..e71ebdefc67 100644 --- a/arch/arm/mach-omap2/board-3430sdp.c +++ b/arch/arm/mach-omap2/board-3430sdp.c @@ -25,6 +25,7 @@  #include <linux/gpio.h>  #include <linux/mmc/host.h>  #include <linux/platform_data/spi-omap2-mcspi.h> +#include <linux/usb/phy.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> @@ -579,6 +580,7 @@ static void __init omap_3430sdp_init(void)  	omap_ads7846_init(1, gpio_pendown, 310, NULL);  	omap_serial_init();  	omap_sdrc_init(hyb18m512160af6_sdrc_params, NULL); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	board_smc91x_init();  	board_flash_init(sdp_flash_partitions, chip_sel_3430, 0); diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index f8eeef40efe..508e2752b7d 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c @@ -29,6 +29,7 @@  #include <linux/irqchip/arm-gic.h>  #include <linux/platform_data/omap4-keypad.h>  #include <linux/usb/musb.h> +#include <linux/usb/phy.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> @@ -696,6 +697,7 @@ static void __init omap_4430sdp_init(void)  	omap4_sdp4430_wifi_init();  	omap4_twl6030_hsmmc_init(mmc); +	usb_bind_phy("musb-hdrc.0.auto", 0, "omap-usb2.1.auto");  	usb_musb_init(&musb_board_data);  	status = omap_ethernet_init(); diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c index 68647c38919..231a7d825f9 100644 --- a/arch/arm/mach-omap2/board-cm-t35.c +++ b/arch/arm/mach-omap2/board-cm-t35.c @@ -30,6 +30,7 @@  #include <linux/regulator/fixed.h>  #include <linux/regulator/machine.h>  #include <linux/mmc/host.h> +#include <linux/usb/phy.h>  #include <linux/spi/spi.h>  #include <linux/spi/tdo24m.h> @@ -724,6 +725,7 @@ static void __init cm_t3x_common_init(void)  	cm_t35_init_display();  	omap_twl4030_audio_init("cm-t3x"); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	cm_t35_init_usbh();  	cm_t35_init_camera(); diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c index 0b1d8f75808..a37514ecc38 100644 --- a/arch/arm/mach-omap2/board-devkit8000.c +++ b/arch/arm/mach-omap2/board-devkit8000.c @@ -29,6 +29,7 @@  #include <linux/mtd/partitions.h>  #include <linux/mtd/nand.h>  #include <linux/mmc/host.h> +#include <linux/usb/phy.h>  #include <linux/regulator/machine.h>  #include <linux/i2c/twl.h> @@ -622,6 +623,7 @@ static void __init devkit8000_init(void)  	omap_ads7846_init(2, OMAP3_DEVKIT_TS_GPIO, 0, NULL); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	usbhs_init(&usbhs_bdata);  	board_nand_init(devkit8000_nand_partitions, diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index 5b447649f5a..3f97f30d788 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c @@ -18,6 +18,7 @@  #include <linux/gpio.h>  #include <linux/interrupt.h>  #include <linux/input.h> +#include <linux/usb/phy.h>  #include <linux/regulator/machine.h>  #include <linux/regulator/fixed.h> @@ -625,6 +626,7 @@ static void __init igep_init(void)  	omap_serial_init();  	omap_sdrc_init(m65kxxxxam_sdrc_params,  				  m65kxxxxam_sdrc_params); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	igep_flash_init(); diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c index ff440c0d04d..b12fe966a7b 100644 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c @@ -28,6 +28,7 @@  #include <linux/io.h>  #include <linux/smsc911x.h>  #include <linux/mmc/host.h> +#include <linux/usb/phy.h>  #include <linux/platform_data/spi-omap2-mcspi.h>  #include <asm/mach-types.h> @@ -418,6 +419,7 @@ static void __init omap_ldp_init(void)  	omap_ads7846_init(1, 54, 310, NULL);  	omap_serial_init();  	omap_sdrc_init(NULL, NULL); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	board_nand_init(ldp_nand_partitions, ARRAY_SIZE(ldp_nand_partitions),  			ZOOM_NAND_CS, 0, nand_default_timings); diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index b81b4585f46..d07058b9c28 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c @@ -30,6 +30,7 @@  #include <linux/mtd/partitions.h>  #include <linux/mtd/nand.h>  #include <linux/mmc/host.h> +#include <linux/usb/phy.h>  #include <linux/regulator/machine.h>  #include <linux/i2c/twl.h> @@ -519,6 +520,7 @@ static void __init omap3_beagle_init(void)  	omap_sdrc_init(mt46h32m32lf6_sdrc_params,  				  mt46h32m32lf6_sdrc_params); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	usbhs_init(&usbhs_bdata);  	board_nand_init(omap3beagle_nand_partitions, diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index f2f636b1976..f43763647d5 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c @@ -41,6 +41,7 @@  #include <linux/regulator/machine.h>  #include <linux/mmc/host.h>  #include <linux/export.h> +#include <linux/usb/phy.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> @@ -309,7 +310,7 @@ static struct omap2_hsmmc_info mmc[] = {  		.gpio_wp	= 63,  		.deferred	= true,  	}, -#ifdef CONFIG_WL12XX_PLATFORM_DATA +#ifdef CONFIG_WILINK_PLATFORM_DATA  	{  		.name		= "wl1271",  		.mmc		= 2, @@ -450,7 +451,7 @@ static struct regulator_init_data omap3evm_vio = {  	.consumer_supplies	= omap3evm_vio_supply,  }; -#ifdef CONFIG_WL12XX_PLATFORM_DATA +#ifdef CONFIG_WILINK_PLATFORM_DATA  #define OMAP3EVM_WLAN_PMENA_GPIO	(150)  #define OMAP3EVM_WLAN_IRQ_GPIO		(149) @@ -563,7 +564,7 @@ static struct omap_board_mux omap35x_board_mux[] __initdata = {  				OMAP_PIN_OFF_NONE),  	OMAP3_MUX(GPMC_WAIT2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP |  				OMAP_PIN_OFF_NONE), -#ifdef CONFIG_WL12XX_PLATFORM_DATA +#ifdef CONFIG_WILINK_PLATFORM_DATA  	/* WLAN IRQ - GPIO 149 */  	OMAP3_MUX(UART1_RTS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), @@ -601,7 +602,7 @@ static struct omap_board_mux omap36x_board_mux[] __initdata = {  	OMAP3_MUX(SYS_BOOT4, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE),  	OMAP3_MUX(SYS_BOOT5, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE),  	OMAP3_MUX(SYS_BOOT6, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), -#ifdef CONFIG_WL12XX_PLATFORM_DATA +#ifdef CONFIG_WILINK_PLATFORM_DATA  	/* WLAN IRQ - GPIO 149 */  	OMAP3_MUX(UART1_RTS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), @@ -637,7 +638,7 @@ static struct gpio omap3_evm_ehci_gpios[] __initdata = {  static void __init omap3_evm_wl12xx_init(void)  { -#ifdef CONFIG_WL12XX_PLATFORM_DATA +#ifdef CONFIG_WILINK_PLATFORM_DATA  	int ret;  	/* WL12xx WLAN Init */ @@ -734,6 +735,7 @@ static void __init omap3_evm_init(void)  		omap_mux_init_gpio(135, OMAP_PIN_OUTPUT);  		usbhs_bdata.reset_gpio_port[1] = 135;  	} +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(&musb_board_data);  	usbhs_init(&usbhs_bdata);  	board_nand_init(omap3evm_nand_partitions, diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-omap2/board-omap3logic.c index 0fba43a9b07..bab51e64c4b 100644 --- a/arch/arm/mach-omap2/board-omap3logic.c +++ b/arch/arm/mach-omap2/board-omap3logic.c @@ -29,6 +29,7 @@  #include <linux/i2c/twl.h>  #include <linux/mmc/host.h> +#include <linux/usb/phy.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> @@ -215,6 +216,7 @@ static void __init omap3logic_init(void)  	board_mmc_init();  	board_smsc911x_init(); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	/* Ensure SDRC pins are mux'd for self-refresh */ diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index 12e18168934..07cc0884e76 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c @@ -35,6 +35,7 @@  #include <linux/mmc/host.h>  #include <linux/mmc/card.h>  #include <linux/regulator/fixed.h> +#include <linux/usb/phy.h>  #include <linux/platform_data/spi-omap2-mcspi.h>  #include <asm/mach-types.h> @@ -601,6 +602,7 @@ static void __init omap3pandora_init(void)  			ARRAY_SIZE(omap3pandora_spi_board_info));  	omap_ads7846_init(1, OMAP3_PANDORA_TS_GPIO, 0, NULL);  	usbhs_init(&usbhs_bdata); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	gpmc_nand_init(&pandora_nand_data, NULL); diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c index 13ee4054560..0490acbc433 100644 --- a/arch/arm/mach-omap2/board-omap3stalker.c +++ b/arch/arm/mach-omap2/board-omap3stalker.c @@ -33,6 +33,7 @@  #include <linux/interrupt.h>  #include <linux/smsc911x.h>  #include <linux/i2c/at24.h> +#include <linux/usb/phy.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> @@ -404,6 +405,7 @@ static void __init omap3_stalker_init(void)  	omap_serial_init();  	omap_sdrc_init(mt46h32m32lf6_sdrc_params, NULL); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	usbhs_init(&usbhs_bdata);  	omap_ads7846_init(1, OMAP3_STALKER_TS_GPIO, 310, NULL); diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c index 36c455c85ed..91daf71190c 100644 --- a/arch/arm/mach-omap2/board-omap3touchbook.c +++ b/arch/arm/mach-omap2/board-omap3touchbook.c @@ -28,6 +28,7 @@  #include <linux/mtd/partitions.h>  #include <linux/mtd/nand.h>  #include <linux/mmc/host.h> +#include <linux/usb/phy.h>  #include <linux/platform_data/spi-omap2-mcspi.h>  #include <linux/spi/spi.h> @@ -365,6 +366,7 @@ static void __init omap3_touchbook_init(void)  	/* Touchscreen and accelerometer */  	omap_ads7846_init(4, OMAP3_TS_GPIO, 310, &ads7846_pdata); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	usbhs_init(&usbhs_bdata);  	board_nand_init(omap3touchbook_nand_partitions, diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index b62317906b3..7b152d04a60 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c @@ -30,6 +30,7 @@  #include <linux/regulator/fixed.h>  #include <linux/ti_wilink_st.h>  #include <linux/usb/musb.h> +#include <linux/usb/phy.h>  #include <linux/wl12xx.h>  #include <linux/irqchip/arm-gic.h>  #include <linux/platform_data/omap-abe-twl6040.h> @@ -447,6 +448,7 @@ static void __init omap4_panda_init(void)  	omap_sdrc_init(NULL, NULL);  	omap4_twl6030_hsmmc_init(mmc);  	omap4_ehci_init(); +	usb_bind_phy("musb-hdrc.0.auto", 0, "omap-usb2.1.auto");  	usb_musb_init(&musb_board_data);  	omap4_panda_display_init();  } diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c index 233a37d541c..6975a8585da 100644 --- a/arch/arm/mach-omap2/board-overo.c +++ b/arch/arm/mach-omap2/board-overo.c @@ -36,6 +36,7 @@  #include <linux/mtd/nand.h>  #include <linux/mtd/partitions.h>  #include <linux/mmc/host.h> +#include <linux/usb/phy.h>  #include <linux/platform_data/mtd-nand-omap2.h>  #include <linux/platform_data/spi-omap2-mcspi.h> @@ -499,6 +500,7 @@ static void __init overo_init(void)  				  mt46h32m32lf6_sdrc_params);  	board_nand_init(overo_nand_partitions,  			ARRAY_SIZE(overo_nand_partitions), NAND_CS, 0, NULL); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	usbhs_init(&usbhs_bdata);  	overo_spi_init(); diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c index 386a2ddc117..345e8c4b873 100644 --- a/arch/arm/mach-omap2/board-rm680.c +++ b/arch/arm/mach-omap2/board-rm680.c @@ -18,6 +18,7 @@  #include <linux/regulator/machine.h>  #include <linux/regulator/consumer.h>  #include <linux/platform_data/mtd-onenand-omap2.h> +#include <linux/usb/phy.h>  #include <asm/mach/arch.h>  #include <asm/mach-types.h> @@ -134,6 +135,7 @@ static void __init rm680_init(void)  	sdrc_params = nokia_get_sdram_timings();  	omap_sdrc_init(sdrc_params, sdrc_params); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	rm680_peripherals_init();  } diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index cf07e289b4e..f3d075baebb 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c @@ -42,7 +42,7 @@  #include <media/si4713.h>  #include <linux/leds-lp5523.h> -#include <../drivers/staging/iio/light/tsl2563.h> +#include <linux/platform_data/tsl2563.h>  #include <linux/lis3lv02d.h>  #if defined(CONFIG_IR_RX51) || defined(CONFIG_IR_RX51_MODULE) diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c index 26e07addc9d..dc5498b1b3a 100644 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c @@ -20,6 +20,7 @@  #include <linux/wl12xx.h>  #include <linux/mmc/host.h>  #include <linux/platform_data/gpio-omap.h> +#include <linux/usb/phy.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> @@ -298,6 +299,7 @@ void __init zoom_peripherals_init(void)  	omap_hsmmc_init(mmc);  	omap_i2c_init();  	platform_device_register(&omap_vwlan_device); +	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");  	usb_musb_init(NULL);  	enable_board_wakeup_source();  	omap_serial_init(); diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 626f3ea3142..b6cc233214d 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c @@ -20,6 +20,7 @@  #include <linux/pinctrl/machine.h>  #include <linux/platform_data/omap4-keypad.h>  #include <linux/platform_data/omap_ocp2scp.h> +#include <linux/usb/omap_control_usb.h>  #include <asm/mach-types.h>  #include <asm/mach/map.h> @@ -254,6 +255,49 @@ static inline void omap_init_camera(void)  #endif  } +#if IS_ENABLED(CONFIG_OMAP_CONTROL_USB) +static struct omap_control_usb_platform_data omap4_control_usb_pdata = { +	.type = 1, +}; + +struct resource omap4_control_usb_res[] = { +	{ +		.name	= "control_dev_conf", +		.start	= 0x4a002300, +		.end	= 0x4a002303, +		.flags	= IORESOURCE_MEM, +	}, +	{ +		.name	= "otghs_control", +		.start	= 0x4a00233c, +		.end	= 0x4a00233f, +		.flags	= IORESOURCE_MEM, +	}, +}; + +static struct platform_device omap4_control_usb = { +	.name = "omap-control-usb", +	.id = -1, +	.dev = { +		.platform_data = &omap4_control_usb_pdata, +	}, +	.num_resources = 2, +	.resource = omap4_control_usb_res, +}; + +static inline void __init omap_init_control_usb(void) +{ +	if (!cpu_is_omap44xx()) +		return; + +	if (platform_device_register(&omap4_control_usb)) +		pr_err("Error registering omap_control_usb device\n"); +} + +#else +static inline void omap_init_control_usb(void) { } +#endif /* CONFIG_OMAP_CONTROL_USB */ +  int __init omap4_keyboard_init(struct omap4_keypad_platform_data  			*sdp4430_keypad_data, struct omap_board_data *bdata)  { @@ -721,6 +765,7 @@ static int __init omap2_init_devices(void)  	omap_init_mbox();  	/* If dtb is there, the devices will be created dynamically */  	if (!of_have_populated_dt()) { +		omap_init_control_usb();  		omap_init_dmic();  		omap_init_mcpdm();  		omap_init_mcspi(); diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 1adb2d4496f..03d771349be 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c @@ -1348,11 +1348,9 @@ static int gpmc_probe(struct platform_device *pdev)  	phys_base = res->start;  	mem_size = resource_size(res); -	gpmc_base = devm_request_and_ioremap(&pdev->dev, res); -	if (!gpmc_base) { -		dev_err(&pdev->dev, "error: request memory / ioremap\n"); -		return -EADDRNOTAVAIL; -	} +	gpmc_base = devm_ioremap_resource(&pdev->dev, res); +	if (IS_ERR(gpmc_base)) +		return PTR_ERR(gpmc_base);  	res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);  	if (res == NULL) diff --git a/arch/arm/mach-omap2/include/mach/uncompress.h b/arch/arm/mach-omap2/include/mach/uncompress.h index 8e3546d3e04..7b360acd19c 100644 --- a/arch/arm/mach-omap2/include/mach/uncompress.h +++ b/arch/arm/mach-omap2/include/mach/uncompress.h @@ -169,8 +169,3 @@ static inline void arch_decomp_setup(void)  		DEBUG_LL_AM33XX(1, am335xevm);  	} while (0);  } - -/* - * nothing to do - */ -#define arch_decomp_wdog() diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c index 8c5b5e3e354..f8bb3b9b6a7 100644 --- a/arch/arm/mach-omap2/omap-wakeupgen.c +++ b/arch/arm/mach-omap2/omap-wakeupgen.c @@ -45,7 +45,7 @@  static void __iomem *wakeupgen_base;  static void __iomem *sar_base; -static DEFINE_SPINLOCK(wakeupgen_lock); +static DEFINE_RAW_SPINLOCK(wakeupgen_lock);  static unsigned int irq_target_cpu[MAX_IRQS];  static unsigned int irq_banks = MAX_NR_REG_BANKS;  static unsigned int max_irqs = MAX_IRQS; @@ -133,9 +133,9 @@ static void wakeupgen_mask(struct irq_data *d)  {  	unsigned long flags; -	spin_lock_irqsave(&wakeupgen_lock, flags); +	raw_spin_lock_irqsave(&wakeupgen_lock, flags);  	_wakeupgen_clear(d->irq, irq_target_cpu[d->irq]); -	spin_unlock_irqrestore(&wakeupgen_lock, flags); +	raw_spin_unlock_irqrestore(&wakeupgen_lock, flags);  }  /* @@ -145,9 +145,9 @@ static void wakeupgen_unmask(struct irq_data *d)  {  	unsigned long flags; -	spin_lock_irqsave(&wakeupgen_lock, flags); +	raw_spin_lock_irqsave(&wakeupgen_lock, flags);  	_wakeupgen_set(d->irq, irq_target_cpu[d->irq]); -	spin_unlock_irqrestore(&wakeupgen_lock, flags); +	raw_spin_unlock_irqrestore(&wakeupgen_lock, flags);  }  #ifdef CONFIG_HOTPLUG_CPU @@ -188,7 +188,7 @@ static void wakeupgen_irqmask_all(unsigned int cpu, unsigned int set)  {  	unsigned long flags; -	spin_lock_irqsave(&wakeupgen_lock, flags); +	raw_spin_lock_irqsave(&wakeupgen_lock, flags);  	if (set) {  		_wakeupgen_save_masks(cpu);  		_wakeupgen_set_all(cpu, WKG_MASK_ALL); @@ -196,7 +196,7 @@ static void wakeupgen_irqmask_all(unsigned int cpu, unsigned int set)  		_wakeupgen_set_all(cpu, WKG_UNMASK_ALL);  		_wakeupgen_restore_masks(cpu);  	} -	spin_unlock_irqrestore(&wakeupgen_lock, flags); +	raw_spin_unlock_irqrestore(&wakeupgen_lock, flags);  }  #endif diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 793f54ac7d1..624a7e84a68 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@ -2702,13 +2702,6 @@ static struct resource omap44xx_usb_phy_and_pll_addrs[] = {  		.end		= 0x4a0ae000,  		.flags		= IORESOURCE_MEM,  	}, -	{ -		/* XXX: Remove this once control module driver is in place */ -		.name		= "ctrl_dev", -		.start		= 0x4a002300, -		.end		= 0x4a002303, -		.flags		= IORESOURCE_MEM, -	},  	{ }  }; @@ -6156,12 +6149,6 @@ static struct omap_hwmod_addr_space omap44xx_usb_otg_hs_addrs[] = {  		.pa_end		= 0x4a0ab7ff,  		.flags		= ADDR_TYPE_RT  	}, -	{ -		/* XXX: Remove this once control module driver is in place */ -		.pa_start	= 0x4a00233c, -		.pa_end		= 0x4a00233f, -		.flags		= ADDR_TYPE_RT -	},  	{ }  }; diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 7be3622cfc8..2d93d8b2383 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -351,12 +351,10 @@ static void omap3_pm_idle(void)  	if (omap_irq_pending())  		goto out; -	trace_power_start(POWER_CSTATE, 1, smp_processor_id());  	trace_cpu_idle(1, smp_processor_id());  	omap_sram_idle(); -	trace_power_end(smp_processor_id());  	trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id());  out: diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index d86074745c5..71729888ff0 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c @@ -227,7 +227,7 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,  	int r = 0;  	if (of_have_populated_dt()) { -		np = omap_get_timer_dt(omap_timer_match, NULL); +		np = omap_get_timer_dt(omap_timer_match, property);  		if (!np)  			return -ENODEV; diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c index e49b40b4c90..6a7aec6d117 100644 --- a/arch/arm/mach-omap2/twl-common.c +++ b/arch/arm/mach-omap2/twl-common.c @@ -23,6 +23,7 @@  #include <linux/i2c.h>  #include <linux/i2c/twl.h>  #include <linux/gpio.h> +#include <linux/string.h>  #include <linux/regulator/machine.h>  #include <linux/regulator/fixed.h> @@ -56,7 +57,7 @@ void __init omap_pmic_init(int bus, u32 clkrate,  			   struct twl4030_platform_data *pmic_data)  {  	omap_mux_init_signal("sys_nirq", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE); -	strncpy(pmic_i2c_board_info.type, pmic_type, +	strlcpy(pmic_i2c_board_info.type, pmic_type,  		sizeof(pmic_i2c_board_info.type));  	pmic_i2c_board_info.irq = pmic_irq;  	pmic_i2c_board_info.platform_data = pmic_data; diff --git a/arch/arm/mach-omap2/usb-musb.c b/arch/arm/mach-omap2/usb-musb.c index 7b33b375fe7..9d27e3f8a09 100644 --- a/arch/arm/mach-omap2/usb-musb.c +++ b/arch/arm/mach-omap2/usb-musb.c @@ -85,6 +85,9 @@ void __init usb_musb_init(struct omap_musb_board_data *musb_board_data)  	musb_plat.mode = board_data->mode;  	musb_plat.extvbus = board_data->extvbus; +	if (cpu_is_omap44xx()) +		musb_plat.has_mailbox = true; +  	if (soc_is_am35xx()) {  		oh_name = "am35x_otg_hs";  		name = "musb-am35x";  |