linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: shc_work@mail.ru (Alexander Shiyan)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 02/17] ARM clps711x: Added Cirrus Logic EP7312 CPU variant
Date: Sat, 21 Apr 2012 13:11:15 +0400	[thread overview]
Message-ID: <1334999490-27177-3-git-send-email-shc_work@mail.ru> (raw)
In-Reply-To: <1334999490-27177-1-git-send-email-shc_work@mail.ru>

Added register definitions specific to EP7312 and the necessary
configuration options.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
 arch/arm/include/asm/hardware/ep7312.h         |  106 ++++++++++++++++++++++++
 arch/arm/mach-clps711x/Kconfig                 |    9 ++-
 arch/arm/mach-clps711x/include/mach/hardware.h |    4 +
 drivers/net/irda/Kconfig                       |    3 +-
 4 files changed, 119 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/include/asm/hardware/ep7312.h

diff --git a/arch/arm/include/asm/hardware/ep7312.h b/arch/arm/include/asm/hardware/ep7312.h
new file mode 100644
index 0000000..c01cced
--- /dev/null
+++ b/arch/arm/include/asm/hardware/ep7312.h
@@ -0,0 +1,106 @@
+/*
+ *  linux/arch/arm/include/asm/hardware/ep7312.h
+ *
+ *  This file contains the hardware definitions of the EP7312 internal
+ *  registers.
+ *
+ *  Copyright (C) 2000 Deep Blue Solutions Ltd.
+ *
+ * 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 __ASM_HARDWARE_EP7312_H
+#define __ASM_HARDWARE_EP7312_H
+
+/* These registers are specific to the EP7312 only */
+#define DAIR			0x2000
+#define DAIDR0			0x2040
+#define DAIDR1			0x2080
+#define DAIDR2			0x20c0
+#define DAISR			0x2100
+#define SYSCON3			0x2200
+#define INTSR3			0x2240
+#define INTMR3			0x2280
+#define LEDFLSH			0x22c0
+#define SDCONF			0x2300
+#define SDRFPR			0x2340
+#define UNIQID			0x2440
+#define DAI64FS			0x2600
+#define PLLW			0x2610
+#define PLLR			0xA5A8
+#define RANDID0			0x2700
+#define RANDID1			0x2704
+#define RANDID2			0x2708
+#define RANDID3			0x270c
+
+#define DAI64FS_I2SF64		(1 << 0)
+#define DAI64FS_AUDIOCLKEN	(1 << 1)
+#define DAI64FS_AUDIOCLKSRC	(1 << 2)
+#define DAI64FS_MCLK256EN	(1 << 3)
+#define DAI64FS_LOOPBACK	(1 << 5)
+
+#define DAIR_RESERVED		(0x0404)
+#define DAIR_DAIEN		(1 << 16)
+#define DAIR_ECS		(1 << 17)
+#define DAIR_LCTM		(1 << 19)
+#define DAIR_LCRM		(1 << 20)
+#define DAIR_RCTM		(1 << 21)
+#define DAIR_RCRM		(1 << 22)
+#define DAIR_LBM		(1 << 23)
+
+#define DAIDR2_FIFOEN		(1 << 15)
+#define DAIDR2_FIFOLEFT		(0x0d << 16)
+#define DAIDR2_FIFORIGHT	(0x11 << 16)
+
+#define DAISR_RCTS		(1 << 0)
+#define DAISR_RCRS		(1 << 1)
+#define DAISR_LCTS		(1 << 2)
+#define DAISR_LCRS		(1 << 3)
+#define DAISR_RCTU		(1 << 4)
+#define DAISR_RCRO		(1 << 5)
+#define DAISR_LCTU		(1 << 6)
+#define DAISR_LCRO		(1 << 7)
+#define DAISR_RCNF		(1 << 8)
+#define DAISR_RCNE		(1 << 9)
+#define DAISR_LCNF		(1 << 10)
+#define DAISR_LCNE		(1 << 11)
+#define DAISR_FIFO		(1 << 12)
+
+#define SYSCON3_ADCCON		(1 << 0)
+#define SYSCON3_CLKCTL0		(1 << 1)
+#define SYSCON3_CLKCTL1		(1 << 2)
+#define SYSCON3_DAISEL		(1 << 3)
+#define SYSCON3_ADCCKNSEN	(1 << 4)
+#define SYSCON3_VERSN(x)	(((x) >> 5) & 0x7)
+#define SYSCON3_RESERVED0	(1 << 8)
+#define SYSCON3_128FS		(1 << 9)
+#define SYSCON3_ENPD67		(1 << 10)
+
+#define SDCONF_ACTIVE		(1 << 10)
+#define SDCONF_CLKCTL		(1 << 9)
+#define SDCONF_WIDTH_4		(0 << 7)
+#define SDCONF_WIDTH_8		(1 << 7)
+#define SDCONF_WIDTH_16		(2 << 7)
+#define SDCONF_WIDTH_32		(3 << 7)
+#define SDCONF_SIZE_16		(0 << 5)
+#define SDCONF_SIZE_64		(1 << 5)
+#define SDCONF_SIZE_128		(2 << 5)
+#define SDCONF_SIZE_256		(3 << 5)
+#define SDCONF_CASLAT_2		(2)
+#define SDCONF_CASLAT_3		(3)
+
+#define SYNCIO_FRMLEN(x)	(((x) & 0x3f) << 7)
+#define SYNCIO_CFGLEN(x)	((x) & 0x7f)
+
+#endif /* __ASM_HARDWARE_EP7312_H */
diff --git a/arch/arm/mach-clps711x/Kconfig b/arch/arm/mach-clps711x/Kconfig
index ec47ef4..f86aec1 100644
--- a/arch/arm/mach-clps711x/Kconfig
+++ b/arch/arm/mach-clps711x/Kconfig
@@ -1,6 +1,6 @@
 if ARCH_CLPS711X
 
