Re: [U-Boot] [PATCH 3/4] net: sh_eth: modify the definitions of regsiter

2012-07-24 Thread Joe Hershberger
Hi Yoshihiro,

On Tue, Jun 26, 2012 at 9:38 PM, Shimoda, Yoshihiro
 wrote:
> The previous code had many similar definitions in each CPU.
>
> This patch borrows from the sh_eth driver of Linux kernel.
>
> Signed-off-by: Yoshihiro Shimoda 
> ---
Applied to next, thanks.

-Joe
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 3/4] net: sh_eth: modify the definitions of regsiter

2012-06-28 Thread Nobuhiro Iwamatsu
Tested-off-by: Nobuhiro Iwamatsu 
Acked-by: Nobuhiro Iwamatsu 

2012/6/27 Shimoda, Yoshihiro :
> The previous code had many similar definitions in each CPU.
>
> This patch borrows from the sh_eth driver of Linux kernel.
>
> Signed-off-by: Yoshihiro Shimoda 
> ---
>  drivers/net/sh_eth.c |  108 -
>  drivers/net/sh_eth.h |  331 
> +++---
>  2 files changed, 258 insertions(+), 181 deletions(-)
>
> diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
> index 262762d..7b429e8 100644
> --- a/drivers/net/sh_eth.c
> +++ b/drivers/net/sh_eth.c
> @@ -76,8 +76,8 @@ int sh_eth_send(struct eth_device *dev, void *packet, int 
> len)
>                port_info->tx_desc_cur->td0 = TD_TACT | TD_TFP;
>
>        /* Restart the transmitter if disabled */
> -       if (!(inl(EDTRR(port)) & EDTRR_TRNS))
> -               outl(EDTRR_TRNS, EDTRR(port));
> +       if (!(sh_eth_read(eth, EDTRR) & EDTRR_TRNS))
> +               sh_eth_write(eth, EDTRR_TRNS, EDTRR);
>
>        /* Wait until packet is transmitted */
>        timeout = TIMEOUT_CNT;
> @@ -129,25 +129,24 @@ int sh_eth_recv(struct eth_device *dev)
>        }
>
>        /* Restart the receiver if disabled */
> -       if (!(inl(EDRRR(port)) & EDRRR_R))
> -               outl(EDRRR_R, EDRRR(port));
> +       if (!(sh_eth_read(eth, EDRRR) & EDRRR_R))
> +               sh_eth_write(eth, EDRRR_R, EDRRR);
>
>        return len;
>  }
>
>  static int sh_eth_reset(struct sh_eth_dev *eth)
>  {
> -       int port = eth->port;
>  #if defined(SH_ETH_TYPE_GETHER)
>        int ret = 0, i;
>
>        /* Start e-dmac transmitter and receiver */
> -       outl(EDSR_ENALL, EDSR(port));
> +       sh_eth_write(eth, EDSR_ENALL, EDSR);
>
>        /* Perform a software reset and wait for it to complete */
> -       outl(EDMR_SRST, EDMR(port));
> +       sh_eth_write(eth, EDMR_SRST, EDMR);
>        for (i = 0; i < TIMEOUT_CNT ; i++) {
> -               if (!(inl(EDMR(port)) & EDMR_SRST))
> +               if (!(sh_eth_read(eth, EDMR) & EDMR_SRST))
>                        break;
>                udelay(1000);
>        }
> @@ -159,9 +158,9 @@ static int sh_eth_reset(struct sh_eth_dev *eth)
>
>        return ret;
>  #else
> -       outl(inl(EDMR(port)) | EDMR_SRST, EDMR(port));
> +       sh_eth_write(eth, sh_eth_read(eth, EDMR) | EDMR_SRST, EDMR);
>        udelay(3000);
> -       outl(inl(EDMR(port)) & ~EDMR_SRST, EDMR(port));
> +       sh_eth_write(eth, sh_eth_read(eth, EDMR) & ~EDMR_SRST, EDMR);
>
>        return 0;
>  #endif
> @@ -207,11 +206,11 @@ static int sh_eth_tx_desc_init(struct sh_eth_dev *eth)
>
>        /* Point the controller to the tx descriptor list. Must use physical
>           addresses */
> -       outl(ADDR_TO_PHY(port_info->tx_desc_base), TDLAR(port));
> +       sh_eth_write(eth, ADDR_TO_PHY(port_info->tx_desc_base), TDLAR);
>  #if defined(SH_ETH_TYPE_GETHER)
> -       outl(ADDR_TO_PHY(port_info->tx_desc_base), TDFAR(port));
> -       outl(ADDR_TO_PHY(cur_tx_desc), TDFXR(port));
> -       outl(0x01, TDFFR(port));/* Last discriptor bit */
> +       sh_eth_write(eth, ADDR_TO_PHY(port_info->tx_desc_base), TDFAR);
> +       sh_eth_write(eth, ADDR_TO_PHY(cur_tx_desc), TDFXR);
> +       sh_eth_write(eth, 0x01, TDFFR);/* Last discriptor bit */
>  #endif
>
>  err:
> @@ -275,11 +274,11 @@ static int sh_eth_rx_desc_init(struct sh_eth_dev *eth)
>        cur_rx_desc->rd0 |= RD_RDLE;
>
>        /* Point the controller to the rx descriptor list */
> -       outl(ADDR_TO_PHY(port_info->rx_desc_base), RDLAR(port));
> +       sh_eth_write(eth, ADDR_TO_PHY(port_info->rx_desc_base), RDLAR);
>  #if defined(SH_ETH_TYPE_GETHER)
> -       outl(ADDR_TO_PHY(port_info->rx_desc_base), RDFAR(port));
> -       outl(ADDR_TO_PHY(cur_rx_desc), RDFXR(port));
> -       outl(RDFFR_RDLF, RDFFR(port));
> +       sh_eth_write(eth, ADDR_TO_PHY(port_info->rx_desc_base), RDFAR);
> +       sh_eth_write(eth, ADDR_TO_PHY(cur_rx_desc), RDFXR);
> +       sh_eth_write(eth, RDFFR_RDLF, RDFFR);
>  #endif
>
>        return ret;
> @@ -364,38 +363,39 @@ static int sh_eth_config(struct sh_eth_dev *eth, bd_t 
> *bd)
>        struct phy_device *phy;
>
>        /* Configure e-dmac registers */
> -       outl((inl(EDMR(port)) & ~EMDR_DESC_R) | EDMR_EL, EDMR(port));
> -       outl(0, EESIPR(port));
> -       outl(0, TRSCER(port));
> -       outl(0, TFTR(port));
> -       outl((FIFO_SIZE_T | FIFO_SIZE_R), FDR(port));
> -       outl(RMCR_RST, RMCR(port));
> +       sh_eth_write(eth, (sh_eth_read(eth, EDMR) & ~EMDR_DESC_R) | EDMR_EL,
> +                    EDMR);
> +       sh_eth_write(eth, 0, EESIPR);
> +       sh_eth_write(eth, 0, TRSCER);
> +       sh_eth_write(eth, 0, TFTR);
> +       sh_eth_write(eth, (FIFO_SIZE_T | FIFO_SIZE_R), FDR);
> +       sh_eth_write(eth, RMCR_RST, RMCR);
>  #if defined(SH_ETH_TYPE_GETHER)
> -       outl(0, RPADIR(port));
> +       sh_eth_write(eth, 0, RPADIR);
>  #endif
> -       outl((FIFO_F_D_RFF | FIFO_F_D_RFD), FCFTR(port));
> +       sh_e