powerpc/fsl: Introduce common enum for PHY types
Have a common enum for phy types that we use in the UCC driver. We will also use this enum for dealing with phy connection fixup in the device tree. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
11c8dd36ed
commit
f8c42495e0
|
@ -0,0 +1,31 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2010 Freescale Semiconductor, Inc.
|
||||||
|
*
|
||||||
|
* See file CREDITS for list of people who contributed to this
|
||||||
|
* project.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __ASM_PPC_FSL_ENET_H
|
||||||
|
#define __ASM_PPC_FSL_ENET_H
|
||||||
|
|
||||||
|
enum fsl_phy_enet_if {
|
||||||
|
MII,
|
||||||
|
RMII,
|
||||||
|
GMII,
|
||||||
|
RGMII,
|
||||||
|
RGMII_ID,
|
||||||
|
RGMII_RXID,
|
||||||
|
RGMII_TXID,
|
||||||
|
SGMII,
|
||||||
|
TBI,
|
||||||
|
RTBI,
|
||||||
|
XAUI,
|
||||||
|
FSL_ETH_IF_NONE,
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __ASM_PPC_FSL_ENET_H */
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2009 Freescale Semiconductor, Inc.
|
* Copyright (C) 2006-2010 Freescale Semiconductor, Inc.
|
||||||
*
|
*
|
||||||
* Dave Liu <daveliu@freescale.com>
|
* Dave Liu <daveliu@freescale.com>
|
||||||
*
|
*
|
||||||
|
@ -324,9 +324,9 @@ static int uec_set_mac_duplex(uec_private_t *uec, int duplex)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int uec_set_mac_if_mode(uec_private_t *uec,
|
static int uec_set_mac_if_mode(uec_private_t *uec,
|
||||||
enet_interface_type_e if_mode, int speed)
|
enum fsl_phy_enet_if if_mode, int speed)
|
||||||
{
|
{
|
||||||
enet_interface_type_e enet_if_mode;
|
enum fsl_phy_enet_if enet_if_mode;
|
||||||
uec_info_t *uec_info;
|
uec_info_t *uec_info;
|
||||||
uec_t *uec_regs;
|
uec_t *uec_regs;
|
||||||
u32 upsmr;
|
u32 upsmr;
|
||||||
|
@ -521,7 +521,7 @@ static void adjust_link(struct eth_device *dev)
|
||||||
struct uec_mii_info *mii_info = uec->mii_info;
|
struct uec_mii_info *mii_info = uec->mii_info;
|
||||||
|
|
||||||
extern void change_phy_interface_mode(struct eth_device *dev,
|
extern void change_phy_interface_mode(struct eth_device *dev,
|
||||||
enet_interface_type_e mode, int speed);
|
enum fsl_phy_enet_if mode, int speed);
|
||||||
uec_regs = uec->uec_regs;
|
uec_regs = uec->uec_regs;
|
||||||
|
|
||||||
if (mii_info->link) {
|
if (mii_info->link) {
|
||||||
|
@ -539,7 +539,7 @@ static void adjust_link(struct eth_device *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mii_info->speed != uec->oldspeed) {
|
if (mii_info->speed != uec->oldspeed) {
|
||||||
enet_interface_type_e mode = \
|
enum fsl_phy_enet_if mode = \
|
||||||
uec->uec_info->enet_interface_type;
|
uec->uec_info->enet_interface_type;
|
||||||
if (uec->uec_info->uf_info.eth_type == GIGA_ETH) {
|
if (uec->uec_info->uf_info.eth_type == GIGA_ETH) {
|
||||||
switch (mii_info->speed) {
|
switch (mii_info->speed) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2009 Freescale Semiconductor, Inc.
|
* Copyright (C) 2006-2010 Freescale Semiconductor, Inc.
|
||||||
*
|
*
|
||||||
* Dave Liu <daveliu@freescale.com>
|
* Dave Liu <daveliu@freescale.com>
|
||||||
* based on source code of Shlomi Gridish
|
* based on source code of Shlomi Gridish
|
||||||
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
#include "qe.h"
|
#include "qe.h"
|
||||||
#include "uccf.h"
|
#include "uccf.h"
|
||||||
|
#include <asm/fsl_enet.h>
|
||||||
|
|
||||||
#define MAX_TX_THREADS 8
|
#define MAX_TX_THREADS 8
|
||||||
#define MAX_RX_THREADS 8
|
#define MAX_RX_THREADS 8
|
||||||
|
@ -660,21 +661,6 @@ typedef enum uec_num_of_threads {
|
||||||
UEC_NUM_OF_THREADS_8 = 0x4 /* 8 */
|
UEC_NUM_OF_THREADS_8 = 0x4 /* 8 */
|
||||||
} uec_num_of_threads_e;
|
} uec_num_of_threads_e;
|
||||||
|
|
||||||
/* UEC ethernet interface type
|
|
||||||
*/
|
|
||||||
typedef enum enet_interface_type {
|
|
||||||
MII,
|
|
||||||
RMII,
|
|
||||||
RGMII,
|
|
||||||
GMII,
|
|
||||||
RGMII_ID,
|
|
||||||
RGMII_RXID,
|
|
||||||
RGMII_TXID,
|
|
||||||
TBI,
|
|
||||||
RTBI,
|
|
||||||
SGMII
|
|
||||||
} enet_interface_type_e;
|
|
||||||
|
|
||||||
/* UEC initialization info struct
|
/* UEC initialization info struct
|
||||||
*/
|
*/
|
||||||
#define STD_UEC_INFO(num) \
|
#define STD_UEC_INFO(num) \
|
||||||
|
@ -705,7 +691,7 @@ typedef struct uec_info {
|
||||||
u16 rx_bd_ring_len;
|
u16 rx_bd_ring_len;
|
||||||
u16 tx_bd_ring_len;
|
u16 tx_bd_ring_len;
|
||||||
u8 phy_address;
|
u8 phy_address;
|
||||||
enet_interface_type_e enet_interface_type;
|
enum fsl_phy_enet_if enet_interface_type;
|
||||||
int speed;
|
int speed;
|
||||||
} uec_info_t;
|
} uec_info_t;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2005 Freescale Semiconductor, Inc.
|
* Copyright (C) 2005,2010 Freescale Semiconductor, Inc.
|
||||||
*
|
*
|
||||||
* Author: Shlomi Gridish
|
* Author: Shlomi Gridish
|
||||||
*
|
*
|
||||||
|
@ -485,7 +485,7 @@ static int marvell_init(struct uec_mii_info *mii_info)
|
||||||
{
|
{
|
||||||
struct eth_device *edev = mii_info->dev;
|
struct eth_device *edev = mii_info->dev;
|
||||||
uec_private_t *uec = edev->priv;
|
uec_private_t *uec = edev->priv;
|
||||||
enum enet_interface_type iface = uec->uec_info->enet_interface_type;
|
enum fsl_phy_enet_if iface = uec->uec_info->enet_interface_type;
|
||||||
int speed = uec->uec_info->speed;
|
int speed = uec->uec_info->speed;
|
||||||
|
|
||||||
if ((speed == 1000) &&
|
if ((speed == 1000) &&
|
||||||
|
@ -853,7 +853,7 @@ struct phy_info *uec_get_phy_info (struct uec_mii_info *mii_info)
|
||||||
}
|
}
|
||||||
|
|
||||||
void marvell_phy_interface_mode (struct eth_device *dev,
|
void marvell_phy_interface_mode (struct eth_device *dev,
|
||||||
enet_interface_type_e type,
|
enum fsl_phy_enet_if type,
|
||||||
int speed
|
int speed
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -907,7 +907,7 @@ void marvell_phy_interface_mode (struct eth_device *dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
void change_phy_interface_mode (struct eth_device *dev,
|
void change_phy_interface_mode (struct eth_device *dev,
|
||||||
enet_interface_type_e type, int speed)
|
enum fsl_phy_enet_if type, int speed)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_PHY_MODE_NEED_CHANGE
|
#ifdef CONFIG_PHY_MODE_NEED_CHANGE
|
||||||
marvell_phy_interface_mode (dev, type, speed);
|
marvell_phy_interface_mode (dev, type, speed);
|
||||||
|
|
Loading…
Reference in New Issue