linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mark Salter <msalter@redhat.com>
To: linux-arch@vger.kernel.org
Subject: [PATCH 22/24] C6X: specific board support
Date: Mon,  8 Aug 2011 17:44:37 -0400	[thread overview]
Message-ID: <1312839879-13592-23-git-send-email-msalter@redhat.com> (raw)
In-Reply-To: <1312839879-13592-1-git-send-email-msalter@redhat.com>

Signed-off-by: Mark Salter <msalter@redhat.com>
---
 arch/c6x/platforms/board-dsk6455.c |  102 ++++++++++++++++++++++++++++++++++++
 arch/c6x/platforms/board-evm6457.c |   51 ++++++++++++++++++
 arch/c6x/platforms/board-evm6472.c |   51 ++++++++++++++++++
 arch/c6x/platforms/board-evm6474.c |   53 +++++++++++++++++++
 4 files changed, 257 insertions(+), 0 deletions(-)
 create mode 100644 arch/c6x/platforms/board-dsk6455.c
 create mode 100644 arch/c6x/platforms/board-evm6457.c
 create mode 100644 arch/c6x/platforms/board-evm6472.c
 create mode 100644 arch/c6x/platforms/board-evm6474.c

diff --git a/arch/c6x/platforms/board-dsk6455.c b/arch/c6x/platforms/board-dsk6455.c
new file mode 100644
index 0000000..62c9935
--- /dev/null
+++ b/arch/c6x/platforms/board-dsk6455.c
@@ -0,0 +1,102 @@
+/*
+ *  linux/arch/c6x/platforms/board-dsk6455.c
+ *
+ *  Port on Texas Instruments TMS320C6x architecture
+ *
+ *  Copyright (C) 2008, 2009, 2010, 2011 Texas Instruments Incorporated
+ *  Author: Aurelien Jacquiot (aurelien.jacquiot@virtuallogix.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.
+ */
+#include <linux/of_platform.h>
+#include <linux/of_fdt.h>
+#include <linux/interrupt.h>
+#include <linux/delay.h>
+
+#include <asm/machdep.h>
+#include <asm/soc.h>
+#include "emif.h"
+#include "soc-6455.h"
+
+
+static void __init dsk6455_setup_arch(void)
+{
+	c6455_setup_arch();
+
+	/* CPLD */
+	emif_config_ce(2, EMIFA_CFG_ASYNC |
+		       EMIFA_CFG_W_SETUP(1)   |
+		       EMIFA_CFG_W_STROBE(10) |
+		       EMIFA_CFG_W_HOLD(1)    |
+		       EMIFA_CFG_R_SETUP(1)   |
+		       EMIFA_CFG_R_STROBE(10) |
+		       EMIFA_CFG_R_HOLD(1)    |
+		       EMIFA_CFG_WIDTH_8);
+
+	/* NOR Flash */
+	emif_config_ce(3, EMIFA_CFG_ASYNC |
+		       EMIFA_CFG_W_SETUP(1)   |
+		       EMIFA_CFG_W_STROBE(10) |
+		       EMIFA_CFG_W_HOLD(1)    |
+		       EMIFA_CFG_R_SETUP(1)   |
+		       EMIFA_CFG_R_STROBE(10) |
+		       EMIFA_CFG_R_HOLD(1)    |
+		       EMIFA_CFG_WIDTH_8);
+
+	/* Daughter Card */
+	emif_config_ce(4, EMIFA_CFG_ASYNC |
+		       EMIFA_CFG_W_SETUP(1)   |
+		       EMIFA_CFG_W_STROBE(10) |
+		       EMIFA_CFG_W_HOLD(1)    |
+		       EMIFA_CFG_R_SETUP(1)   |
+		       EMIFA_CFG_R_STROBE(10) |
+		       EMIFA_CFG_R_HOLD(1)    |
+		       EMIFA_CFG_WIDTH_32);
+
+	/* Daughter Card */
+	emif_config_ce(5, EMIFA_CFG_ASYNC |
+		       EMIFA_CFG_W_SETUP(1)   |
+		       EMIFA_CFG_W_STROBE(10) |
+		       EMIFA_CFG_W_HOLD(1)    |
+		       EMIFA_CFG_R_SETUP(1)   |
+		       EMIFA_CFG_R_STROBE(10) |
+		       EMIFA_CFG_R_HOLD(1)    |
+		       EMIFA_CFG_WIDTH_32);
+
+	/* Raise priority of waiting bus commands after 255 transfers */
+	emif_set_burst_prio(255);
+}
+
+static struct of_device_id dsk6455_ids[] = {
+	{ .type = "soc", },
+	{ .compatible = "soc", },
+	{ .compatible = "simple-bus", },
+	{ .compatible = "ti,c64x+emac", },
+	{},
+};
+
+static int __init dsk6455_publish_devices(void)
+{
+	of_platform_bus_probe(NULL, dsk6455_ids, NULL);
+
+	return 0;
+}
+machine_device_initcall(dsk6455, dsk6455_publish_devices);
+
+static int __init dsk6455_probe(void)
+{
+	unsigned long root = of_get_flat_dt_root();
+
+	if (!of_flat_dt_is_compatible(root, "spectrum-digital,dsk6455"))
+		return 0;
+
+	return 1;
+}
+
+define_machine(dsk6455) {
+	.name			= "DSK6455",
+	.probe			= dsk6455_probe,
+	.setup_arch		= dsk6455_setup_arch,
+};
diff --git a/arch/c6x/platforms/board-evm6457.c b/arch/c6x/platforms/board-evm6457.c
new file mode 100644
index 0000000..a3de421
--- /dev/null
+++ b/arch/c6x/platforms/board-evm6457.c
@@ -0,0 +1,51 @@
+/*
+ *  linux/arch/c6x/platforms/board-evm6457.c
+ *
+ *  Port on Texas Instruments TMS320C6x architecture
+ *
+ *  Copyright (C) 2008, 2009, 2010, 2011 Texas Instruments Incorporated
+ *  Author: Aurelien Jacquiot (aurelien.jacquiot@virtuallogix.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.
+ */
+#include <linux/of_platform.h>
+#include <linux/of_fdt.h>
+
+#include <asm/machdep.h>
+#include <asm/soc.h>
+
+#include "soc-6457.h"
+
+static struct of_device_id evm6457_ids[] = {
+	{ .type = "soc", },
+	{ .compatible = "soc", },
+	{ .compatible = "simple-bus", },
+	{ .compatible = "ti,c64x+emac", },
+	{},
+};
+
+static int __init evm6457_publish_devices(void)
+{
+	of_platform_bus_probe(NULL, evm6457_ids, NULL);
+
+	return 0;
+}
+machine_device_initcall(evmc6457, evm6457_publish_devices);
+
+static int __init evmc6457_probe(void)
+{
+	unsigned long root = of_get_flat_dt_root();
+
+	if (!of_flat_dt_is_compatible(root, "einfochips,evmc6457"))
+		return 0;
+
+	return 1;
+}
+
+define_machine(evmc6457) {
+	.name			= "EVMC6457",
+	.probe			= evmc6457_probe,
+	.setup_arch		= c6457_setup_arch,
+};
diff --git a/arch/c6x/platforms/board-evm6472.c b/arch/c6x/platforms/board-evm6472.c
new file mode 100644
index 0000000..64fbd4e
--- /dev/null
+++ b/arch/c6x/platforms/board-evm6472.c
@@ -0,0 +1,51 @@
+/*
+ *  linux/arch/c6x/platforms/board-evm6472.c
+ *
+ *  Port on Texas Instruments TMS320C6x architecture
+ *
+ *  Copyright (C) 2008, 2009, 2010, 2011 Texas Instruments Incorporated
+ *  Author: Aurelien Jacquiot (aurelien.jacquiot@virtuallogix.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.
+ */
+#include <linux/of_platform.h>
+#include <linux/of_fdt.h>
+
+#include <asm/machdep.h>
+#include <asm/soc.h>
+
+#include "soc-6472.h"
+
+static struct of_device_id evm6472_ids[] = {
+	{ .type = "soc", },
+	{ .compatible = "soc", },
+	{ .compatible = "simple-bus", },
+	{ .compatible = "ti,c64x+emac", },
+	{},
+};
+
+static int __init evm6472_publish_devices(void)
+{
+	of_platform_bus_probe(NULL, evm6472_ids, NULL);
+
+	return 0;
+}
+machine_device_initcall(evmc6472, evm6472_publish_devices);
+
+static int __init evmc6472_probe(void)
+{
+	unsigned long root = of_get_flat_dt_root();
+
+	if (!of_flat_dt_is_compatible(root, "einfochips,evmc6472"))
+		return 0;
+
+	return 1;
+}
+
+define_machine(evmc6472) {
+	.name			= "EVMC6472",
+	.probe			= evmc6472_probe,
+	.setup_arch		= c6472_setup_arch,
+};
diff --git a/arch/c6x/platforms/board-evm6474.c b/arch/c6x/platforms/board-evm6474.c
new file mode 100644
index 0000000..39d8b0f
--- /dev/null
+++ b/arch/c6x/platforms/board-evm6474.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2010, 2011 Texas Instruments Incorporated
+ *
+ * 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.
+ */
+#include <linux/of_platform.h>
+#include <linux/of_fdt.h>
+#include <linux/interrupt.h>
+
+#include <asm/machdep.h>
+#include <asm/soc.h>
+
+#include "soc-6474.h"
+
+
+static struct of_device_id evm6474_ids[] = {
+	{ .type = "soc", },
+	{ .compatible = "soc", },
+	{ .compatible = "simple-bus", },
+	{ .compatible = "ti,c64x+emac", },
+	{},
+};
+
+static int __init evm6474_publish_devices(void)
+{
+	of_platform_bus_probe(NULL, evm6474_ids, NULL);
+
+	return 0;
+}
+machine_device_initcall(evmc6474, evm6474_publish_devices);
+
+static int __init evmc6474_probe(void)
+{
+	unsigned long root = of_get_flat_dt_root();
+
+	if (!of_flat_dt_is_compatible(root, "spectrum-digital,evmc6474"))
+		return 0;
+
+	return 1;
+}
+
+define_machine(evmc6474) {
+	.name			= "EVMC6474",
+	.probe			= evmc6474_probe,
+	.setup_arch		= c6474_setup_arch,
+};
-- 
1.7.6

  parent reply	other threads:[~2011-08-08 21:44 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-08 21:44 [PATCH 00/24] C6X: New architecture patch set Mark Salter
2011-08-08 21:44 ` [PATCH 01/24] fix default __strnlen_user macro Mark Salter
2011-08-08 21:44 ` [PATCH 02/24] fixed generic page.h for non-zero PAGE_OFFSET Mark Salter
2011-08-09 15:11   ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 03/24] add ELF machine define for TI C6X DSPs Mark Salter
2011-08-09 15:12   ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 04/24] C6X: build infrastructure Mark Salter
2011-08-09 15:21   ` Arnd Bergmann
2011-08-09 15:56     ` Mark Salter
2011-08-09 19:17   ` Sam Ravnborg
2011-08-08 21:44 ` [PATCH 05/24] C6X: early boot code Mark Salter
2011-08-09 16:12   ` Arnd Bergmann
2011-08-09 19:26   ` Sam Ravnborg
2011-08-08 21:44 ` [PATCH 06/24] C6X: devicetree Mark Salter
2011-08-09 16:14   ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 07/24] C6X: memory management Mark Salter
2011-08-09 16:27   ` Arnd Bergmann
2011-08-17 13:26     ` Mark Salter
2011-08-17 13:34       ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 08/24] C6X: process management Mark Salter
2011-08-09 16:31   ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 09/24] C6X: signal management Mark Salter
2011-08-08 21:44 ` [PATCH 10/24] C6X: time management Mark Salter
2011-08-09 16:35   ` Arnd Bergmann
2011-08-17 13:15     ` Mark Salter
2011-08-17 13:31       ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 11/24] C6X: interrupt handling Mark Salter
2011-08-09 16:39   ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 12/24] C6X: syscalls Mark Salter
2011-08-09 16:47   ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 13/24] C6X: traps Mark Salter
2011-08-08 21:44 ` [PATCH 14/24] C6X: clocks Mark Salter
2011-08-08 21:44 ` [PATCH 15/24] C6X: cache control Mark Salter
2011-08-09 16:53   ` Arnd Bergmann
2011-08-09 17:03   ` David Howells
2011-08-10  9:38     ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 16/24] C6X: module support Mark Salter
2011-08-09 16:56   ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 17/24] C6X: ptrace support Mark Salter
2011-08-09 16:58   ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 18/24] C6X: headers Mark Salter
2011-08-08 21:44 ` [PATCH 19/24] C6X: library code Mark Salter
2011-08-08 21:44 ` [PATCH 20/24] C6X: general machine and SoC support Mark Salter
2011-08-08 21:44 ` [PATCH 21/24] C6X: specific " Mark Salter
2011-08-08 21:44 ` Mark Salter [this message]
2011-08-09 17:04   ` [PATCH 22/24] C6X: specific board support Arnd Bergmann
2011-08-09 17:16     ` Mark Salter
2011-08-10 14:26       ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 23/24] C6X: miscellaneous low-level SoC support Mark Salter
2011-08-09 17:10   ` Arnd Bergmann
2011-08-08 21:44 ` [PATCH 24/24] C6X: MAINTAINERS Mark Salter

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=1312839879-13592-23-git-send-email-msalter@redhat.com \
    --to=msalter@redhat.com \
    --cc=linux-arch@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).