-menu "CLPS711X/EP721X Implementations"
+menu "CLPS711X/EP721X/EP731X Implementations"
 
 config ARCH_AUTCPU12
 	bool "AUTCPU12"
@@ -57,9 +57,14 @@ config SOC_EP7212
 	depends on ARCH_P720T || ARCH_CEIVA
 	default y
 
+config SOC_EP7312
+	bool
+	depends on ARCH_FORTUNET
+	default y
+
 config EP72XX_ROM_BOOT
 	bool "EP72xx ROM boot"
-	depends on SOC_EP7211 || SOC_EP7212
+	depends on SOC_EP7211 || SOC_EP7212 || SOC_EP7312
 	---help---
 	  If you say Y here, your CLPS711x-based kernel will use the bootstrap
 	  mode memory map instead of the normal memory map.
diff --git a/arch/arm/mach-clps711x/include/mach/hardware.h b/arch/arm/mach-clps711x/include/mach/hardware.h
index 99461f3..2ff3473 100644
--- a/arch/arm/mach-clps711x/include/mach/hardware.h
+++ b/arch/arm/mach-clps711x/include/mach/hardware.h
@@ -64,6 +64,10 @@
 #define EP7212_BASE		CLPS7111_VIRT_BASE
 #include <asm/hardware/ep7212.h>
 
+#elif defined (CONFIG_SOC_EP7213)
+
+#include <asm/hardware/ep7312.h>
+
 #endif
 
 #define SYSPLD_VIRT_BASE	0xfe000000
diff --git a/drivers/net/irda/Kconfig b/drivers/net/irda/Kconfig
index 54d7723..a3929a1 100644
--- a/drivers/net/irda/Kconfig
+++ b/drivers/net/irda/Kconfig
@@ -212,7 +212,8 @@ config KINGSUN_DONGLE
 
 config EP7211_DONGLE
 	tristate "EP7211 I/R support"
