a3f109bd79
Commit d0418bb712
(net: sh_eth: Add eth support
for R8A7779 device) was a failed attempt to add support for one of members of
the R-Car SoC family. That's for three reasons: it treated R8A7779 the same
as SH7724 except including quite dirty hack adding ECMR_ELB bit to the mask
in sh_eth_set_rate() while not removing ECMR_RTM bit (despite it's reserved in
R-Car Ether), and it didn't add a new register offset array despite the closest
SH_ETH_REG_FAST_SH4 mapping differs by 0x200 to the offsets all the R-Car Ether
registers have, and also some of the registers in this old mapping don't exist
on R-Car Ether (due to this, SH7724's 'sh_eth_my_cpu_data' structure is not
adequeate for R-Car too). Fix all these shortcomings, restoring the SH7724
related section to its pristine state...
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
28 lines
492 B
C
28 lines
492 B
C
#ifndef __ASM_SH_ETH_H__
|
|
#define __ASM_SH_ETH_H__
|
|
|
|
#include <linux/phy.h>
|
|
|
|
enum {EDMAC_LITTLE_ENDIAN, EDMAC_BIG_ENDIAN};
|
|
enum {
|
|
SH_ETH_REG_GIGABIT,
|
|
SH_ETH_REG_FAST_RCAR,
|
|
SH_ETH_REG_FAST_SH4,
|
|
SH_ETH_REG_FAST_SH3_SH2
|
|
};
|
|
|
|
struct sh_eth_plat_data {
|
|
int phy;
|
|
int edmac_endian;
|
|
int register_type;
|
|
phy_interface_t phy_interface;
|
|
void (*set_mdio_gate)(void *addr);
|
|
|
|
unsigned char mac_addr[6];
|
|
unsigned no_ether_link:1;
|
|
unsigned ether_link_active_low:1;
|
|
unsigned needs_init:1;
|
|
};
|
|
|
|
#endif
|