[PATCH 2/3] ARM: include IXP4xx "fuses" support

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Jeff Garzik <jeff@...>
Cc: Russell King <rmk@...>, lkml <linux-kernel@...>, <netdev@...>, <linux-arm-kernel@...>
Date: Sunday, May 6, 2007 - 8:07 pm

Adds "fuse" functions to help determine installed IXP4xx CPU
components and to reset/disable/enable them (only NPE - network
coprocessors - can be reset and reenabled).

Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl>

diff --git a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
index 5d949d7..780c851 100644
--- a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
+++ b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
@@ -607,4 +607,51 @@
 
 #define DCMD_LENGTH	0x01fff		/* length mask (max = 8K - 1) */
 
+/* Fuse Bits of IXP_EXP_CFG2 */
+#define IXP4XX_FUSE_RCOMP		(1 << 0)
+#define IXP4XX_FUSE_USB_DEVICE		(1 << 1)
+#define IXP4XX_FUSE_HASH		(1 << 2)
+#define IXP4XX_FUSE_AES			(1 << 3)
+#define IXP4XX_FUSE_DES			(1 << 4)
+#define IXP4XX_FUSE_HDLC		(1 << 5)
+#define IXP4XX_FUSE_AAL			(1 << 6)
+#define IXP4XX_FUSE_HSS			(1 << 7)
+#define IXP4XX_FUSE_UTOPIA		(1 << 8)
+#define IXP4XX_FUSE_NPEB_ETH0		(1 << 9)
+#define IXP4XX_FUSE_NPEC_ETH		(1 << 10)
+#define IXP4XX_FUSE_RESET_NPEA		(1 << 11)
+#define IXP4XX_FUSE_RESET_NPEB		(1 << 12)
+#define IXP4XX_FUSE_RESET_NPEC		(1 << 13)
+#define IXP4XX_FUSE_PCI			(1 << 14)
+#define IXP4XX_FUSE_ECC_TIMESYNC	(1 << 15)
+#define IXP4XX_FUSE_UTOPIA_PHY_LIMIT	(3 << 16)
+#define IXP4XX_FUSE_USB_HOST		(1 << 18)
+#define IXP4XX_FUSE_NPEA_ETH		(1 << 19)
+#define IXP4XX_FUSE_NPEB_ETH_1_TO_3	(1 << 20)
+#define IXP4XX_FUSE_RSA			(1 << 21)
+#define IXP4XX_FUSE_XSCALE_MAX_FREQ	(3 << 22)
+#define IXP4XX_FUSE_RESERVED		(0xFF << 24)
+
+#define IXP4XX_FUSE_IXP46X_ONLY (IXP4XX_FUSE_ECC_TIMESYNC |		\
+				 IXP4XX_FUSE_USB_HOST |			\
+				 IXP4XX_FUSE_NPEA_ETH |			\
+				 IXP4XX_FUSE_NPEB_ETH_1_TO_3 |		\
+				 IXP4XX_FUSE_RSA |			\
+				 IXP4XX_FUSE_XSCALE_MAX_FREQ)
+
+static inline u32 ixp4xx_read_fuses(void)
+{
+	unsigned int fuses = ~*IXP4XX_EXP_CFG2;
+	fuses &= ~IXP4XX_FUSE_RESERVED;
+	if (!cpu_is_ixp46x())
+		fuses &= ~IXP4XX_FUSE_IXP46X_ONLY;
+
+	return fuses;
+}
+
+static inline void ixp4xx_write_fuses(u32 value)
+{
+	*IXP4XX_EXP_CFG2 = ~value;
+}
+
 #endif
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0/3] Intel IXP4xx network drivers, Krzysztof Halasa, (Sun May 6, 7:46 pm)
Re: [PATCH 0/3] Intel IXP4xx network drivers, Krzysztof Halasa, (Mon May 7, 9:40 pm)
Re: [PATCH 0/3] Intel IXP4xx network drivers, Leon Woestenberg, (Mon May 7, 4:39 pm)
Re: [PATCH 0/3] Intel IXP4xx network drivers, Krzysztof Halasa, (Mon May 7, 5:21 pm)
[PATCH 2a/3] Intel IXP4xx network drivers, Krzysztof Halasa, (Mon May 7, 6:27 am)
[PATCH 3/3] Intel IXP4xx network drivers, Krzysztof Halasa, (Sun May 6, 8:07 pm)
Re: [PATCH 3/3] Intel IXP4xx network drivers, Lennert Buytenhek, (Tue May 8, 7:40 am)
Re: [PATCH 3/3] Intel IXP4xx network drivers, Michael-Luke Jones, (Mon May 7, 8:59 am)
Re: [PATCH 3/3] Intel IXP4xx network drivers, Krzysztof Halasa, (Mon May 7, 1:12 pm)
Re: [PATCH 3/3] Intel IXP4xx network drivers, Michael-Luke Jones, (Mon May 7, 2:14 pm)
Re: [PATCH 3/3] Intel IXP4xx network drivers, Krzysztof Halasa, (Mon May 7, 3:57 pm)
[PATCH] Intel IXP4xx network drivers v.2 - Ethernet and HSS, Krzysztof Halasa, (Mon May 7, 9:19 pm)
Re: [PATCH] Intel IXP4xx network drivers v.2 - Ethernet and ..., Lennert Buytenhek, (Tue May 8, 10:53 am)
Re: [PATCH] Intel IXP4xx network drivers v.2 - Ethernet and ..., Michael-Luke Jones, (Tue May 8, 3:22 am)
[PATCH] Intel IXP4xx network drivers v.3 - QMGR, Krzysztof Halasa, (Mon May 7, 8:46 pm)
Re: [PATCH] Intel IXP4xx network drivers v.3 - QMGR, Lennert Buytenhek, (Tue May 8, 7:32 am)
Re: [PATCH] Intel IXP4xx network drivers v.3 - QMGR, Krzysztof Halasa, (Tue May 8, 10:12 am)
Re: [PATCH] Intel IXP4xx network drivers v.3 - QMGR, Lennert Buytenhek, (Tue May 8, 10:40 am)
Re: [PATCH] Intel IXP4xx network drivers v.3 - QMGR, Krzysztof Halasa, (Tue May 8, 12:59 pm)
Re: [PATCH] Intel IXP4xx network drivers v.3 - QMGR, Lennert Buytenhek, (Wed May 9, 6:21 am)
Re: [PATCH] Intel IXP4xx network drivers v.3 - QMGR, Krzysztof Halasa, (Thu May 10, 10:08 am)
Re: [PATCH] Intel IXP4xx network drivers v.3 - QMGR, Alexey Zaytsev, (Tue May 8, 8:47 am)
Re: [PATCH] Intel IXP4xx network drivers v.3 - QMGR, Lennert Buytenhek, (Tue May 8, 8:59 am)
Re: [PATCH] Intel IXP4xx network drivers v.3 - QMGR, Michael-Luke Jones, (Tue May 8, 3:05 am)
Re: [PATCH] Intel IXP4xx network drivers v.3 - QMGR, Krzysztof Halasa, (Tue May 8, 9:57 am)
[PATCH] Intel IXP4xx network drivers v.2 - NPE, Krzysztof Halasa, (Mon May 7, 8:36 pm)
Re: [PATCH] Intel IXP4xx network drivers v.2 - NPE, Michael-Luke Jones, (Tue May 8, 3:02 am)
Re: [PATCH] Intel IXP4xx network drivers v.2 - NPE, Krzysztof Halasa, (Tue May 8, 9:56 am)
[PATCH] Intel IXP4xx network drivers v.2, Krzysztof Halasa, (Mon May 7, 8:11 pm)
Re: [PATCH 3/3] Intel IXP4xx network drivers, Christian Hohnstaedt, (Mon May 7, 1:52 pm)
Re: [PATCH 3/3] Intel IXP4xx network drivers, Krzysztof Halasa, (Mon May 7, 4:00 pm)
Re: [PATCH 3/3] Intel IXP4xx network drivers, Lennert Buytenhek, (Tue May 8, 7:48 am)
Re: [PATCH 3/3] Intel IXP4xx network drivers, Krzysztof Halasa, (Tue May 8, 9:47 am)
[PATCH 2/3] ARM: include IXP4xx "fuses" support, Krzysztof Halasa, (Sun May 6, 8:07 pm)
Re: [PATCH 2/3] ARM: include IXP4xx "fuses" support, Alexey Zaytsev, (Mon May 7, 1:24 am)
Re: [PATCH 2/3] ARM: include IXP4xx "fuses" support, Krzysztof Halasa, (Mon May 7, 6:24 am)
[PATCH] Use menuconfig objects II - netdev/wan, Krzysztof Halasa, (Mon May 7, 5:02 pm)