Commit e23d7096 authored by Olof Johansson's avatar Olof Johansson

Merge tag 'omap-fixes-for-v3.5-rc3' of...

Merge tag 'omap-fixes-for-v3.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes

From Tony Lindgren:
"Here are a few fixes with the biggest one being fix for Beagle DVI
 reset. All of them are regression fixes, except for the missing omap2
 interrupt controller binding that somehow got missed earlier."

* tag 'omap-fixes-for-v3.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: OMAP: Fix Beagleboard DVI reset gpio
  arm/dts: OMAP2: Fix interrupt controller binding
  ARM: OMAP2: Fix tusb6010 GPIO interrupt for n8x0
  ARM: OMAP2+: Fix MUSB ifdefs for platform init code
parents 6355f25e aef2b896
...@@ -44,6 +44,8 @@ intc: interrupt-controller@1 { ...@@ -44,6 +44,8 @@ intc: interrupt-controller@1 {
compatible = "ti,omap2-intc"; compatible = "ti,omap2-intc";
interrupt-controller; interrupt-controller;
#interrupt-cells = <1>; #interrupt-cells = <1>;
ti,intc-size = <96>;
reg = <0x480FE000 0x1000>;
}; };
uart1: serial@4806a000 { uart1: serial@4806a000 {
......
...@@ -83,11 +83,9 @@ static struct musb_hdrc_config musb_config = { ...@@ -83,11 +83,9 @@ static struct musb_hdrc_config musb_config = {
}; };
static struct musb_hdrc_platform_data tusb_data = { static struct musb_hdrc_platform_data tusb_data = {
#if defined(CONFIG_USB_MUSB_OTG) #ifdef CONFIG_USB_GADGET_MUSB_HDRC
.mode = MUSB_OTG, .mode = MUSB_OTG,
#elif defined(CONFIG_USB_MUSB_PERIPHERAL) #else
.mode = MUSB_PERIPHERAL,
#else /* defined(CONFIG_USB_MUSB_HOST) */
.mode = MUSB_HOST, .mode = MUSB_HOST,
#endif #endif
.set_power = tusb_set_power, .set_power = tusb_set_power,
......
...@@ -81,13 +81,13 @@ static u8 omap3_beagle_version; ...@@ -81,13 +81,13 @@ static u8 omap3_beagle_version;
static struct { static struct {
int mmc1_gpio_wp; int mmc1_gpio_wp;
int usb_pwr_level; int usb_pwr_level;
int reset_gpio; int dvi_pd_gpio;
int usr_button_gpio; int usr_button_gpio;
int mmc_caps; int mmc_caps;
} beagle_config = { } beagle_config = {
.mmc1_gpio_wp = -EINVAL, .mmc1_gpio_wp = -EINVAL,
.usb_pwr_level = GPIOF_OUT_INIT_LOW, .usb_pwr_level = GPIOF_OUT_INIT_LOW,
.reset_gpio = 129, .dvi_pd_gpio = -EINVAL,
.usr_button_gpio = 4, .usr_button_gpio = 4,
.mmc_caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA, .mmc_caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
}; };
...@@ -126,21 +126,21 @@ static void __init omap3_beagle_init_rev(void) ...@@ -126,21 +126,21 @@ static void __init omap3_beagle_init_rev(void)
printk(KERN_INFO "OMAP3 Beagle Rev: Ax/Bx\n"); printk(KERN_INFO "OMAP3 Beagle Rev: Ax/Bx\n");
omap3_beagle_version = OMAP3BEAGLE_BOARD_AXBX; omap3_beagle_version = OMAP3BEAGLE_BOARD_AXBX;
beagle_config.mmc1_gpio_wp = 29; beagle_config.mmc1_gpio_wp = 29;
beagle_config.reset_gpio = 170; beagle_config.dvi_pd_gpio = 170;
beagle_config.usr_button_gpio = 7; beagle_config.usr_button_gpio = 7;
break; break;
case 6: case 6:
printk(KERN_INFO "OMAP3 Beagle Rev: C1/C2/C3\n"); printk(KERN_INFO "OMAP3 Beagle Rev: C1/C2/C3\n");
omap3_beagle_version = OMAP3BEAGLE_BOARD_C1_3; omap3_beagle_version = OMAP3BEAGLE_BOARD_C1_3;
beagle_config.mmc1_gpio_wp = 23; beagle_config.mmc1_gpio_wp = 23;
beagle_config.reset_gpio = 170; beagle_config.dvi_pd_gpio = 170;
beagle_config.usr_button_gpio = 7; beagle_config.usr_button_gpio = 7;
break; break;
case 5: case 5:
printk(KERN_INFO "OMAP3 Beagle Rev: C4\n"); printk(KERN_INFO "OMAP3 Beagle Rev: C4\n");
omap3_beagle_version = OMAP3BEAGLE_BOARD_C4; omap3_beagle_version = OMAP3BEAGLE_BOARD_C4;
beagle_config.mmc1_gpio_wp = 23; beagle_config.mmc1_gpio_wp = 23;
beagle_config.reset_gpio = 170; beagle_config.dvi_pd_gpio = 170;
beagle_config.usr_button_gpio = 7; beagle_config.usr_button_gpio = 7;
break; break;
case 0: case 0:
...@@ -274,11 +274,9 @@ static int beagle_twl_gpio_setup(struct device *dev, ...@@ -274,11 +274,9 @@ static int beagle_twl_gpio_setup(struct device *dev,
if (r) if (r)
pr_err("%s: unable to configure nDVI_PWR_EN\n", pr_err("%s: unable to configure nDVI_PWR_EN\n",
__func__); __func__);
r = gpio_request_one(gpio + 2, GPIOF_OUT_INIT_HIGH,
"DVI_LDO_EN"); beagle_config.dvi_pd_gpio = gpio + 2;
if (r)
pr_err("%s: unable to configure DVI_LDO_EN\n",
__func__);
} else { } else {
/* /*
* REVISIT: need ehci-omap hooks for external VBUS * REVISIT: need ehci-omap hooks for external VBUS
...@@ -287,7 +285,7 @@ static int beagle_twl_gpio_setup(struct device *dev, ...@@ -287,7 +285,7 @@ static int beagle_twl_gpio_setup(struct device *dev,
if (gpio_request_one(gpio + 1, GPIOF_IN, "EHCI_nOC")) if (gpio_request_one(gpio + 1, GPIOF_IN, "EHCI_nOC"))
pr_err("%s: unable to configure EHCI_nOC\n", __func__); pr_err("%s: unable to configure EHCI_nOC\n", __func__);
} }
dvi_panel.power_down_gpio = beagle_config.reset_gpio; dvi_panel.power_down_gpio = beagle_config.dvi_pd_gpio;
gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level, gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level,
"nEN_USB_PWR"); "nEN_USB_PWR");
...@@ -499,7 +497,7 @@ static void __init omap3_beagle_init(void) ...@@ -499,7 +497,7 @@ static void __init omap3_beagle_init(void)
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
omap3_beagle_init_rev(); omap3_beagle_init_rev();
if (beagle_config.mmc1_gpio_wp != -EINVAL) if (gpio_is_valid(beagle_config.mmc1_gpio_wp))
omap_mux_init_gpio(beagle_config.mmc1_gpio_wp, OMAP_PIN_INPUT); omap_mux_init_gpio(beagle_config.mmc1_gpio_wp, OMAP_PIN_INPUT);
mmc[0].caps = beagle_config.mmc_caps; mmc[0].caps = beagle_config.mmc_caps;
omap_hsmmc_init(mmc); omap_hsmmc_init(mmc);
...@@ -510,15 +508,13 @@ static void __init omap3_beagle_init(void) ...@@ -510,15 +508,13 @@ static void __init omap3_beagle_init(void)
platform_add_devices(omap3_beagle_devices, platform_add_devices(omap3_beagle_devices,
ARRAY_SIZE(omap3_beagle_devices)); ARRAY_SIZE(omap3_beagle_devices));
if (gpio_is_valid(beagle_config.dvi_pd_gpio))
omap_mux_init_gpio(beagle_config.dvi_pd_gpio, OMAP_PIN_OUTPUT);
omap_display_init(&beagle_dss_data); omap_display_init(&beagle_dss_data);
omap_serial_init(); omap_serial_init();
omap_sdrc_init(mt46h32m32lf6_sdrc_params, omap_sdrc_init(mt46h32m32lf6_sdrc_params,
mt46h32m32lf6_sdrc_params); mt46h32m32lf6_sdrc_params);
omap_mux_init_gpio(170, OMAP_PIN_INPUT);
/* REVISIT leave DVI powered down until it's needed ... */
gpio_request_one(170, GPIOF_OUT_INIT_HIGH, "DVI_nPD");
usb_musb_init(NULL); usb_musb_init(NULL);
usbhs_init(&usbhs_bdata); usbhs_init(&usbhs_bdata);
omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions, omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
......
...@@ -239,21 +239,15 @@ void am35x_set_mode(u8 musb_mode) ...@@ -239,21 +239,15 @@ void am35x_set_mode(u8 musb_mode)
devconf2 &= ~CONF2_OTGMODE; devconf2 &= ~CONF2_OTGMODE;
switch (musb_mode) { switch (musb_mode) {
#ifdef CONFIG_USB_MUSB_HDRC_HCD
case MUSB_HOST: /* Force VBUS valid, ID = 0 */ case MUSB_HOST: /* Force VBUS valid, ID = 0 */
devconf2 |= CONF2_FORCE_HOST; devconf2 |= CONF2_FORCE_HOST;
break; break;
#endif
#ifdef CONFIG_USB_GADGET_MUSB_HDRC
case MUSB_PERIPHERAL: /* Force VBUS valid, ID = 1 */ case MUSB_PERIPHERAL: /* Force VBUS valid, ID = 1 */
devconf2 |= CONF2_FORCE_DEVICE; devconf2 |= CONF2_FORCE_DEVICE;
break; break;
#endif
#ifdef CONFIG_USB_MUSB_OTG
case MUSB_OTG: /* Don't override the VBUS/ID comparators */ case MUSB_OTG: /* Don't override the VBUS/ID comparators */
devconf2 |= CONF2_NO_OVERRIDE; devconf2 |= CONF2_NO_OVERRIDE;
break; break;
#endif
default: default:
pr_info(KERN_INFO "Unsupported mode %u\n", musb_mode); pr_info(KERN_INFO "Unsupported mode %u\n", musb_mode);
} }
......
...@@ -41,12 +41,10 @@ static struct musb_hdrc_config musb_config = { ...@@ -41,12 +41,10 @@ static struct musb_hdrc_config musb_config = {
}; };
static struct musb_hdrc_platform_data musb_plat = { static struct musb_hdrc_platform_data musb_plat = {
#ifdef CONFIG_USB_MUSB_OTG #ifdef CONFIG_USB_GADGET_MUSB_HDRC
.mode = MUSB_OTG, .mode = MUSB_OTG,
#elif defined(CONFIG_USB_MUSB_HDRC_HCD) #else
.mode = MUSB_HOST, .mode = MUSB_HOST,
#elif defined(CONFIG_USB_GADGET_MUSB_HDRC)
.mode = MUSB_PERIPHERAL,
#endif #endif
/* .clock is set dynamically */ /* .clock is set dynamically */
.config = &musb_config, .config = &musb_config,
......
...@@ -300,7 +300,7 @@ tusb6010_setup_interface(struct musb_hdrc_platform_data *data, ...@@ -300,7 +300,7 @@ tusb6010_setup_interface(struct musb_hdrc_platform_data *data,
printk(error, 3, status); printk(error, 3, status);
return status; return status;
} }
tusb_resources[2].start = irq + IH_GPIO_BASE; tusb_resources[2].start = gpio_to_irq(irq);
/* set up memory timings ... can speed them up later */ /* set up memory timings ... can speed them up later */
if (!ps_refclk) { if (!ps_refclk) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment