mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
fec: Add support for Freescale MX27
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Acked-by: Greg Ungerer <gerg@uclinux.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ccdc4f1981
commit
196719ecec
@ -1828,11 +1828,11 @@ config 68360_ENET
|
||||
the Motorola 68360 processor.
|
||||
|
||||
config FEC
|
||||
bool "FEC ethernet controller (of ColdFire CPUs)"
|
||||
depends on M523x || M527x || M5272 || M528x || M520x
|
||||
bool "FEC ethernet controller (of ColdFire and some i.MX CPUs)"
|
||||
depends on M523x || M527x || M5272 || M528x || M520x || MACH_MX27
|
||||
help
|
||||
Say Y here if you want to use the built-in 10/100 Fast ethernet
|
||||
controller on some Motorola ColdFire processors.
|
||||
controller on some Motorola ColdFire and Freescale i.MX processors.
|
||||
|
||||
config FEC2
|
||||
bool "Second FEC ethernet controller (on some ColdFire CPUs)"
|
||||
|
@ -38,10 +38,14 @@
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/clk.h>
|
||||
|
||||
#include <asm/cacheflush.h>
|
||||
|
||||
#ifndef CONFIG_ARCH_MXC
|
||||
#include <asm/coldfire.h>
|
||||
#include <asm/mcfsim.h>
|
||||
#endif
|
||||
|
||||
#include "fec.h"
|
||||
|
||||
@ -51,6 +55,13 @@
|
||||
#define FEC_MAX_PORTS 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_MXC
|
||||
#include <mach/hardware.h>
|
||||
#define FEC_ALIGNMENT 0xf
|
||||
#else
|
||||
#define FEC_ALIGNMENT 0x3
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_M5272)
|
||||
#define HAVE_mii_link_interrupt
|
||||
#endif
|
||||
@ -158,7 +169,7 @@ typedef struct {
|
||||
* account when setting it.
|
||||
*/
|
||||
#if defined(CONFIG_M523x) || defined(CONFIG_M527x) || defined(CONFIG_M528x) || \
|
||||
defined(CONFIG_M520x) || defined(CONFIG_M532x)
|
||||
defined(CONFIG_M520x) || defined(CONFIG_M532x) || defined(CONFIG_ARCH_MXC)
|
||||
#define OPT_FRAME_SIZE (PKT_MAXBUF_SIZE << 16)
|
||||
#else
|
||||
#define OPT_FRAME_SIZE 0
|
||||
@ -339,7 +350,7 @@ fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
* 4-byte boundaries. Use bounce buffers to copy data
|
||||
* and get it aligned. Ugh.
|
||||
*/
|
||||
if (bdp->cbd_bufaddr & 0x3) {
|
||||
if (bdp->cbd_bufaddr & FEC_ALIGNMENT) {
|
||||
unsigned int index;
|
||||
index = bdp - fep->tx_bd_base;
|
||||
memcpy(fep->tx_bounce[index], (void *)skb->data, skb->len);
|
||||
|
@ -14,7 +14,7 @@
|
||||
/****************************************************************************/
|
||||
|
||||
#if defined(CONFIG_M523x) || defined(CONFIG_M527x) || defined(CONFIG_M528x) || \
|
||||
defined(CONFIG_M520x) || defined(CONFIG_M532x)
|
||||
defined(CONFIG_M520x) || defined(CONFIG_M532x) || defined(CONFIG_ARCH_MXC)
|
||||
/*
|
||||
* Just figures, Motorola would have to change the offsets for
|
||||
* registers in the same peripheral device on different models
|
||||
@ -103,12 +103,19 @@ typedef struct fec {
|
||||
/*
|
||||
* Define the buffer descriptor structure.
|
||||
*/
|
||||
#ifdef CONFIG_ARCH_MXC
|
||||
typedef struct bufdesc {
|
||||
unsigned short cbd_datlen; /* Data length */
|
||||
unsigned short cbd_sc; /* Control and status info */
|
||||
unsigned long cbd_bufaddr; /* Buffer address */
|
||||
} cbd_t;
|
||||
#else
|
||||
typedef struct bufdesc {
|
||||
unsigned short cbd_sc; /* Control and status info */
|
||||
unsigned short cbd_datlen; /* Data length */
|
||||
unsigned long cbd_bufaddr; /* Buffer address */
|
||||
} cbd_t;
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The following definitions courtesy of commproc.h, which where
|
||||
|
Loading…
Reference in New Issue
Block a user