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
This commit is contained in:
@@ -44,6 +44,8 @@
|
|||||||
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 = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
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;
|
|||||||
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)
|
|||||||
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,
|
|||||||
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,
|
|||||||
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)
|
|||||||
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)
|
|||||||
|
|
||||||
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)
|
|||||||
|
|
||||||
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 = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
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,
|
|||||||
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) {
|
||||||
|
Reference in New Issue
Block a user