generic: ar8316: allow to configure port 6 via platform data on AR8327
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 34847
This commit is contained in:
parent
a0b31f97bb
commit
3931c9524c
2 changed files with 19 additions and 17 deletions
|
@ -1074,19 +1074,13 @@ ar8327_init_globals(struct ar8216_priv *priv)
|
|||
}
|
||||
|
||||
static void
|
||||
ar8327_init_cpuport(struct ar8216_priv *priv)
|
||||
ar8327_config_port(struct ar8216_priv *priv, unsigned int port,
|
||||
struct ar8327_port_cfg *cfg)
|
||||
{
|
||||
struct ar8327_platform_data *pdata;
|
||||
struct ar8327_port_cfg *cfg;
|
||||
u32 t;
|
||||
|
||||
pdata = priv->phy->dev.platform_data;
|
||||
if (!pdata)
|
||||
return;
|
||||
|
||||
cfg = &pdata->port0_cfg;
|
||||
if (!cfg->force_link) {
|
||||
priv->write(priv, AR8327_REG_PORT_STATUS(AR8216_PORT_CPU),
|
||||
if (!cfg || !cfg->force_link) {
|
||||
priv->write(priv, AR8327_REG_PORT_STATUS(port),
|
||||
AR8216_PORT_STATUS_LINK_AUTO);
|
||||
return;
|
||||
}
|
||||
|
@ -1095,6 +1089,7 @@ ar8327_init_cpuport(struct ar8216_priv *priv)
|
|||
t |= cfg->duplex ? AR8216_PORT_STATUS_DUPLEX : 0;
|
||||
t |= cfg->rxpause ? AR8216_PORT_STATUS_RXFLOW : 0;
|
||||
t |= cfg->txpause ? AR8216_PORT_STATUS_TXFLOW : 0;
|
||||
|
||||
switch (cfg->speed) {
|
||||
case AR8327_PORT_SPEED_10:
|
||||
t |= AR8216_PORT_SPEED_10M;
|
||||
|
@ -1107,21 +1102,27 @@ ar8327_init_cpuport(struct ar8216_priv *priv)
|
|||
break;
|
||||
}
|
||||
|
||||
priv->write(priv, AR8327_REG_PORT_STATUS(AR8216_PORT_CPU), t);
|
||||
priv->write(priv, AR8327_REG_PORT_STATUS(port), t);
|
||||
}
|
||||
|
||||
static void
|
||||
ar8327_init_port(struct ar8216_priv *priv, int port)
|
||||
{
|
||||
struct ar8327_platform_data *pdata;
|
||||
struct ar8327_port_cfg *cfg;
|
||||
u32 t;
|
||||
|
||||
if (port == AR8216_PORT_CPU) {
|
||||
ar8327_init_cpuport(priv);
|
||||
} else {
|
||||
t = AR8216_PORT_STATUS_LINK_AUTO;
|
||||
priv->write(priv, AR8327_REG_PORT_STATUS(port), t);
|
||||
}
|
||||
pdata = priv->phy->dev.platform_data;
|
||||
|
||||
if (pdata && port == AR8216_PORT_CPU)
|
||||
cfg = &pdata->port0_cfg;
|
||||
else if (pdata && port == 6)
|
||||
cfg = &pdata->port6_cfg;
|
||||
else
|
||||
cfg = NULL;
|
||||
|
||||
ar8327_config_port(priv, port, cfg);
|
||||
|
||||
priv->write(priv, AR8327_REG_PORT_HEADER(port), 0);
|
||||
|
||||
priv->write(priv, AR8327_REG_PORT_VLAN0(port), 0);
|
||||
|
|
|
@ -75,6 +75,7 @@ struct ar8327_platform_data {
|
|||
struct ar8327_pad_cfg *pad5_cfg;
|
||||
struct ar8327_pad_cfg *pad6_cfg;
|
||||
struct ar8327_port_cfg port0_cfg;
|
||||
struct ar8327_port_cfg port6_cfg;
|
||||
struct ar8327_led_cfg *led_cfg;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue