From: Vineet Gupta <Vineet.Gupta1@synopsys.com>
To: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: tglx@linutronix.de, arnd@arndb.de,
Vineet Gupta <Vineet.Gupta1@synopsys.com>
Subject: [RFC PATCH v1 25/31] ARC: [plat-arcfpga] Hooking up platform to ARC UART
Date: Wed, 7 Nov 2012 10:47:48 +0100 [thread overview]
Message-ID: <1352281674-2186-26-git-send-email-vgupta@synopsys.com> (raw)
In-Reply-To: <1352281674-2186-1-git-send-email-vgupta@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
---
arch/arc/include/asm/irq.h | 1 +
arch/arc/plat-arcfpga/include/plat/irq.h | 27 +++++++
arch/arc/plat-arcfpga/include/plat/memmap.h | 31 ++++++++
arch/arc/plat-arcfpga/platform.c | 105 +++++++++++++++++++++++++++
4 files changed, 164 insertions(+), 0 deletions(-)
create mode 100644 arch/arc/plat-arcfpga/include/plat/irq.h
create mode 100644 arch/arc/plat-arcfpga/include/plat/memmap.h
diff --git a/arch/arc/include/asm/irq.h b/arch/arc/include/asm/irq.h
index 633416c..8e771f6 100644
--- a/arch/arc/include/asm/irq.h
+++ b/arch/arc/include/asm/irq.h
@@ -13,6 +13,7 @@
#define TIMER0_IRQ 3
#define TIMER1_IRQ 4
+#include <plat/irq.h> /* Board Specific IRQ assignments */
#include <asm-generic/irq.h>
extern void __init arc_init_IRQ(void);
diff --git a/arch/arc/plat-arcfpga/include/plat/irq.h b/arch/arc/plat-arcfpga/include/plat/irq.h
new file mode 100644
index 0000000..b34e087
--- /dev/null
+++ b/arch/arc/plat-arcfpga/include/plat/irq.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * vineetg: Feb 2009
+ * -For AA4 board, IRQ assignments to peripherals
+ */
+
+#ifndef __PLAT_IRQ_H
+#define __PLAT_IRQ_H
+
+#define NR_IRQS 16
+
+#define UART0_IRQ 5
+#define UART1_IRQ 10
+#define UART2_IRQ 11
+
+#define VMAC_IRQ 6
+
+#define IDE_IRQ 13
+#define PCI_IRQ 14
+#define PS2_IRQ 15
+
+#endif
diff --git a/arch/arc/plat-arcfpga/include/plat/memmap.h b/arch/arc/plat-arcfpga/include/plat/memmap.h
new file mode 100644
index 0000000..1663f33
--- /dev/null
+++ b/arch/arc/plat-arcfpga/include/plat/memmap.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * vineetg: Feb 2009
+ * -For AA4 board, System Memory Map for Peripherals etc
+ */
+
+#ifndef __PLAT_MEMMAP_H
+#define __PLAT_MEMMAP_H
+
+#define UART0_BASE 0xC0FC1000
+#define UART1_BASE 0xC0FC1100
+
+#define VMAC_REG_BASEADDR 0xC0FC2000
+
+#define IDE_CONTROLLER_BASE 0xC0FC9000
+
+#define AHB_PCI_HOST_BRG_BASE 0xC0FD0000
+
+#define PGU_BASEADDR 0xC0FC8000
+#define VLCK_ADDR 0xC0FCF028
+
+#define BVCI_LAT_UNIT_BASE 0xC0FED000
+
+#define PS2_BASE_ADDR 0xC0FCC000
+
+#endif
diff --git a/arch/arc/plat-arcfpga/platform.c b/arch/arc/plat-arcfpga/platform.c
index 7b5dcab..3243091 100644
--- a/arch/arc/plat-arcfpga/platform.c
+++ b/arch/arc/plat-arcfpga/platform.c
@@ -10,7 +10,99 @@
#include <linux/types.h>
#include <linux/init.h>
+#include <linux/device.h>
#include <linux/platform_device.h>
+#include <linux/console.h>
+#include <asm/setup.h>
+#include <asm/irq.h>
+#include <plat/memmap.h>
+
+/*----------------------- Platform Devices -----------------------------*/
+
+#if defined(CONFIG_SERIAL_ARC) || defined(CONFIG_SERIAL_ARC_MODULE)
+
+static unsigned long arc_uart_info[] = {
+ CONFIG_ARC_SERIAL_BAUD, /* uart->baud */
+ CONFIG_ARC_PLAT_CLK, /* uart->port.uartclk */
+ -1, /* uart->is_emulated (runtime @running_on_hw) */
+ 0
+};
+
+#define ARC_UART_DEV(n) \
+ \
+static struct resource arc_uart##n##_res[] = { \
+ { \
+ .start = UART##n##_BASE, \
+ .end = UART##n##_BASE + 0xFF, \
+ .flags = IORESOURCE_MEM, \
+ }, \
+ { \
+ .start = UART##n##_IRQ, \
+ .end = UART##n##_IRQ, \
+ .flags = IORESOURCE_IRQ, \
+ }, \
+}; \
+ \
+static struct platform_device arc_uart##n##_dev = { \
+ .name = "arc-uart", \
+ .id = n, \
+ .num_resources = ARRAY_SIZE(arc_uart##n##_res), \
+ .resource = arc_uart##n##_res, \
+ .dev = { \
+ .platform_data = &arc_uart_info, \
+ }, \
+}
+
+ARC_UART_DEV(0);
+#if CONFIG_SERIAL_ARC_NR_PORTS > 1
+ARC_UART_DEV(1);
+#endif
+
+static struct platform_device *fpga_early_devs[] __initdata = {
+#if defined(CONFIG_SERIAL_ARC_CONSOLE)
+ &arc_uart0_dev,
+#endif
+};
+
+static void arc_fpga_serial_init(void)
+{
+ /* To let driver workaround ISS bug: baudh Reg can't be set to 0 */
+ arc_uart_info[2] = !running_on_hw;
+
+ early_platform_add_devices(fpga_early_devs,
+ ARRAY_SIZE(fpga_early_devs));
+
+ /*
+ * ARC console driver registers itself as an early platform driver
+ * of class "earlyprintk".
+ * Install it here, followed by probe of devices.
+ * The installation here doesn't require earlyprintk in command line
+ * To do so however, replace the lines below with
+ * parse_early_param();
+ * early_platform_driver_probe("earlyprintk", 1, 1);
+ * ^^
+ */
+ early_platform_driver_register_all("earlyprintk");
+ early_platform_driver_probe("earlyprintk", 1, 0);
+
+ /*
+ * This is to make sure that arc uart would be preferred console
+ * despite one/more of following:
+ * -command line lacked "console=ttyARC0" or
+ * -CONFIG_VT_CONSOLE was enabled (for no reason whatsoever)
+ * Note that this needs to be done after above early console is reg,
+ * otherwise the early console never gets a chance to run.
+ */
+ add_preferred_console("ttyARC", 0, "115200");
+}
+
+#else
+
+static void arc_fpga_serial_init(void)
+{
+}
+
+#endif /* CONFIG_SERIAL_ARC */
/*
* Early Platform Initialization called from setup_arch()
@@ -18,12 +110,25 @@
void __init arc_platform_early_init(void)
{
pr_info("[plat-arcfpga]: registering early dev resources\n");
+
+ arc_fpga_serial_init();
}
+static struct platform_device *fpga_devs[] __initdata = {
+#if defined(CONFIG_SERIAL_ARC) || defined(CONFIG_SERIAL_ARC_MODULE)
+ &arc_uart0_dev,
+#if CONFIG_SERIAL_ARC_NR_PORTS > 1
+ &arc_uart1_dev,
+#endif
+#endif
+};
+
int __init fpga_plat_init(void)
{
pr_info("[plat-arcfpga]: registering device resources\n");
+ platform_add_devices(fpga_devs, ARRAY_SIZE(fpga_devs));
+
return 0;
}
arch_initcall(fpga_plat_init);
--
1.7.4.1
next prev parent reply other threads:[~2012-11-07 9:47 UTC|newest]
Thread overview: 141+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-07 9:47 [RFC Patch v1 00/31] Synopsys ARC Linux kernel Port Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 01/31] ARC: Generic Headers Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 02/31] ARC: irqflags Vineet Gupta
2012-11-12 19:50 ` Thomas Gleixner
2013-01-01 7:44 ` Vineet Gupta
2013-01-01 7:44 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 03/31] ARC: atomic/bitops/cmpxchg/barriers Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 04/31] asm-generic headers: uaccess.h to conditionally define segment_eq() Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 05/31] ARC: uaccess friends Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 06/31] asm-generic headers: Allow yet more arch overrides in checksum.h Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 07/31] ARC: checksum/byteorder/swab routines Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 08/31] ARC: Fundamental ARCH data-types/defines Vineet Gupta
2012-11-08 7:10 ` Jonas Bonn
2012-11-08 18:52 ` Vineet Gupta
2012-11-08 20:36 ` Jonas Bonn
2012-11-12 13:58 ` Vineet Gupta
2012-11-12 14:12 ` Arnd Bergmann
2012-11-07 9:47 ` [RFC PATCH v1 09/31] ARC: spinlock/rwlock/mutex primitives Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 10/31] ARC: string library Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 11/31] ARC: Low level IRQ/Trap/Exception(non-MMU) Handling Vineet Gupta
2012-11-16 4:58 ` Al Viro
2012-12-27 9:00 ` Vineet Gupta
2012-12-27 9:00 ` Vineet Gupta
2012-12-27 13:29 ` Vineet Gupta
2012-12-27 13:29 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 12/31] ARC: Interrupt Handling Vineet Gupta
2012-11-12 20:08 ` Thomas Gleixner
2013-01-01 10:46 ` Vineet Gupta
2013-01-01 10:46 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 13/31] ARC: Non-MMU Exception Handling Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 14/31] ARC: syscall support Vineet Gupta
2012-11-07 14:21 ` Arnd Bergmann
2012-11-09 9:50 ` James Hogan
2012-11-09 9:50 ` James Hogan
2012-11-13 11:41 ` James Hogan
2012-11-13 11:41 ` James Hogan
2012-11-13 12:01 ` Jonas Bonn
2012-11-13 12:11 ` James Hogan
2012-11-13 12:11 ` James Hogan
2012-11-14 12:23 ` Arnd Bergmann
2012-11-14 12:31 ` James Hogan
2012-11-14 12:31 ` James Hogan
2012-11-13 10:13 ` Gilad Ben-Yossef
2012-11-13 10:37 ` Arnd Bergmann
2012-11-15 6:15 ` Vineet Gupta
2012-11-15 6:15 ` Vineet Gupta
2012-11-15 12:35 ` Arnd Bergmann
2013-01-17 5:13 ` Vineet Gupta
2013-01-17 5:13 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 15/31] ARC: Process/scheduling/clock/Timers/Delay Management Vineet Gupta
2012-11-12 20:29 ` Thomas Gleixner
2013-01-02 7:13 ` Vineet Gupta
2013-01-02 7:13 ` Vineet Gupta
2013-01-02 8:45 ` Vineet Gupta
2013-01-02 8:45 ` Vineet Gupta
2013-01-04 13:01 ` Frederic Weisbecker
2012-11-07 9:47 ` [RFC PATCH v1 16/31] ARC: Signal handling Vineet Gupta
2012-11-16 5:26 ` Al Viro
2012-12-28 12:34 ` Vineet Gupta
2012-12-28 12:34 ` Vineet Gupta
2012-12-28 12:42 ` [PATCH 1/2] ARC: [Review] Preparing to fix incorrect syscall restarts due to signals Vineet Gupta
2012-12-28 12:42 ` Vineet Gupta
2012-12-28 12:42 ` [PATCH 2/2] ARC: [Review] Prevent incorrect syscall restarts Vineet Gupta
2012-12-28 12:42 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 17/31] ARC: Cache Flush Management Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 18/31] ARC: Page Table Management Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 19/31] ARC: MMU Context Management Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 20/31] ARC: MMU Exception Handling Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 21/31] ARC: TLB flush Handling Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 22/31] ARC: Page Fault handling (incl uaccess fixup) Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 23/31] ARC: I/O and DMA Mappings Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 24/31] ARC: startup #1: low-level, setup_arch(), /proc/cpuinfo, mem init Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta [this message]
2012-11-07 14:16 ` [RFC PATCH v1 25/31] ARC: [plat-arcfpga] Hooking up platform to ARC UART Arnd Bergmann
2013-01-07 13:10 ` Vineet Gupta
2013-01-07 13:10 ` Vineet Gupta
2013-01-07 13:46 ` Arnd Bergmann
2013-01-07 14:04 ` Vineet Gupta
2013-01-07 14:04 ` Vineet Gupta
2013-01-07 14:36 ` Arnd Bergmann
2013-01-14 7:35 ` early init dt for earlyprintk (was Re: [RFC PATCH v1 25/31] ARC: [plat-arcfpga] Hooking up platform to ARC UART) Vineet Gupta
2013-01-14 7:35 ` Vineet Gupta
2013-01-14 9:48 ` James Hogan
2013-01-14 9:48 ` James Hogan
2013-01-14 10:09 ` Vineet Gupta
2013-01-14 10:09 ` Vineet Gupta
2013-01-14 10:54 ` Arnd Bergmann
2013-01-17 7:29 ` [RFC PATCH v1 25/31] ARC: [plat-arcfpga] Hooking up platform to ARC UART Vineet Gupta
2013-01-17 7:29 ` Vineet Gupta
2013-01-17 10:52 ` Arnd Bergmann
2012-11-07 9:47 ` [RFC PATCH v1 26/31] ARC: Build system: Makefiles, Kconfig, Linker script Vineet Gupta
2012-11-07 14:13 ` Arnd Bergmann
2013-01-02 14:30 ` Vineet Gupta
2013-01-02 14:48 ` Arnd Bergmann
2013-01-03 7:58 ` Vineet Gupta
2013-01-03 7:58 ` Vineet Gupta
2013-01-03 8:25 ` Arnd Bergmann
2013-03-11 12:29 ` SYSV IPC broken for no-legacy syscall kernels (was Re: [RFC PATCH v1 26/31] ARC: Build system: Makefiles, Kconfig, Linker script) Vineet Gupta
2013-03-11 12:29 ` Vineet Gupta
2013-03-11 12:44 ` James Hogan
2013-03-11 12:44 ` James Hogan
2013-03-11 12:56 ` Vineet Gupta
2013-03-11 12:56 ` Vineet Gupta
2013-03-11 13:07 ` James Hogan
2013-03-11 13:07 ` James Hogan
2013-03-11 13:30 ` Arnd Bergmann
2013-03-11 13:48 ` Vineet Gupta
2013-03-11 13:48 ` Vineet Gupta
2013-03-11 14:50 ` Arnd Bergmann
2012-11-15 17:49 ` [RFC PATCH v1 26/31] ARC: Build system: Makefiles, Kconfig, Linker script James Hogan
2012-11-15 17:49 ` James Hogan
2012-11-15 19:30 ` Ralf Baechle
2012-11-16 6:36 ` Vineet Gupta
2012-11-16 6:36 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 27/31] ARC: Last bits (stubs) to get to a running kernel with UART Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 28/31] ARC: split ret_from_fork, simplify kernel_thread() Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 29/31] ARC: switch to generic kernel_thread() Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 30/31] ARC: switch to generic kernel_execve() and sys_execve() Vineet Gupta
2012-11-16 4:08 ` Al Viro
2012-11-17 14:01 ` Vineet Gupta
2012-11-17 14:01 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 31/31] ARC: [plat-arcfpga] defconfig Vineet Gupta
2012-11-07 14:06 ` Arnd Bergmann
2012-11-12 14:18 ` James Hogan
2012-11-12 14:18 ` James Hogan
2012-11-12 14:21 ` Arnd Bergmann
2012-11-07 14:36 ` [RFC Patch v1 00/31] Synopsys ARC Linux kernel Port Arnd Bergmann
2012-11-08 19:09 ` Vineet Gupta
2012-11-07 20:46 ` Gilad Ben-Yossef
2012-11-20 13:47 ` Pavel Machek
2012-11-20 13:49 ` Vineet Gupta
2012-11-20 13:49 ` Vineet Gupta
2012-11-20 13:59 ` Pavel Machek
2012-11-20 14:17 ` Vineet Gupta
2012-11-20 14:17 ` Vineet Gupta
2013-01-18 19:46 ` Pavel Machek
2013-01-18 22:17 ` Arnd Bergmann
2013-01-19 10:15 ` Pavel Machek
2013-01-19 12:32 ` Vineet Gupta
2013-01-19 12:32 ` Vineet Gupta
2013-01-19 17:02 ` Pavel Machek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1352281674-2186-26-git-send-email-vgupta@synopsys.com \
--to=vineet.gupta1@synopsys.com \
--cc=arnd@arndb.de \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.