diff options
Diffstat (limited to 'patches/barebox-2012.12.0/0016-ARM-OMAP-AM33XX-create-new-ARCH-for-AM33xx.patch')
-rw-r--r-- | patches/barebox-2012.12.0/0016-ARM-OMAP-AM33XX-create-new-ARCH-for-AM33xx.patch | 306 |
1 files changed, 0 insertions, 306 deletions
diff --git a/patches/barebox-2012.12.0/0016-ARM-OMAP-AM33XX-create-new-ARCH-for-AM33xx.patch b/patches/barebox-2012.12.0/0016-ARM-OMAP-AM33XX-create-new-ARCH-for-AM33xx.patch deleted file mode 100644 index ffc87b1..0000000 --- a/patches/barebox-2012.12.0/0016-ARM-OMAP-AM33XX-create-new-ARCH-for-AM33xx.patch +++ /dev/null @@ -1,306 +0,0 @@ -From 8dbe4ac9ad2f56e384e29b3cde472168b9bf0ab9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Teresa=20G=C3=A1mez?= <t.gamez@phytec.de> -Date: Thu, 13 Dec 2012 17:30:46 +0100 -Subject: [PATCH] ARM OMAP AM33XX: create new ARCH for AM33xx -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Created ARCH for AM33xx boards as second stage bootloader. -This includes: -- Added dmtimer0 -- Created basic header files -- Added MMC support for ARCH_AM33XX -- Added reset function - -Signed-off-by: Teresa Gámez <t.gamez@phytec.de> - -Some header file cleanup by: -Signed-off-by: Jan Luebbe <jlu@pengutronix.de> -Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> ---- - arch/arm/mach-omap/Kconfig | 11 +++ - arch/arm/mach-omap/Makefile | 2 + - arch/arm/mach-omap/am33xx_generic.c | 29 +++++++ - arch/arm/mach-omap/dmtimer0.c | 89 ++++++++++++++++++++++ - arch/arm/mach-omap/include/mach/am33xx-clock.h | 23 ++++++ - arch/arm/mach-omap/include/mach/am33xx-silicon.h | 49 ++++++++++++ - drivers/mci/Kconfig | 2 +- - 7 files changed, 204 insertions(+), 1 deletion(-) - create mode 100644 arch/arm/mach-omap/am33xx_generic.c - create mode 100644 arch/arm/mach-omap/dmtimer0.c - create mode 100644 arch/arm/mach-omap/include/mach/am33xx-clock.h - create mode 100644 arch/arm/mach-omap/include/mach/am33xx-silicon.h - -diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig -index 451783e..b94500a 100644 ---- a/arch/arm/mach-omap/Kconfig -+++ b/arch/arm/mach-omap/Kconfig -@@ -42,12 +42,23 @@ config ARCH_OMAP4 - help - Say Y here if you are using Texas Instrument's OMAP4 based platform - -+config ARCH_AM33XX -+ bool "AM33xx" -+ select CPU_V7 -+ select GENERIC_GPIO -+ select OMAP_CLOCK_SOURCE_DMTIMER0 -+ help -+ Say Y here if you are using Texas Instrument's AM33xx based platform -+ - endchoice - - # Blind enable all possible clocks.. think twice before you do this. - config OMAP_CLOCK_SOURCE_S32K - bool - -+config OMAP_CLOCK_SOURCE_DMTIMER0 -+ bool -+ - config OMAP3_CLOCK_CONFIG - prompt "Clock Configuration" - bool -diff --git a/arch/arm/mach-omap/Makefile b/arch/arm/mach-omap/Makefile -index b7a5e4a..48a951b 100644 ---- a/arch/arm/mach-omap/Makefile -+++ b/arch/arm/mach-omap/Makefile -@@ -18,10 +18,12 @@ - obj-$(CONFIG_ARCH_OMAP) += syslib.o omap_devices.o - pbl-$(CONFIG_ARCH_OMAP) += syslib.o - obj-$(CONFIG_OMAP_CLOCK_SOURCE_S32K) += s32k_clksource.o -+obj-$(CONFIG_OMAP_CLOCK_SOURCE_DMTIMER0) += dmtimer0.o - obj-$(CONFIG_ARCH_OMAP3) += omap3_core.o omap3_generic.o auxcr.o - pbl-$(CONFIG_ARCH_OMAP3) += omap3_core.o omap3_generic.o auxcr.o - obj-$(CONFIG_ARCH_OMAP4) += omap4_generic.o omap4_clock.o - pbl-$(CONFIG_ARCH_OMAP4) += omap4_generic.o omap4_clock.o -+obj-$(CONFIG_ARCH_AM33XX) += am33xx_generic.o - obj-$(CONFIG_OMAP3_CLOCK_CONFIG) += omap3_clock.o - pbl-$(CONFIG_OMAP3_CLOCK_CONFIG) += omap3_clock.o - obj-$(CONFIG_OMAP_GPMC) += gpmc.o devices-gpmc-nand.o -diff --git a/arch/arm/mach-omap/am33xx_generic.c b/arch/arm/mach-omap/am33xx_generic.c -new file mode 100644 -index 0000000..f73f946 ---- /dev/null -+++ b/arch/arm/mach-omap/am33xx_generic.c -@@ -0,0 +1,29 @@ -+/* -+ * (C) Copyright 2012 Teresa Gámez, Phytec Messtechnik GmbH -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <io.h> -+#include <mach/am33xx-silicon.h> -+#include <mach/am33xx-clock.h> -+ -+void __noreturn reset_cpu(unsigned long addr) -+{ -+ writel(AM33XX_PRM_RSTCTRL_RESET, AM33XX_PRM_RSTCTRL); -+ -+ while (1); -+} -diff --git a/arch/arm/mach-omap/dmtimer0.c b/arch/arm/mach-omap/dmtimer0.c -new file mode 100644 -index 0000000..b0bd670 ---- /dev/null -+++ b/arch/arm/mach-omap/dmtimer0.c -@@ -0,0 +1,89 @@ -+/** -+ * @file -+ * @brief Support DMTimer0 counter -+ * -+ * FileName: arch/arm/mach-omap/dmtimer0.c -+ */ -+/* -+ * This File is based on arch/arm/mach-omap/s32k_clksource.c -+ * (C) Copyright 2008 -+ * Texas Instruments, <www.ti.com> -+ * Nishanth Menon <x0nishan@ti.com> -+ * -+ * (C) Copyright 2012 Teresa Gámez, Phytec Messtechnik GmbH -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <clock.h> -+#include <init.h> -+#include <io.h> -+#include <mach/am33xx-silicon.h> -+ -+#define CLK_RC32K 32768 -+ -+#define TIDR 0x0 -+#define TIOCP_CFG 0x10 -+#define IRQ_EOI 0x20 -+#define IRQSTATUS_RAW 0x24 -+#define IRQSTATUS 0x28 -+#define IRQSTATUS_SET 0x2c -+#define IRQSTATUS_CLR 0x30 -+#define IRQWAKEEN 0x34 -+#define TCLR 0x38 -+#define TCRR 0x3C -+#define TLDR 0x40 -+#define TTGR 0x44 -+#define TWPS 0x48 -+#define TMAR 0x4C -+#define TCAR1 0x50 -+#define TSICR 0x54 -+#define TCAR2 0x58 -+ -+/** -+ * @brief Provide a simple counter read -+ * -+ * @return DMTimer0 counter -+ */ -+static uint64_t dmtimer0_read(void) -+{ -+ return readl(AM33XX_DMTIMER0_BASE + TCRR); -+} -+ -+static struct clocksource dmtimer0_cs = { -+ .read = dmtimer0_read, -+ .mask = CLOCKSOURCE_MASK(32), -+ .shift = 10, -+}; -+ -+/** -+ * @brief Initialize the Clock -+ * -+ * Enable dmtimer0. -+ * -+ * @return result of @ref init_clock -+ */ -+static int dmtimer0_init(void) -+{ -+ dmtimer0_cs.mult = clocksource_hz2mult(CLK_RC32K, dmtimer0_cs.shift); -+ /* Enable counter */ -+ writel(0x3, AM33XX_DMTIMER0_BASE + TCLR); -+ -+ return init_clock(&dmtimer0_cs); -+} -+ -+/* Run me at boot time */ -+core_initcall(dmtimer0_init); -diff --git a/arch/arm/mach-omap/include/mach/am33xx-clock.h b/arch/arm/mach-omap/include/mach/am33xx-clock.h -new file mode 100644 -index 0000000..6845412 ---- /dev/null -+++ b/arch/arm/mach-omap/include/mach/am33xx-clock.h -@@ -0,0 +1,23 @@ -+/* -+ * (C) Copyright 2012 Teresa Gámez, Phytec Messtechnik GmbH -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+#ifndef _AM33XX_CLOCKS_H_ -+#define _AM33XX_CLOCKS_H_ -+ -+ -+#endif /* endif _AM33XX_CLOCKS_H_ */ -diff --git a/arch/arm/mach-omap/include/mach/am33xx-silicon.h b/arch/arm/mach-omap/include/mach/am33xx-silicon.h -new file mode 100644 -index 0000000..090489c ---- /dev/null -+++ b/arch/arm/mach-omap/include/mach/am33xx-silicon.h -@@ -0,0 +1,49 @@ -+/* -+ * This file contains the address info for various AM33XX modules. -+ * -+ * Copyright (C) 2012 Teresa Gámez <t.gamez@phytec.de>, -+ * Phytec Messtechnik GmbH -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation version 2. -+ * -+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any -+ * kind, whether express or implied; without even the implied warranty -+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ */ -+ -+#ifndef __ASM_ARCH_AM33XX_H -+#define __ASM_ARCH_AM33XX_H -+ -+/** AM335x Internal Bus Base addresses */ -+#define AM33XX_L4_WKUP_BASE 0x44C00000 -+#define AM33XX_L4_PER_BASE 0x48000000 -+#define AM33XX_L4_FAST_BASE 0x4A000000 -+ -+/* UART */ -+#define AM33XX_UART0_BASE (AM33XX_L4_WKUP_BASE + 0x209000) -+#define AM33XX_UART1_BASE (AM33XX_L4_PER_BASE + 0x22000) -+#define AM33XX_UART2_BASE (AM33XX_L4_PER_BASE + 0x24000) -+ -+/* EMFI Registers */ -+#define AM33XX_EMFI0_BASE 0x4C000000 -+ -+#define AM33XX_DRAM_ADDR_SPACE_START 0x80000000 -+#define AM33XX_DRAM_ADDR_SPACE_END 0xC0000000 -+ -+/* GPMC */ -+#define AM33XX_GPMC_BASE 0x50000000 -+ -+/* MMC */ -+#define AM33XX_MMCHS0_BASE (AM33XX_L4_PER_BASE + 0x60000) -+ -+/* DTMTimer0 */ -+#define AM33XX_DMTIMER0_BASE (AM33XX_L4_WKUP_BASE + 0x205000) -+ -+/* PRM */ -+#define AM33XX_PRM_BASE (AM33XX_L4_WKUP_BASE + 0x200000) -+ -+ -+#endif -diff --git a/drivers/mci/Kconfig b/drivers/mci/Kconfig -index 6876117..9558f28 100644 ---- a/drivers/mci/Kconfig -+++ b/drivers/mci/Kconfig -@@ -67,7 +67,7 @@ config MCI_IMX_ESDHC_PIO - - config MCI_OMAP_HSMMC - bool "OMAP HSMMC" -- depends on ARCH_OMAP4 || ARCH_OMAP3 -+ depends on ARCH_OMAP4 || ARCH_OMAP3 || ARCH_AM33XX - help - Enable this entry to add support to read and write SD cards on - both OMAP3 and OMAP4 based systems. |