mirror of
https://git.yoctoproject.org/poky
synced 2026-02-20 08:29:42 +01:00
Merge branch 'mturquette/zoom2' of git://git.pokylinux.org/poky-contrib
This commit is contained in:
20
meta/conf/machine/zoom2.conf
Normal file
20
meta/conf/machine/zoom2.conf
Normal file
@@ -0,0 +1,20 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: Logic PD Zoom2
|
||||
#@DESCRIPTION: Machine configuration for the OMAP3-powered Logic PD Zoom2
|
||||
TARGET_ARCH = "arm"
|
||||
PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5te armv6 armv7a"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel = "linux-omap3-pm"
|
||||
|
||||
MACHINE_FEATURES = "kernel26 apm alsa usbgadget usbhost screen touchscreen"
|
||||
|
||||
KERNEL_IMAGETYPE = "uImage"
|
||||
IMAGE_FSTYPES ?= "tar.gz jffs2 ext2"
|
||||
UBOOT_ENTRYPOINT ="0x80008000"
|
||||
UBOOT_LOADADDRESS ="0x80008000"
|
||||
|
||||
EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000 -n"
|
||||
SERIAL_CONSOLE = "-L 115200 ttyS3"
|
||||
#MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS = "u-boot x-load"
|
||||
|
||||
require conf/machine/include/tune-cortexa8.inc
|
||||
@@ -0,0 +1,170 @@
|
||||
From be0e1c0f2f529d6f5adb9c5050731d881874c34b Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Thu, 18 Jun 2009 13:40:08 -0500
|
||||
Subject: [PATCH 1/8] OMAP3: MMC: Add mux for pins
|
||||
|
||||
For OMAP3 add MMC1 MMC2 pin mux
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Signed-off-by: Chikkature Rajashekar <madhu.cr@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/devices.c | 42 ++++++++++++++++++++++++++++
|
||||
arch/arm/mach-omap2/mux.c | 49 +++++++++++++++++++++++++++++++++
|
||||
arch/arm/plat-omap/include/mach/mux.h | 28 +++++++++++++++++++
|
||||
3 files changed, 119 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
|
||||
index 81f47d9..243815e 100644
|
||||
--- a/arch/arm/mach-omap2/devices.c
|
||||
+++ b/arch/arm/mach-omap2/devices.c
|
||||
@@ -455,6 +455,48 @@ static inline void omap2_mmc_mux(struct omap_mmc_platform_data *mmc_controller,
|
||||
omap_ctrl_writel(v, OMAP2_CONTROL_DEVCONF0);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ if (cpu_is_omap3430()) {
|
||||
+ if (controller_nr == 0) {
|
||||
+ omap_cfg_reg(N28_3430_MMC1_CLK);
|
||||
+ omap_cfg_reg(M27_3430_MMC1_CMD);
|
||||
+ omap_cfg_reg(N27_3430_MMC1_DAT0);
|
||||
+ if (mmc_controller->slots[0].wires == 4 ||
|
||||
+ mmc_controller->slots[0].wires == 8) {
|
||||
+ omap_cfg_reg(N26_3430_MMC1_DAT1);
|
||||
+ omap_cfg_reg(N25_3430_MMC1_DAT2);
|
||||
+ omap_cfg_reg(P28_3430_MMC1_DAT3);
|
||||
+ }
|
||||
+ if (mmc_controller->slots[0].wires == 8) {
|
||||
+ omap_cfg_reg(P27_3430_MMC1_DAT4);
|
||||
+ omap_cfg_reg(P26_3430_MMC1_DAT5);
|
||||
+ omap_cfg_reg(R27_3430_MMC1_DAT6);
|
||||
+ omap_cfg_reg(R25_3430_MMC1_DAT7);
|
||||
+ }
|
||||
+ }
|
||||
+ if (controller_nr == 1) {
|
||||
+ /* MMC2 */
|
||||
+ omap_cfg_reg(AE2_3430_MMC2_CLK);
|
||||
+ omap_cfg_reg(AG5_3430_MMC2_CMD);
|
||||
+ omap_cfg_reg(AH5_3430_MMC2_DAT0);
|
||||
+ if (mmc_controller->slots[0].wires == 4 ||
|
||||
+ mmc_controller->slots[0].wires == 8) {
|
||||
+ omap_cfg_reg(AH4_3430_MMC2_DAT1);
|
||||
+ omap_cfg_reg(AG4_3430_MMC2_DAT2);
|
||||
+ omap_cfg_reg(AF4_3430_MMC2_DAT3);
|
||||
+ }
|
||||
+ if (mmc_controller->slots[0].wires == 8)
|
||||
+ printk(KERN_WARNING
|
||||
+ "\n MMC2: DAT4, DAT5, DAT6, DAT7: "
|
||||
+ "Setup the mux in board file");
|
||||
+ }
|
||||
+ if (controller_nr == 2) {
|
||||
+ /* MMC3 */
|
||||
+ printk(KERN_WARNING
|
||||
+ "\n MMC3: Setup the mux in board file: "
|
||||
+ "Multiple options exist, so is board specific");
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
#define MAX_OMAP_MMC_HWMOD_NAME_LEN 16
|
||||
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
|
||||
index 026c4fc..d49b9a7 100644
|
||||
--- a/arch/arm/mach-omap2/mux.c
|
||||
+++ b/arch/arm/mach-omap2/mux.c
|
||||
@@ -486,6 +486,55 @@ MUX_CFG_34XX("H19_34XX_GPIO164_OUT", 0x19c,
|
||||
OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_OUTPUT)
|
||||
MUX_CFG_34XX("J25_34XX_GPIO170", 0x1c6,
|
||||
OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT)
|
||||
+/* MMC1 */
|
||||
+MUX_CFG_34XX("N28_3430_MMC1_CLK", 0x144,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("M27_3430_MMC1_CMD", 0x146,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("N27_3430_MMC1_DAT0", 0x148,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("N26_3430_MMC1_DAT1", 0x14a,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("N25_3430_MMC1_DAT2", 0x14c,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("P28_3430_MMC1_DAT3", 0x14e,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("P27_3430_MMC1_DAT4", 0x150,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("P26_3430_MMC1_DAT5", 0x152,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("R27_3430_MMC1_DAT6", 0x154,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("R25_3430_MMC1_DAT7", 0x156,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+
|
||||
+/* MMC2 */
|
||||
+MUX_CFG_34XX("AE2_3430_MMC2_CLK", 0x158,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AG5_3430_MMC2_CMD", 0x15A,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AH5_3430_MMC2_DAT0", 0x15c,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AH4_3430_MMC2_DAT1", 0x15e,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AG4_3430_MMC2_DAT2", 0x160,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AF4_3430_MMC2_DAT3", 0x162,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+
|
||||
+/* MMC3 */
|
||||
+MUX_CFG_34XX("AF10_3430_MMC3_CLK", 0x5d8,
|
||||
+ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AC3_3430_MMC3_CMD", 0x1d0,
|
||||
+ OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AE11_3430_MMC3_DAT0", 0x5e4,
|
||||
+ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AH9_3430_MMC3_DAT1", 0x5e6,
|
||||
+ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AF13_3430_MMC3_DAT2", 0x5e8,
|
||||
+ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AF13_3430_MMC3_DAT3", 0x5e2,
|
||||
+ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
};
|
||||
|
||||
#define OMAP34XX_PINS_SZ ARRAY_SIZE(omap34xx_pins)
|
||||
diff --git a/arch/arm/plat-omap/include/mach/mux.h b/arch/arm/plat-omap/include/mach/mux.h
|
||||
index 85a6217..d24fdf9 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/mux.h
|
||||
+++ b/arch/arm/plat-omap/include/mach/mux.h
|
||||
@@ -853,6 +853,34 @@ enum omap34xx_index {
|
||||
AE5_34XX_GPIO143,
|
||||
H19_34XX_GPIO164_OUT,
|
||||
J25_34XX_GPIO170,
|
||||
+
|
||||
+ /* MMC1 */
|
||||
+ N28_3430_MMC1_CLK,
|
||||
+ M27_3430_MMC1_CMD,
|
||||
+ N27_3430_MMC1_DAT0,
|
||||
+ N26_3430_MMC1_DAT1,
|
||||
+ N25_3430_MMC1_DAT2,
|
||||
+ P28_3430_MMC1_DAT3,
|
||||
+ P27_3430_MMC1_DAT4,
|
||||
+ P26_3430_MMC1_DAT5,
|
||||
+ R27_3430_MMC1_DAT6,
|
||||
+ R25_3430_MMC1_DAT7,
|
||||
+
|
||||
+ /* MMC2 */
|
||||
+ AE2_3430_MMC2_CLK,
|
||||
+ AG5_3430_MMC2_CMD,
|
||||
+ AH5_3430_MMC2_DAT0,
|
||||
+ AH4_3430_MMC2_DAT1,
|
||||
+ AG4_3430_MMC2_DAT2,
|
||||
+ AF4_3430_MMC2_DAT3,
|
||||
+
|
||||
+ /* MMC3 */
|
||||
+ AF10_3430_MMC3_CLK,
|
||||
+ AC3_3430_MMC3_CMD,
|
||||
+ AE11_3430_MMC3_DAT0,
|
||||
+ AH9_3430_MMC3_DAT1,
|
||||
+ AF13_3430_MMC3_DAT2,
|
||||
+ AF13_3430_MMC3_DAT3,
|
||||
};
|
||||
|
||||
struct omap_mux_cfg {
|
||||
--
|
||||
1.6.3.2
|
||||
|
||||
@@ -0,0 +1,281 @@
|
||||
From b71cd09cefcd54e792a2ac032c3be64a97ef830c Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Fri, 12 Jun 2009 17:44:07 -0500
|
||||
Subject: [PATCH 2/8] OMAP3:Zoom2: Add TWL4030 support
|
||||
|
||||
Add TWL4030 CORE and TWL4030 drivers to Zoom2 board file
|
||||
TWL drivers enabled are:
|
||||
bci
|
||||
madc
|
||||
usb
|
||||
keypad
|
||||
mmc
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-zoom2.c | 204 +++++++++++++++++++++++++++++++++++--
|
||||
1 files changed, 193 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c
|
||||
index 0ec2023..e4bf50a 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom2.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom2.c
|
||||
@@ -12,18 +12,85 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
+#include <linux/input.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/i2c/twl4030.h>
|
||||
+#include <linux/regulator/machine.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include <mach/common.h>
|
||||
#include <mach/usb.h>
|
||||
+#include <mach/keypad.h>
|
||||
|
||||
#include "mmc-twl4030.h"
|
||||
#include "omap3-opp.h"
|
||||
|
||||
+/* Zoom2 has Qwerty keyboard*/
|
||||
+static int zoom2_twl4030_keymap[] = {
|
||||
+ KEY(0, 0, KEY_E),
|
||||
+ KEY(1, 0, KEY_R),
|
||||
+ KEY(2, 0, KEY_T),
|
||||
+ KEY(3, 0, KEY_HOME),
|
||||
+ KEY(6, 0, KEY_I),
|
||||
+ KEY(7, 0, KEY_LEFTSHIFT),
|
||||
+ KEY(0, 1, KEY_D),
|
||||
+ KEY(1, 1, KEY_F),
|
||||
+ KEY(2, 1, KEY_G),
|
||||
+ KEY(3, 1, KEY_SEND),
|
||||
+ KEY(6, 1, KEY_K),
|
||||
+ KEY(7, 1, KEY_ENTER),
|
||||
+ KEY(0, 2, KEY_X),
|
||||
+ KEY(1, 2, KEY_C),
|
||||
+ KEY(2, 2, KEY_V),
|
||||
+ KEY(3, 2, KEY_END),
|
||||
+ KEY(6, 2, KEY_DOT),
|
||||
+ KEY(7, 2, KEY_CAPSLOCK),
|
||||
+ KEY(0, 3, KEY_Z),
|
||||
+ KEY(1, 3, KEY_KPPLUS),
|
||||
+ KEY(2, 3, KEY_B),
|
||||
+ KEY(3, 3, KEY_F1),
|
||||
+ KEY(6, 3, KEY_O),
|
||||
+ KEY(7, 3, KEY_SPACE),
|
||||
+ KEY(0, 4, KEY_W),
|
||||
+ KEY(1, 4, KEY_Y),
|
||||
+ KEY(2, 4, KEY_U),
|
||||
+ KEY(3, 4, KEY_F2),
|
||||
+ KEY(4, 4, KEY_VOLUMEUP),
|
||||
+ KEY(6, 4, KEY_L),
|
||||
+ KEY(7, 4, KEY_LEFT),
|
||||
+ KEY(0, 5, KEY_S),
|
||||
+ KEY(1, 5, KEY_H),
|
||||
+ KEY(2, 5, KEY_J),
|
||||
+ KEY(3, 5, KEY_F3),
|
||||
+ KEY(5, 5, KEY_VOLUMEDOWN),
|
||||
+ KEY(6, 5, KEY_M),
|
||||
+ KEY(4, 5, KEY_ENTER),
|
||||
+ KEY(7, 5, KEY_RIGHT),
|
||||
+ KEY(0, 6, KEY_Q),
|
||||
+ KEY(1, 6, KEY_A),
|
||||
+ KEY(2, 6, KEY_N),
|
||||
+ KEY(3, 6, KEY_BACKSPACE),
|
||||
+ KEY(6, 6, KEY_P),
|
||||
+ KEY(7, 6, KEY_UP),
|
||||
+ KEY(6, 7, KEY_SELECT),
|
||||
+ KEY(7, 7, KEY_DOWN),
|
||||
+ KEY(0, 7, KEY_PROG1), /*MACRO 1 <User defined> */
|
||||
+ KEY(1, 7, KEY_PROG2), /*MACRO 2 <User defined> */
|
||||
+ KEY(2, 7, KEY_PROG3), /*MACRO 3 <User defined> */
|
||||
+ KEY(3, 7, KEY_PROG4), /*MACRO 4 <User defined> */
|
||||
+ 0
|
||||
+};
|
||||
+
|
||||
+static struct twl4030_keypad_data zoom2_kp_twl4030_data = {
|
||||
+ .rows = 8,
|
||||
+ .cols = 8,
|
||||
+ .keymap = zoom2_twl4030_keymap,
|
||||
+ .keymapsize = ARRAY_SIZE(zoom2_twl4030_keymap),
|
||||
+ .rep = 1,
|
||||
+};
|
||||
+
|
||||
static struct omap_uart_config zoom2_uart_config __initdata = {
|
||||
.enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
|
||||
};
|
||||
@@ -42,10 +109,128 @@ static void __init omap_zoom2_init_irq(void)
|
||||
omap_gpio_init();
|
||||
}
|
||||
|
||||
+
|
||||
+static struct regulator_consumer_supply zoom2_vmmc1_supply = {
|
||||
+ .supply = "vmmc",
|
||||
+};
|
||||
+
|
||||
+static struct regulator_consumer_supply zoom2_vsim_supply = {
|
||||
+ .supply = "vmmc_aux",
|
||||
+};
|
||||
+
|
||||
+static struct regulator_consumer_supply zoom2_vmmc2_supply = {
|
||||
+ .supply = "vmmc",
|
||||
+};
|
||||
+
|
||||
+/* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
|
||||
+static struct regulator_init_data zoom2_vmmc1 = {
|
||||
+ .constraints = {
|
||||
+ .min_uV = 1850000,
|
||||
+ .max_uV = 3150000,
|
||||
+ .valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
+ | REGULATOR_MODE_STANDBY,
|
||||
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
+ | REGULATOR_CHANGE_MODE
|
||||
+ | REGULATOR_CHANGE_STATUS,
|
||||
+ },
|
||||
+ .num_consumer_supplies = 1,
|
||||
+ .consumer_supplies = &zoom2_vmmc1_supply,
|
||||
+};
|
||||
+
|
||||
+/* VMMC2 for MMC2 card */
|
||||
+static struct regulator_init_data zoom2_vmmc2 = {
|
||||
+ .constraints = {
|
||||
+ .min_uV = 1850000,
|
||||
+ .max_uV = 1850000,
|
||||
+ .apply_uV = true,
|
||||
+ .valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
+ | REGULATOR_MODE_STANDBY,
|
||||
+ .valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
+ | REGULATOR_CHANGE_STATUS,
|
||||
+ },
|
||||
+ .num_consumer_supplies = 1,
|
||||
+ .consumer_supplies = &zoom2_vmmc2_supply,
|
||||
+};
|
||||
+
|
||||
+/* VSIM for OMAP VDD_MMC1A (i/o for DAT4..DAT7) */
|
||||
+static struct regulator_init_data zoom2_vsim = {
|
||||
+ .constraints = {
|
||||
+ .min_uV = 1800000,
|
||||
+ .max_uV = 3000000,
|
||||
+ .valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
+ | REGULATOR_MODE_STANDBY,
|
||||
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
+ | REGULATOR_CHANGE_MODE
|
||||
+ | REGULATOR_CHANGE_STATUS,
|
||||
+ },
|
||||
+ .num_consumer_supplies = 1,
|
||||
+ .consumer_supplies = &zoom2_vsim_supply,
|
||||
+};
|
||||
+
|
||||
+static struct twl4030_hsmmc_info mmc[] __initdata = {
|
||||
+ {
|
||||
+ .mmc = 1,
|
||||
+ .wires = 4,
|
||||
+ .gpio_wp = -EINVAL,
|
||||
+ },
|
||||
+ {
|
||||
+ .mmc = 2,
|
||||
+ .wires = 4,
|
||||
+ .gpio_wp = -EINVAL,
|
||||
+ },
|
||||
+ {} /* Terminator */
|
||||
+};
|
||||
+
|
||||
+static int zoom2_twl_gpio_setup(struct device *dev,
|
||||
+ unsigned gpio, unsigned ngpio)
|
||||
+{
|
||||
+ /* gpio + 0 is "mmc0_cd" (input/IRQ),
|
||||
+ * gpio + 1 is "mmc1_cd" (input/IRQ)
|
||||
+ */
|
||||
+ mmc[0].gpio_cd = gpio + 0;
|
||||
+ mmc[1].gpio_cd = gpio + 1;
|
||||
+ twl4030_mmc_init(mmc);
|
||||
+
|
||||
+ /* link regulators to MMC adapters ... we "know" the
|
||||
+ * regulators will be set up only *after* we return.
|
||||
+ */
|
||||
+ zoom2_vmmc1_supply.dev = mmc[0].dev;
|
||||
+ zoom2_vsim_supply.dev = mmc[0].dev;
|
||||
+ zoom2_vmmc2_supply.dev = mmc[1].dev;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+static int zoom2_batt_table[] = {
|
||||
+/* 0 C*/
|
||||
+30800, 29500, 28300, 27100,
|
||||
+26000, 24900, 23900, 22900, 22000, 21100, 20300, 19400, 18700, 17900,
|
||||
+17200, 16500, 15900, 15300, 14700, 14100, 13600, 13100, 12600, 12100,
|
||||
+11600, 11200, 10800, 10400, 10000, 9630, 9280, 8950, 8620, 8310,
|
||||
+8020, 7730, 7460, 7200, 6950, 6710, 6470, 6250, 6040, 5830,
|
||||
+5640, 5450, 5260, 5090, 4920, 4760, 4600, 4450, 4310, 4170,
|
||||
+4040, 3910, 3790, 3670, 3550
|
||||
+};
|
||||
+
|
||||
+static struct twl4030_bci_platform_data zoom2_bci_data = {
|
||||
+ .battery_tmp_tbl = zoom2_batt_table,
|
||||
+ .tblsize = ARRAY_SIZE(zoom2_batt_table),
|
||||
+};
|
||||
+
|
||||
+static struct twl4030_usb_data zoom2_usb_data = {
|
||||
+ .usb_mode = T2_USB_MODE_ULPI,
|
||||
+};
|
||||
+
|
||||
static struct twl4030_gpio_platform_data zoom2_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
+ .setup = zoom2_twl_gpio_setup,
|
||||
+};
|
||||
+
|
||||
+static struct twl4030_madc_platform_data zoom2_madc_data = {
|
||||
+ .irq_line = 1,
|
||||
};
|
||||
|
||||
static struct twl4030_platform_data zoom2_twldata = {
|
||||
@@ -53,7 +238,15 @@ static struct twl4030_platform_data zoom2_twldata = {
|
||||
.irq_end = TWL4030_IRQ_END,
|
||||
|
||||
/* platform_data for children goes here */
|
||||
+ .bci = &zoom2_bci_data,
|
||||
+ .madc = &zoom2_madc_data,
|
||||
+ .usb = &zoom2_usb_data,
|
||||
.gpio = &zoom2_gpio_data,
|
||||
+ .keypad = &zoom2_kp_twl4030_data,
|
||||
+ .vmmc1 = &zoom2_vmmc1,
|
||||
+ .vmmc2 = &zoom2_vmmc2,
|
||||
+ .vsim = &zoom2_vsim,
|
||||
+
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata zoom2_i2c_boardinfo[] = {
|
||||
@@ -74,16 +267,6 @@ static int __init omap_i2c_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static struct twl4030_hsmmc_info mmc[] __initdata = {
|
||||
- {
|
||||
- .mmc = 1,
|
||||
- .wires = 4,
|
||||
- .gpio_cd = -EINVAL,
|
||||
- .gpio_wp = -EINVAL,
|
||||
- },
|
||||
- {} /* Terminator */
|
||||
-};
|
||||
-
|
||||
extern int __init omap_zoom2_debugboard_init(void);
|
||||
|
||||
static void __init omap_zoom2_init(void)
|
||||
@@ -91,7 +274,6 @@ static void __init omap_zoom2_init(void)
|
||||
omap_i2c_init();
|
||||
omap_serial_init();
|
||||
omap_zoom2_debugboard_init();
|
||||
- twl4030_mmc_init(mmc);
|
||||
usb_musb_init();
|
||||
}
|
||||
|
||||
--
|
||||
1.6.3.2
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,143 @@
|
||||
From 3f819713f3c7ccfd56146f4c007155bc47a170ac Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Mon, 22 Jun 2009 17:58:47 -0500
|
||||
Subject: [PATCH 4/8] serial: 8250: add IRQ trigger support
|
||||
|
||||
There is currently no provision for passing IRQ trigger flags for
|
||||
serial IRQs with triggering requirements (such as GPIO IRQs)
|
||||
|
||||
This patch adds irqflags to plat_serial8250_port that can be passed
|
||||
from board file to reqest_irq() of 8250 driver
|
||||
|
||||
Changes are backward compatible with boards passing UPF_SHARE_IRQ flag
|
||||
|
||||
Tested on Zoom2 board that has IRQF_TRIGGER_RISING requirement for 8250 irq
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
---
|
||||
drivers/serial/8250.c | 14 +++++++++-----
|
||||
drivers/serial/8250.h | 1 +
|
||||
include/linux/serial_8250.h | 1 +
|
||||
include/linux/serial_core.h | 1 +
|
||||
4 files changed, 12 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
|
||||
index 606fabb..6474fe4 100644
|
||||
--- a/drivers/serial/8250.c
|
||||
+++ b/drivers/serial/8250.c
|
||||
@@ -1681,7 +1681,7 @@ static int serial_link_irq_chain(struct uart_8250_port *up)
|
||||
INIT_LIST_HEAD(&up->list);
|
||||
i->head = &up->list;
|
||||
spin_unlock_irq(&i->lock);
|
||||
-
|
||||
+ irq_flags |= up->port.irqflags;
|
||||
ret = request_irq(up->port.irq, serial8250_interrupt,
|
||||
irq_flags, "serial", i);
|
||||
if (ret < 0)
|
||||
@@ -2030,7 +2030,7 @@ static int serial8250_startup(struct uart_port *port)
|
||||
* allow register changes to become visible.
|
||||
*/
|
||||
spin_lock_irqsave(&up->port.lock, flags);
|
||||
- if (up->port.flags & UPF_SHARE_IRQ)
|
||||
+ if (up->port.irqflags & IRQF_SHARED)
|
||||
disable_irq_nosync(up->port.irq);
|
||||
|
||||
wait_for_xmitr(up, UART_LSR_THRE);
|
||||
@@ -2043,7 +2043,7 @@ static int serial8250_startup(struct uart_port *port)
|
||||
iir = serial_in(up, UART_IIR);
|
||||
serial_out(up, UART_IER, 0);
|
||||
|
||||
- if (up->port.flags & UPF_SHARE_IRQ)
|
||||
+ if (up->port.irqflags & IRQF_SHARED)
|
||||
enable_irq(up->port.irq);
|
||||
spin_unlock_irqrestore(&up->port.lock, flags);
|
||||
|
||||
@@ -2688,6 +2688,7 @@ static void __init serial8250_isa_init_ports(void)
|
||||
i++, up++) {
|
||||
up->port.iobase = old_serial_port[i].port;
|
||||
up->port.irq = irq_canonicalize(old_serial_port[i].irq);
|
||||
+ up->port.irqflags = old_serial_port[i].irqflags;
|
||||
up->port.uartclk = old_serial_port[i].baud_base * 16;
|
||||
up->port.flags = old_serial_port[i].flags;
|
||||
up->port.hub6 = old_serial_port[i].hub6;
|
||||
@@ -2696,7 +2697,7 @@ static void __init serial8250_isa_init_ports(void)
|
||||
up->port.regshift = old_serial_port[i].iomem_reg_shift;
|
||||
set_io_from_upio(&up->port);
|
||||
if (share_irqs)
|
||||
- up->port.flags |= UPF_SHARE_IRQ;
|
||||
+ up->port.irqflags |= IRQF_SHARED;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2886,6 +2887,7 @@ int __init early_serial_setup(struct uart_port *port)
|
||||
p->iobase = port->iobase;
|
||||
p->membase = port->membase;
|
||||
p->irq = port->irq;
|
||||
+ p->irqflags = port->irqflags;
|
||||
p->uartclk = port->uartclk;
|
||||
p->fifosize = port->fifosize;
|
||||
p->regshift = port->regshift;
|
||||
@@ -2959,6 +2961,7 @@ static int __devinit serial8250_probe(struct platform_device *dev)
|
||||
port.iobase = p->iobase;
|
||||
port.membase = p->membase;
|
||||
port.irq = p->irq;
|
||||
+ port.irqflags = p->irqflags;
|
||||
port.uartclk = p->uartclk;
|
||||
port.regshift = p->regshift;
|
||||
port.iotype = p->iotype;
|
||||
@@ -2971,7 +2974,7 @@ static int __devinit serial8250_probe(struct platform_device *dev)
|
||||
port.serial_out = p->serial_out;
|
||||
port.dev = &dev->dev;
|
||||
if (share_irqs)
|
||||
- port.flags |= UPF_SHARE_IRQ;
|
||||
+ port.irqflags |= IRQF_SHARED;
|
||||
ret = serial8250_register_port(&port);
|
||||
if (ret < 0) {
|
||||
dev_err(&dev->dev, "unable to register port at index %d "
|
||||
@@ -3113,6 +3116,7 @@ int serial8250_register_port(struct uart_port *port)
|
||||
uart->port.iobase = port->iobase;
|
||||
uart->port.membase = port->membase;
|
||||
uart->port.irq = port->irq;
|
||||
+ uart->port.irqflags = port->irqflags;
|
||||
uart->port.uartclk = port->uartclk;
|
||||
uart->port.fifosize = port->fifosize;
|
||||
uart->port.regshift = port->regshift;
|
||||
diff --git a/drivers/serial/8250.h b/drivers/serial/8250.h
|
||||
index 5202603..9b34b04 100644
|
||||
--- a/drivers/serial/8250.h
|
||||
+++ b/drivers/serial/8250.h
|
||||
@@ -20,6 +20,7 @@ struct old_serial_port {
|
||||
unsigned int baud_base;
|
||||
unsigned int port;
|
||||
unsigned int irq;
|
||||
+ unsigned long irqflags;
|
||||
unsigned int flags;
|
||||
unsigned char hub6;
|
||||
unsigned char io_type;
|
||||
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h
|
||||
index d4d2a78..fb46aba 100644
|
||||
--- a/include/linux/serial_8250.h
|
||||
+++ b/include/linux/serial_8250.h
|
||||
@@ -22,6 +22,7 @@ struct plat_serial8250_port {
|
||||
void __iomem *membase; /* ioremap cookie or NULL */
|
||||
resource_size_t mapbase; /* resource base */
|
||||
unsigned int irq; /* interrupt number */
|
||||
+ unsigned long irqflags; /* request_irq flags */
|
||||
unsigned int uartclk; /* UART clock rate */
|
||||
void *private_data;
|
||||
unsigned char regshift; /* register shift */
|
||||
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
|
||||
index 23d2fb0..3cd255f 100644
|
||||
--- a/include/linux/serial_core.h
|
||||
+++ b/include/linux/serial_core.h
|
||||
@@ -265,6 +265,7 @@ struct uart_port {
|
||||
unsigned int (*serial_in)(struct uart_port *, int);
|
||||
void (*serial_out)(struct uart_port *, int, int);
|
||||
unsigned int irq; /* irq number */
|
||||
+ unsigned long irqflags; /* irq flags */
|
||||
unsigned int uartclk; /* base uart clock */
|
||||
unsigned int fifosize; /* tx fifo size */
|
||||
unsigned char x_char; /* xon/xoff char */
|
||||
--
|
||||
1.6.3.2
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
From a9551305279caac19d9f7ee121633fd18baa2fab Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Mon, 22 Jun 2009 18:20:04 -0500
|
||||
Subject: [PATCH 5/8] OMAP2: Zoom2: Pass irqflags to 8250 driver
|
||||
|
||||
Pass irqflags to 8250 driver from zoom2 board file
|
||||
Zoom2 has IRQF_TRIGGER_RISING requirement for the 8250 GPIO irq
|
||||
|
||||
This patch is dependent on 8250 driver changes getting accepted upstream:
|
||||
http://patchwork.kernel.org/patch/31884/
|
||||
|
||||
Warn: could cause compilation break if above patch is not integrated first
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-zoom-debugboard.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
index bac5c43..f546063 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/smsc911x.h>
|
||||
+#include <linux/interrupt.h>
|
||||
|
||||
#include <mach/gpmc.h>
|
||||
|
||||
@@ -84,6 +85,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
|
||||
.mapbase = 0x10000000,
|
||||
.irq = OMAP_GPIO_IRQ(102),
|
||||
.flags = UPF_BOOT_AUTOCONF|UPF_IOREMAP|UPF_SHARE_IRQ,
|
||||
+ .irqflags = IRQF_SHARED | IRQF_TRIGGER_RISING,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 1,
|
||||
.uartclk = QUART_CLK,
|
||||
--
|
||||
1.6.3.2
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From 14b507c8e7fc09e91297a82819296533ab35d8ae Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Hilman <khilman@deeprootsystems.com>
|
||||
Date: Mon, 20 Jul 2009 16:12:32 -0700
|
||||
Subject: [PATCH 6/8] OMAP3: Zoom2: ext UART needs plaform_device.id >= 3
|
||||
|
||||
The on-chip UARTs now have individual platform_device.id numbers,
|
||||
so for the external UART to register properly, it needs an id >= 3.
|
||||
|
||||
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-zoom-debugboard.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
index f546063..e0948c9 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
@@ -96,7 +96,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
|
||||
|
||||
static struct platform_device zoom2_debugboard_serial_device = {
|
||||
.name = "serial8250",
|
||||
- .id = PLAT8250_DEV_PLATFORM1,
|
||||
+ .id = 3,
|
||||
.dev = {
|
||||
.platform_data = serial_platform_data,
|
||||
},
|
||||
--
|
||||
1.6.3.2
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
From e2d19993731b3b4b083329f3acb4538e9d94fc36 Mon Sep 17 00:00:00 2001
|
||||
From: Erik Gilling <konkers@android.com>
|
||||
Date: Tue, 21 Apr 2009 13:38:12 -0700
|
||||
Subject: [PATCH 7/8] omap: zoom2: add external uart DEBUG_LL support to zoom2 board file
|
||||
|
||||
Signed-off-by: Erik Gilling <konkers@android.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-zoom2.c | 23 +++++++++++++++++++++--
|
||||
1 files changed, 21 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c
|
||||
index e4bf50a..5742b55 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom2.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom2.c
|
||||
@@ -16,9 +16,11 @@
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/i2c/twl4030.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
+#include <linux/io.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
+#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/common.h>
|
||||
#include <mach/usb.h>
|
||||
@@ -27,6 +29,10 @@
|
||||
#include "mmc-twl4030.h"
|
||||
#include "omap3-opp.h"
|
||||
|
||||
+#define ZOOM2_QUART_PHYS 0x10000000
|
||||
+#define ZOOM2_QUART_VIRT 0xFB000000
|
||||
+#define ZOOM2_QUART_SIZE SZ_1M
|
||||
+
|
||||
/* Zoom2 has Qwerty keyboard*/
|
||||
static int zoom2_twl4030_keymap[] = {
|
||||
KEY(0, 0, KEY_E),
|
||||
@@ -277,15 +283,28 @@ static void __init omap_zoom2_init(void)
|
||||
usb_musb_init();
|
||||
}
|
||||
|
||||
+static struct map_desc zoom2_io_desc[] __initdata = {
|
||||
+ {
|
||||
+ .virtual = ZOOM2_QUART_VIRT,
|
||||
+ .pfn = __phys_to_pfn(ZOOM2_QUART_PHYS),
|
||||
+ .length = ZOOM2_QUART_SIZE,
|
||||
+ .type = MT_DEVICE
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static void __init omap_zoom2_map_io(void)
|
||||
{
|
||||
omap2_set_globals_343x();
|
||||
+ iotable_init(zoom2_io_desc, ARRAY_SIZE(zoom2_io_desc));
|
||||
omap2_map_common_io();
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board")
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ /* phys_io is only used for DEBUG_LL early printing. The Zoom2's
|
||||
+ * console is on an external quad UART sitting at address 0x10000000
|
||||
+ */
|
||||
+ .phys_io = 0x10000000,
|
||||
+ .io_pg_offst = ((0xfb000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_zoom2_map_io,
|
||||
.init_irq = omap_zoom2_init_irq,
|
||||
--
|
||||
1.6.3.2
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
From bef0894d8a200e43593117a3832cab825ea8aa8c Mon Sep 17 00:00:00 2001
|
||||
From: Erik Gilling <konkers@android.com>
|
||||
Date: Tue, 21 Apr 2009 13:37:25 -0700
|
||||
Subject: [PATCH 8/8] omap2: add support for DEBUG_LL on external UART
|
||||
|
||||
Signed-off-by: Erik Gilling <konkers@android.com>
|
||||
---
|
||||
arch/arm/plat-omap/Kconfig | 3 +++
|
||||
arch/arm/plat-omap/include/mach/debug-macro.S | 14 +++++++++++++-
|
||||
arch/arm/plat-omap/include/mach/serial.h | 1 +
|
||||
arch/arm/plat-omap/include/mach/uncompress.h | 5 ++++-
|
||||
4 files changed, 21 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
|
||||
index c782418..e891f07 100644
|
||||
--- a/arch/arm/plat-omap/Kconfig
|
||||
+++ b/arch/arm/plat-omap/Kconfig
|
||||
@@ -210,6 +210,9 @@ config OMAP_LL_DEBUG_UART2
|
||||
config OMAP_LL_DEBUG_UART3
|
||||
bool "UART3"
|
||||
|
||||
+config OMAP_LL_DEBUG_UART_EXT
|
||||
+ bool "UART_EXT"
|
||||
+
|
||||
endchoice
|
||||
|
||||
config OMAP_SERIAL_WAKE
|
||||
diff --git a/arch/arm/plat-omap/include/mach/debug-macro.S b/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
index ac24050..5864019 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
+++ b/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
@@ -37,6 +37,10 @@
|
||||
#endif
|
||||
|
||||
#elif defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
|
||||
+#ifdef CONFIG_OMAP_LL_DEBUG_UART_EXT
|
||||
+ moveq \rx, #0x10000000 @ physical base address
|
||||
+ movne \rx, #0xfb000000 @ virtual base address
|
||||
+#else
|
||||
moveq \rx, #0x48000000 @ physical base address
|
||||
movne \rx, #0xd8000000 @ virtual base
|
||||
orr \rx, \rx, #0x0006a000
|
||||
@@ -48,20 +52,28 @@
|
||||
add \rx, \rx, #0x00006000
|
||||
#endif
|
||||
#endif
|
||||
+#endif
|
||||
.endm
|
||||
|
||||
.macro senduart,rd,rx
|
||||
strb \rd, [\rx]
|
||||
.endm
|
||||
|
||||
+#ifdef CONFIG_OMAP_LL_DEBUG_UART_EXT
|
||||
+#define REGSHIFT 1
|
||||
+#else
|
||||
+#define REGSHIFT 2
|
||||
+#endif
|
||||
.macro busyuart,rd,rx
|
||||
-1001: ldrb \rd, [\rx, #(0x5 << 2)] @ OMAP-1510 and friends
|
||||
+1001: ldrb \rd, [\rx, #(0x5 << REGSHIFT)] @ OMAP-1510 and friends
|
||||
and \rd, \rd, #0x60
|
||||
teq \rd, #0x60
|
||||
+#ifndef CONFIG_OMAP_LL_DEBUG_UART_EXT
|
||||
beq 1002f
|
||||
ldrb \rd, [\rx, #(0x5 << 0)] @ OMAP-730 only
|
||||
and \rd, \rd, #0x60
|
||||
teq \rd, #0x60
|
||||
+#endif
|
||||
bne 1001b
|
||||
1002:
|
||||
.endm
|
||||
diff --git a/arch/arm/plat-omap/include/mach/serial.h b/arch/arm/plat-omap/include/mach/serial.h
|
||||
index e249186..7ae4567 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/serial.h
|
||||
+++ b/arch/arm/plat-omap/include/mach/serial.h
|
||||
@@ -32,6 +32,7 @@
|
||||
#define OMAP_UART1_BASE 0x4806a000
|
||||
#define OMAP_UART2_BASE 0x4806c000
|
||||
#define OMAP_UART3_BASE 0x49020000
|
||||
+#define OMAP_UART_EXT_BASE 0x10000000
|
||||
#define OMAP_MAX_NR_PORTS 3
|
||||
#elif defined(CONFIG_ARCH_OMAP4)
|
||||
/* OMAP4 serial ports */
|
||||
diff --git a/arch/arm/plat-omap/include/mach/uncompress.h b/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
index 0814c5f..082c0cd 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
+++ b/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
@@ -39,7 +39,10 @@ static void putc(int c)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP
|
||||
-#ifdef CONFIG_OMAP_LL_DEBUG_UART3
|
||||
+#ifdef CONFIG_OMAP_LL_DEBUG_UART_EXT
|
||||
+ uart = (volatile u8 *)(OMAP_UART_EXT_BASE);
|
||||
+ shift = 1;
|
||||
+#elif defined(CONFIG_OMAP_LL_DEBUG_UART3)
|
||||
uart = (volatile u8 *)(OMAP_UART3_BASE);
|
||||
#elif defined(CONFIG_OMAP_LL_DEBUG_UART2)
|
||||
uart = (volatile u8 *)(OMAP_UART2_BASE);
|
||||
--
|
||||
1.6.3.2
|
||||
|
||||
75
meta/packages/linux/linux-omap3-pm_git.bb
Normal file
75
meta/packages/linux/linux-omap3-pm_git.bb
Normal file
@@ -0,0 +1,75 @@
|
||||
DESCRIPTION = "Linux Kernel"
|
||||
SECTION = "kernel"
|
||||
LICENSE = "GPL"
|
||||
|
||||
inherit kernel
|
||||
|
||||
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/${PN}-git/${MACHINE}"
|
||||
|
||||
SRCREV = "${AUTOREV}"
|
||||
|
||||
PV = "2.6.31-rc1+${PR}+git${SRCREV}"
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git;branch=pm;protocol=git"
|
||||
|
||||
SRC_URI_append_zoom2 = " \
|
||||
file://0001-OMAP3-MMC-Add-mux-for-pins.patch;patch=1 \
|
||||
file://0002-OMAP3-Zoom2-Add-TWL4030-support.patch;patch=1 \
|
||||
file://0003-OMAP3-Zoom2-Update-board-defconfig.patch;patch=1 \
|
||||
file://0004-serial-8250-add-IRQ-trigger-support.patch;patch=1 \
|
||||
file://0005-OMAP2-Zoom2-Pass-irqflags-to-8250-driver.patch;patch=1 \
|
||||
file://0006-OMAP3-Zoom2-ext-UART-needs-plaform_device.id-3.patch;patch=1 \
|
||||
file://0007-omap-zoom2-add-external-uart-DEBUG_LL-support-to-zoo.patch;patch=1 \
|
||||
file://0008-omap2-add-support-for-DEBUG_LL-on-external-UART.patch;patch=1 \
|
||||
"
|
||||
|
||||
COMPATIBLE_MACHINE = "beagleboard|omap-3430sdp|omap3evm|overo|rx51|zoom2"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_configure_prepend() {
|
||||
# logo support: if you supply logo_linux_clut224.ppm in SRC_URI,
|
||||
# then it's going to be used instead of "Tux" in the kernel sources
|
||||
if [ -e ${WORKDIR}/logo_linux_clut224.ppm ]; then
|
||||
install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm \
|
||||
drivers/video/logo/logo_linux_clut224.ppm
|
||||
fi
|
||||
|
||||
# use the externally-supplied ${MACHINE}_external_defconfig if present,
|
||||
# else use omap3_pm_defconfig from the sources
|
||||
if [ -e ${WORKDIR}/${MACHINE}_external_defconfig ]; then
|
||||
cp ${WORKDIR}/${MACHINE}_external_defconfig ${S}/arch/arm/configs/
|
||||
yes '' | oe_runmake ${MACHINE}_external_defconfig
|
||||
else
|
||||
case ${MACHINE} in
|
||||
omap-3430sdp|omap3evm)
|
||||
# works out of the box
|
||||
yes '' | oe_runmake omap3_pm_defconfig
|
||||
;;
|
||||
beagleboard | overo | rx51)
|
||||
# adjust LL_DEBUG console for these boards
|
||||
yes '' | oe_runmake omap3_pm_defconfig
|
||||
sed -e "s/CONFIG_OMAP_LL_DEBUG_UART1=y/# CONFIG_OMAP_LL_DEBUG_UART1 is not set/" \
|
||||
-e "s/# CONFIG_OMAP_LL_DEBUG_UART3 is not set/CONFIG_OMAP_LL_DEBUG_UART3=y/" \
|
||||
-e "s/CONFIG_MMC_BLOCK=m/CONFIG_MMC_BLOCK=y/" \
|
||||
-e "s/CONFIG_MMC_OMAP_HS=m/CONFIG_MMC_OMAP_HS=y/" \
|
||||
-i ${S}/.config
|
||||
;;
|
||||
zoom2)
|
||||
# adjust LL_DEBUG console for these boards
|
||||
yes '' | oe_runmake omap3_pm_defconfig
|
||||
sed -e "s/CONFIG_OMAP_LL_DEBUG_UART1=y/# CONFIG_OMAP_LL_DEBUG_UART1 is not set/" \
|
||||
-e "s/CONFIG_MMC_BLOCK=m/CONFIG_MMC_BLOCK=y/" \
|
||||
-e "s/CONFIG_MMC_OMAP_HS=m/CONFIG_MMC_OMAP_HS=y/" \
|
||||
-i ${S}/.config
|
||||
echo "CONFIG_OMAP_LL_DEBUG_UART_EXT=y" >> ${S}/.config
|
||||
# yes '' | oe_runmake oldconfig
|
||||
;;
|
||||
*)
|
||||
# its worth a try...
|
||||
yes '' | oe_runmake ${MACHINE}_defconfig
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user