mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-04-20 11:42:57 +00:00
linux: Add kernel version 3.3.7 for beagleboard
Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
This commit is contained in:
committed by
Denys Dmytriyenko
parent
153b5ed063
commit
3aeebece0e
@@ -0,0 +1,184 @@
|
||||
From 457318d7eff18258b4ef11fb4e4b924d2b5b5bb0 Mon Sep 17 00:00:00 2001
|
||||
From: Russ Dill <Russ.Dill@ti.com>
|
||||
Date: Tue, 8 May 2012 19:49:06 -0700
|
||||
Subject: [PATCH] ARM: OMAP: Cleanup Beagleboard DVI reset gpio
|
||||
|
||||
This removes several boot warnings from board-omap3beagle.c:
|
||||
|
||||
- gpio_request: gpio--22 (DVI reset) status -22
|
||||
- Unable to get DVI reset GPIO
|
||||
|
||||
There is a combination of leftover code and revision confusion.
|
||||
Additionally, xM support is currently a hack.
|
||||
|
||||
For original Beagleboard this removes the double initialization of GPIO
|
||||
170, properly configures it as an output, and wraps the initialization
|
||||
in an if block so that xM does not attempt to request it.
|
||||
|
||||
For Beagleboard xM it removes reference to GPIO 129 which was part
|
||||
of rev A1 and A2 designs, but never functioned. It then properly assigns
|
||||
beagle_dvi_device.reset_gpio in beagle_twl_gpio_setup and removes the
|
||||
hack of initializing it high. Additionally, it uses
|
||||
gpio_set_value_cansleep since this GPIO is connected through i2c.
|
||||
|
||||
Unfortunately, there is no way to tell the difference between xM A2 and
|
||||
A3. However, GPIO 129 does not function on rev A1 and A2, and the TWL
|
||||
GPIO used on A3 and beyond is not used on rev A1 and A2, there are no
|
||||
problems created by this fix.
|
||||
|
||||
v3
|
||||
- Change patch title to include 'ARM: OMAP:'
|
||||
- Actually rename reset_gpio to dvi_reset_gpio
|
||||
|
||||
v2
|
||||
- Rename reset_gpio to dvi_reset_gpio to self document
|
||||
- Use gpio_set_value_cansleep since TWL gpio can sleep
|
||||
- Use gpio_is_valid instead of -EINVAL check
|
||||
|
||||
Tested on Beagleboard-xM Rev C1 and Beagleboard Rev B4.
|
||||
|
||||
Upstream-Status: Submitted
|
||||
* This patch has been submitted for the 3.5 kernel and is
|
||||
being reworked for upstream acceptance.
|
||||
|
||||
Signed-off-by: Russ Dill <Russ.Dill@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 49 ++++++++++++++++--------------
|
||||
1 files changed, 26 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index 7ffcd28..c9322ac 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -81,12 +81,12 @@ static u8 omap3_beagle_version;
|
||||
static struct {
|
||||
int mmc1_gpio_wp;
|
||||
int usb_pwr_level;
|
||||
- int reset_gpio;
|
||||
+ int dvi_reset_gpio;
|
||||
int usr_button_gpio;
|
||||
} beagle_config = {
|
||||
.mmc1_gpio_wp = -EINVAL,
|
||||
.usb_pwr_level = GPIOF_OUT_INIT_LOW,
|
||||
- .reset_gpio = 129,
|
||||
+ .dvi_reset_gpio = -EINVAL,
|
||||
.usr_button_gpio = 4,
|
||||
};
|
||||
|
||||
@@ -124,21 +124,21 @@ static void __init omap3_beagle_init_rev(void)
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: Ax/Bx\n");
|
||||
omap3_beagle_version = OMAP3BEAGLE_BOARD_AXBX;
|
||||
beagle_config.mmc1_gpio_wp = 29;
|
||||
- beagle_config.reset_gpio = 170;
|
||||
+ beagle_config.dvi_reset_gpio = 170;
|
||||
beagle_config.usr_button_gpio = 7;
|
||||
break;
|
||||
case 6:
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: C1/C2/C3\n");
|
||||
omap3_beagle_version = OMAP3BEAGLE_BOARD_C1_3;
|
||||
beagle_config.mmc1_gpio_wp = 23;
|
||||
- beagle_config.reset_gpio = 170;
|
||||
+ beagle_config.dvi_reset_gpio = 170;
|
||||
beagle_config.usr_button_gpio = 7;
|
||||
break;
|
||||
case 5:
|
||||
printk(KERN_INFO "OMAP3 Beagle Rev: C4\n");
|
||||
omap3_beagle_version = OMAP3BEAGLE_BOARD_C4;
|
||||
beagle_config.mmc1_gpio_wp = 23;
|
||||
- beagle_config.reset_gpio = 170;
|
||||
+ beagle_config.dvi_reset_gpio = 170;
|
||||
beagle_config.usr_button_gpio = 7;
|
||||
break;
|
||||
case 0:
|
||||
@@ -192,7 +192,7 @@ static struct mtd_partition omap3beagle_nand_partitions[] = {
|
||||
static int beagle_enable_dvi(struct omap_dss_device *dssdev)
|
||||
{
|
||||
if (gpio_is_valid(dssdev->reset_gpio))
|
||||
- gpio_set_value(dssdev->reset_gpio, 1);
|
||||
+ gpio_set_value_cansleep(dssdev->reset_gpio, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -200,7 +200,7 @@ static int beagle_enable_dvi(struct omap_dss_device *dssdev)
|
||||
static void beagle_disable_dvi(struct omap_dss_device *dssdev)
|
||||
{
|
||||
if (gpio_is_valid(dssdev->reset_gpio))
|
||||
- gpio_set_value(dssdev->reset_gpio, 0);
|
||||
+ gpio_set_value_cansleep(dssdev->reset_gpio, 0);
|
||||
}
|
||||
|
||||
static struct panel_dvi_platform_data dvi_panel = {
|
||||
@@ -238,12 +238,17 @@ static struct omap_dss_board_info beagle_dss_data = {
|
||||
|
||||
static void __init beagle_display_init(void)
|
||||
{
|
||||
- int r;
|
||||
-
|
||||
- r = gpio_request_one(beagle_dvi_device.reset_gpio, GPIOF_OUT_INIT_LOW,
|
||||
- "DVI reset");
|
||||
- if (r < 0)
|
||||
- printk(KERN_ERR "Unable to get DVI reset GPIO\n");
|
||||
+ if (gpio_is_valid(beagle_config.dvi_reset_gpio)) {
|
||||
+ int r;
|
||||
+
|
||||
+ omap_mux_init_gpio(beagle_config.dvi_reset_gpio, OMAP_PIN_OUTPUT);
|
||||
+ r = gpio_request_one(beagle_config.dvi_reset_gpio,
|
||||
+ GPIOF_OUT_INIT_LOW, "DVI reset");
|
||||
+ if (r < 0)
|
||||
+ printk(KERN_ERR "Unable to get DVI reset GPIO\n");
|
||||
+ else
|
||||
+ beagle_dvi_device.reset_gpio = beagle_config.dvi_reset_gpio;
|
||||
+ }
|
||||
}
|
||||
|
||||
#include "sdram-micron-mt46h32m32lf-6.h"
|
||||
@@ -272,7 +277,7 @@ static int beagle_twl_gpio_setup(struct device *dev,
|
||||
{
|
||||
int r;
|
||||
|
||||
- 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);
|
||||
mmc[0].gpio_wp = beagle_config.mmc1_gpio_wp;
|
||||
/* gpio + 0 is "mmc0_cd" (input/IRQ) */
|
||||
@@ -297,11 +302,14 @@ static int beagle_twl_gpio_setup(struct device *dev,
|
||||
if (r)
|
||||
pr_err("%s: unable to configure nDVI_PWR_EN\n",
|
||||
__func__);
|
||||
- r = gpio_request_one(gpio + 2, GPIOF_OUT_INIT_HIGH,
|
||||
- "DVI_LDO_EN");
|
||||
+
|
||||
+ r = gpio_request_one(gpio + 2, GPIOF_OUT_INIT_LOW,
|
||||
+ "DVI_PU");
|
||||
if (r)
|
||||
- pr_err("%s: unable to configure DVI_LDO_EN\n",
|
||||
- __func__);
|
||||
+ pr_err("%s: unable to get DVI_PU GPIO\n", __func__);
|
||||
+ else
|
||||
+ beagle_dvi_device.reset_gpio = gpio + 2;
|
||||
+
|
||||
} else {
|
||||
/*
|
||||
* REVISIT: need ehci-omap hooks for external VBUS
|
||||
@@ -310,7 +318,6 @@ static int beagle_twl_gpio_setup(struct device *dev,
|
||||
if (gpio_request_one(gpio + 1, GPIOF_IN, "EHCI_nOC"))
|
||||
pr_err("%s: unable to configure EHCI_nOC\n", __func__);
|
||||
}
|
||||
- beagle_dvi_device.reset_gpio = beagle_config.reset_gpio;
|
||||
|
||||
gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level,
|
||||
"nEN_USB_PWR");
|
||||
@@ -532,10 +539,6 @@ static void __init omap3_beagle_init(void)
|
||||
omap_sdrc_init(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);
|
||||
usbhs_init(&usbhs_bdata);
|
||||
omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
|
||||
--
|
||||
1.7.0.4
|
||||
|
||||
@@ -0,0 +1,169 @@
|
||||
From bce492c04ba8fc66a4ea0a52b181ba255daaaf54 Mon Sep 17 00:00:00 2001
|
||||
From: Govindraj.R <govindraj.raja@ti.com>
|
||||
Date: Tue, 17 Apr 2012 10:35:47 -0700
|
||||
Subject: [PATCH] ARM: OMAP2+: UART: Fix incorrect population of default uart pads
|
||||
|
||||
Commit (7496ba3 ARM: OMAP2+: UART: Add default mux for all uarts)
|
||||
wrongly added muxing of default pads for all uarts. This causes
|
||||
breakage on multiple boards using uart pins for alternate functions.
|
||||
|
||||
For example, on zoom3 random oopses can be seen with nfsroot as
|
||||
the smsc911x ethernet FIFO timings on GPMC bus are controlled
|
||||
by gpmc_wait2 and gpmc_wait3 pins. This means we can't mux these
|
||||
pads to uart4 functionality as commit 7496ba3 was doing.
|
||||
|
||||
Not all boards tend to use all uarts and most of unused uart pins
|
||||
are muxed for other purpose. This commit breaks the modules which
|
||||
where trying to use unused uart pins on their boards.
|
||||
|
||||
So remove the default pad muxing. Note that this is not a complete
|
||||
fix, as we now rely on bootloader set muxing for the uart wake-up
|
||||
events. Further patching is needed to enable wake-up events for
|
||||
uarts that are already muxed to uart mode.
|
||||
|
||||
Upstream-Status: Backport
|
||||
* Backported from commit bce492c0 in linux mainline
|
||||
|
||||
Cc: Felipe Balbi <balbi@ti.com>
|
||||
Cc: Kevin Hilman <khilman@ti.com>
|
||||
Acked-by: Russ Dill <russ.dill@gmail.com>
|
||||
Reported-by: Tony Lindgren <tony@atomide.com>
|
||||
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
|
||||
[tony@atomide.com: updated comments to describe oops on zoom3]
|
||||
Signed-off-by: Tony Lindgren <tony@atomide.com>
|
||||
---
|
||||
arch/arm/mach-omap2/serial.c | 116 ------------------------------------------
|
||||
1 files changed, 0 insertions(+), 116 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
|
||||
index 0cdd359..2e351f5 100644
|
||||
--- a/arch/arm/mach-omap2/serial.c
|
||||
+++ b/arch/arm/mach-omap2/serial.c
|
||||
@@ -120,124 +120,8 @@ static void omap_uart_set_smartidle(struct platform_device *pdev) {}
|
||||
#endif /* CONFIG_PM */
|
||||
|
||||
#ifdef CONFIG_OMAP_MUX
|
||||
-static struct omap_device_pad default_uart1_pads[] __initdata = {
|
||||
- {
|
||||
- .name = "uart1_cts.uart1_cts",
|
||||
- .enable = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
||||
- },
|
||||
- {
|
||||
- .name = "uart1_rts.uart1_rts",
|
||||
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
||||
- },
|
||||
- {
|
||||
- .name = "uart1_tx.uart1_tx",
|
||||
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
||||
- },
|
||||
- {
|
||||
- .name = "uart1_rx.uart1_rx",
|
||||
- .flags = OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
|
||||
- .enable = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
||||
- .idle = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
||||
- },
|
||||
-};
|
||||
-
|
||||
-static struct omap_device_pad default_uart2_pads[] __initdata = {
|
||||
- {
|
||||
- .name = "uart2_cts.uart2_cts",
|
||||
- .enable = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
||||
- },
|
||||
- {
|
||||
- .name = "uart2_rts.uart2_rts",
|
||||
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
||||
- },
|
||||
- {
|
||||
- .name = "uart2_tx.uart2_tx",
|
||||
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
||||
- },
|
||||
- {
|
||||
- .name = "uart2_rx.uart2_rx",
|
||||
- .flags = OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
|
||||
- .enable = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
||||
- .idle = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
||||
- },
|
||||
-};
|
||||
-
|
||||
-static struct omap_device_pad default_uart3_pads[] __initdata = {
|
||||
- {
|
||||
- .name = "uart3_cts_rctx.uart3_cts_rctx",
|
||||
- .enable = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
||||
- },
|
||||
- {
|
||||
- .name = "uart3_rts_sd.uart3_rts_sd",
|
||||
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
||||
- },
|
||||
- {
|
||||
- .name = "uart3_tx_irtx.uart3_tx_irtx",
|
||||
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
||||
- },
|
||||
- {
|
||||
- .name = "uart3_rx_irrx.uart3_rx_irrx",
|
||||
- .flags = OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
|
||||
- .enable = OMAP_PIN_INPUT | OMAP_MUX_MODE0,
|
||||
- .idle = OMAP_PIN_INPUT | OMAP_MUX_MODE0,
|
||||
- },
|
||||
-};
|
||||
-
|
||||
-static struct omap_device_pad default_omap36xx_uart4_pads[] __initdata = {
|
||||
- {
|
||||
- .name = "gpmc_wait2.uart4_tx",
|
||||
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
||||
- },
|
||||
- {
|
||||
- .name = "gpmc_wait3.uart4_rx",
|
||||
- .flags = OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
|
||||
- .enable = OMAP_PIN_INPUT | OMAP_MUX_MODE2,
|
||||
- .idle = OMAP_PIN_INPUT | OMAP_MUX_MODE2,
|
||||
- },
|
||||
-};
|
||||
-
|
||||
-static struct omap_device_pad default_omap4_uart4_pads[] __initdata = {
|
||||
- {
|
||||
- .name = "uart4_tx.uart4_tx",
|
||||
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
||||
- },
|
||||
- {
|
||||
- .name = "uart4_rx.uart4_rx",
|
||||
- .flags = OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
|
||||
- .enable = OMAP_PIN_INPUT | OMAP_MUX_MODE0,
|
||||
- .idle = OMAP_PIN_INPUT | OMAP_MUX_MODE0,
|
||||
- },
|
||||
-};
|
||||
-
|
||||
static void omap_serial_fill_default_pads(struct omap_board_data *bdata)
|
||||
{
|
||||
- switch (bdata->id) {
|
||||
- case 0:
|
||||
- bdata->pads = default_uart1_pads;
|
||||
- bdata->pads_cnt = ARRAY_SIZE(default_uart1_pads);
|
||||
- break;
|
||||
- case 1:
|
||||
- bdata->pads = default_uart2_pads;
|
||||
- bdata->pads_cnt = ARRAY_SIZE(default_uart2_pads);
|
||||
- break;
|
||||
- case 2:
|
||||
- bdata->pads = default_uart3_pads;
|
||||
- bdata->pads_cnt = ARRAY_SIZE(default_uart3_pads);
|
||||
- break;
|
||||
- case 3:
|
||||
- if (cpu_is_omap44xx()) {
|
||||
- bdata->pads = default_omap4_uart4_pads;
|
||||
- bdata->pads_cnt =
|
||||
- ARRAY_SIZE(default_omap4_uart4_pads);
|
||||
- } else if (cpu_is_omap3630()) {
|
||||
- bdata->pads = default_omap36xx_uart4_pads;
|
||||
- bdata->pads_cnt =
|
||||
- ARRAY_SIZE(default_omap36xx_uart4_pads);
|
||||
- }
|
||||
- break;
|
||||
- default:
|
||||
- break;
|
||||
- }
|
||||
}
|
||||
#else
|
||||
static void omap_serial_fill_default_pads(struct omap_board_data *bdata) {}
|
||||
--
|
||||
1.7.0.4
|
||||
|
||||
3780
recipes-kernel/linux/linux-3.3.7/beagleboard/defconfig
Normal file
3780
recipes-kernel/linux/linux-3.3.7/beagleboard/defconfig
Normal file
File diff suppressed because it is too large
Load Diff
41
recipes-kernel/linux/linux_3.3.7.bb
Normal file
41
recipes-kernel/linux/linux_3.3.7.bb
Normal file
@@ -0,0 +1,41 @@
|
||||
DESCRIPTION = "Linux 3.3 stable kernel release"
|
||||
SECTION = "kernel"
|
||||
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
COMPATIBLE_MACHINE = "beagleboard"
|
||||
|
||||
inherit kernel
|
||||
|
||||
KERNEL_IMAGETYPE = "uImage"
|
||||
|
||||
# The main PR is now using MACHINE_KERNEL_PR, for beagleboard see
|
||||
# conf/machine/include/omap3.inc
|
||||
MACHINE_KERNEL_PR_append = "a+gitr${SRCREV}"
|
||||
|
||||
BRANCH = "linux-3.3.y"
|
||||
SRCREV = "v3.3.7"
|
||||
|
||||
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git;protocol=git;branch=${BRANCH} \
|
||||
file://defconfig"
|
||||
|
||||
# These are patches that are making their way upstream or are pulled back
|
||||
# from upstream trees to make the stable kernel work without regressions.
|
||||
# These patches should clear out when moving to the next stable kernel
|
||||
# minor version. i.e. 3.y.
|
||||
SRC_URI_append_beagleboard = " file://0001-ARM-OMAP-Cleanup-Beagleboard-DVI-reset-gpio.patch \
|
||||
file://0001-ARM-OMAP2-UART-Fix-incorrect-population-of-default-u.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
EXTRA_OEMAKE = "${PARALLEL_MAKE}"
|
||||
|
||||
# Create the uImage symlink in /boot since by default beagleboard looks into
|
||||
# the /boot directory for the uImage file instead of the first partition.
|
||||
do_install_append_beagleboard() {
|
||||
cd ${D}/${KERNEL_IMAGEDEST} && ln -sf uImage-${KERNEL_VERSION} uImage
|
||||
}
|
||||
Reference in New Issue
Block a user