-	depends on IRTTY_SIR && (SOC_EP7211 || SOC_EP7212) && IRDA && EXPERIMENTAL
+	depends on IRTTY_SIR && IRDA && EXPERIMENTAL && \
+		(SOC_EP7211 || SOC_EP7212 || SOC_7312)
 	help
 	  Say Y here if you want to build support for the Cirrus logic
 	  EP7211 chipset's infrared module.
-- 
1.7.3.4

  parent reply	other threads:[~2012-04-21  9:11 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-21  9:11 clps711x patchset Alexander Shiyan
2012-04-21  9:11 ` [PATCH 01/17] ARM clps711x: Cleanup: Rename ARCH_EP7211 and ARCH_EP7212 to SOC_xxx Alexander Shiyan
2012-04-21  9:11 ` Alexander Shiyan [this message]
2012-04-21 11:21   ` [PATCH 02/17] ARM clps711x: Added Cirrus Logic EP7312 CPU variant Arnd Bergmann
2012-04-21 11:30     ` Re[2]: " Alexander Shiyan
2012-04-21 11:48     ` Russell King - ARM Linux
2012-04-21 12:11       ` Arnd Bergmann
2012-04-21 12:20         ` Russell King - ARM Linux
2012-04-22 13:58           ` Arnd Bergmann
2012-04-22 14:13             ` Russell King - ARM Linux
2012-04-22 14:24             ` Re[2]: " Alexander Shiyan
2012-04-21  9:11 ` [PATCH 03/17] ARM clps711x: Selecting CPU-variant automatically for clps711x targets Alexander Shiyan
2012-04-21  9:11 ` [PATCH 04/17] ARM clps711x: Using a single definition for virtual address register Alexander Shiyan
2012-04-21  9:11 ` [PATCH 05/17] ARM clps711x: Added missing definitions for PORT C Alexander Shiyan
2012-04-21  9:11 ` [PATCH 06/17] ARM clps711x: Remove now unused cs89712 board header Alexander Shiyan
2012-04-21  9:11 ` [PATCH 07/17] ARM clps711x: Remove unused includes Alexander Shiyan
2012-04-21  9:11 ` [PATCH 08/17] ARM clps711x: Cleanup: remove unused definitions for ep_readl/ep_writel Alexander Shiyan
2012-04-21  9:11 ` [PATCH 09/17] ARM clps711x: Using a single definition for physical address register Alexander Shiyan
2012-04-21  9:11 ` [PATCH 10/17] ARM clps711x: Address register renaming to reflect the fact that the name is the same for all arch Alexander Shiyan
2012-04-21  9:11 ` [PATCH 11/17] ARM clps711x: Move definitions of register address in one unit Alexander Shiyan
2012-04-21  9:11 ` [PATCH 12/17] ARM clps711x: Simple optimise debug_macro by removing one NOP Alexander Shiyan
2012-04-21 10:46   ` Russell King - ARM Linux
2012-04-21 10:50     ` Re[2]: " Alexander Shiyan
2012-04-21 11:18   ` Arnd Bergmann
2012-04-21 11:49     ` Arnd Bergmann
2012-04-21  9:11 ` [PATCH 13/17] ARM clps711x: Removed unused header mach/time.h Alexander Shiyan
2012-04-21  9:11 ` [PATCH 14/17] ARM clps711x: Do not mask interrupts in ack procedure Alexander Shiyan
2012-04-21  9:11 ` [PATCH 15/17] ARM clps711x: Removed unused definitions from mach/irqs.h Alexander Shiyan
2012-04-21  9:11 ` [PATCH 16/17] ARM clps711x: Replaced frequency settings to definition Alexander Shiyan
2012-04-21  9:11 ` [PATCH 17/17] ARM clps711x: Make select CPU spees as KConfig option Alexander Shiyan
2012-04-21 11:40 ` clps711x patchset Arnd Bergmann
2012-04-21 12:04   ` Re[2]: " Alexander Shiyan
2012-04-21 12:14     ` Arnd Bergmann

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=1334999490-27177-3-git-send-email-shc_work@mail.ru \
    --to=shc_work@mail.ru \
    --cc=linux-arm-kernel@lists.infradead.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).