On Sat, Sep 19, 2009 at 05:39:37PM +0200, Luigi 'Comio' Mantellini wrote:
> +/*****************************************************************************
> + *
> + * Utility to send the preamble, address, and register (common to read
> + * and write).
> + */
> +static void mpc85xx_miiphy_pre (struct ether_fcc_info_s *info, char read, 
> unsigned char addr, unsigned char reg)
> +{
> +     int j;                  /* counter */
> +
> +     int mdio = info->mdiopin;
> +     int mdc  = info->mdcpin;
> +
> +     /*
> +      * Send a 32 bit preamble ('1's) with an extra '1' bit for good measure.
> +      * The IEEE spec says this is a PHY optional requirement.  The AMD
> +      * 79C874 requires one after power up and one after a MII communications
> +      * error.  This means that we are doing more preambles than we need,
> +      * but it is safer and will be much more robust.
> +      */
> +
> +     mpc85xx_mdio_active(mdio);
> +     mpc85xx_mdc_active(mdc);
> +     mpc85xx_mdio_set(mdio, 1);
> +
> +     for (j = 0; j < 32; j++) {
> +             mpc85xx_mdc_set(mdc, 0);
> +             mpc85xx_udelay(1);
> +             mpc85xx_mdc_set(mdc, 1);
> +             mpc85xx_udelay(1);
> +     }
> +
> +     /* send the start bit (01) and the read opcode (10) or write (10) */
> +     mpc85xx_mdc_set(mdc, 0);
> +     mpc85xx_mdio_set(mdio, 0);
> +     mpc85xx_udelay(1);
> +     mpc85xx_mdc_set(mdc, 1);
> +     mpc85xx_udelay(1);
> +     mpc85xx_mdc_set(mdc, 0);
> +     mpc85xx_mdio_set(mdio, 1);
> +     mpc85xx_udelay(1);


Please do not duplicate this.  Use the existing code in
drivers/net/phy/miiphybb.c, refactoring it if necessary.

Also, please attribute and preserve copyrights when you copy large chunks
of code.

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

Reply via email to