Message ID | 1395261039-19640-1-git-send-email-matthias.fuchs@esd.eu |
---|---|
State | Superseded |
Delegated to: | Stefan Roese |
Headers | show |
Hi Matthias, On 19.03.2014 21:30, Matthias Fuchs wrote: > This patch moves phy initialization for VSC8601 ethernet > phys that are used on early board revisions into a separate > setup function. Thanks for working on this. Some additional comments though. > Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> > --- > board/esd/pmc440/pmc440.c | 45 ++++++++++++++++++++++----------------------- > 1 files changed, 22 insertions(+), 23 deletions(-) > > diff --git a/board/esd/pmc440/pmc440.c b/board/esd/pmc440/pmc440.c > index 7aee8e4..3165486 100644 > --- a/board/esd/pmc440/pmc440.c > +++ b/board/esd/pmc440/pmc440.c > @@ -643,6 +643,23 @@ int is_pci_host(struct pci_controller *hose) > #endif /* defined(CONFIG_PCI) */ > > #ifdef CONFIG_RESET_PHY_R > +int pmc440_setup_vsc8601(char *devname, int phy_addr, > + unsigned short behavior, unsigned short method) static int pmc440_... > +{ > + /* adjust LED behavior */ > + if (miiphy_write(devname, phy_addr, 0x1f, 0x0001) != 0) { > + printf("Phy%d: register write access failed\n", phy_addr); > + return -1; > + } > + > + miiphy_write(devname, phy_addr, 0x11, 0x0010); > + miiphy_write(devname, phy_addr, 0x11, behavior); > + miiphy_write(devname, phy_addr, 0x10, method); > + miiphy_write(devname, phy_addr, 0x1f, 0x0000); > + > + return 0; > +} Look much nicer with less indentation. :) > int pmc440_setup_ksz9031(char *devname, int phy_addr) And now I notice that this should also be: static int pmc440_... A new patch-set would be best to handle this. Or a new patch with both changes squashed together would be fine as well. Whatever you prefer. Thanks, Stefan
diff --git a/board/esd/pmc440/pmc440.c b/board/esd/pmc440/pmc440.c index 7aee8e4..3165486 100644 --- a/board/esd/pmc440/pmc440.c +++ b/board/esd/pmc440/pmc440.c @@ -643,6 +643,23 @@ int is_pci_host(struct pci_controller *hose) #endif /* defined(CONFIG_PCI) */ #ifdef CONFIG_RESET_PHY_R +int pmc440_setup_vsc8601(char *devname, int phy_addr, + unsigned short behavior, unsigned short method) +{ + /* adjust LED behavior */ + if (miiphy_write(devname, phy_addr, 0x1f, 0x0001) != 0) { + printf("Phy%d: register write access failed\n", phy_addr); + return -1; + } + + miiphy_write(devname, phy_addr, 0x11, 0x0010); + miiphy_write(devname, phy_addr, 0x11, behavior); + miiphy_write(devname, phy_addr, 0x10, method); + miiphy_write(devname, phy_addr, 0x1f, 0x0000); + + return 0; +} + int pmc440_setup_ksz9031(char *devname, int phy_addr) { unsigned short id1, id2; @@ -683,29 +700,11 @@ void reset_phy(void) val_behavior = 0x0cf0; } - if (miiphy_write("ppc_4xx_eth0", - CONFIG_PHY_ADDR, 0x1f, 0x0001) == 0) { - miiphy_write("ppc_4xx_eth0", - CONFIG_PHY_ADDR, 0x11, 0x0010); - miiphy_write("ppc_4xx_eth0", - CONFIG_PHY_ADDR, 0x11, val_behavior); - miiphy_write("ppc_4xx_eth0", - CONFIG_PHY_ADDR, 0x10, val_method); - miiphy_write("ppc_4xx_eth0", - CONFIG_PHY_ADDR, 0x1f, 0x0000); - } - - if (miiphy_write("ppc_4xx_eth1", - CONFIG_PHY1_ADDR, 0x1f, 0x0001) == 0) { - miiphy_write("ppc_4xx_eth1", - CONFIG_PHY1_ADDR, 0x11, 0x0010); - miiphy_write("ppc_4xx_eth1", - CONFIG_PHY1_ADDR, 0x11, val_behavior); - miiphy_write("ppc_4xx_eth1", - CONFIG_PHY1_ADDR, 0x10, val_method); - miiphy_write("ppc_4xx_eth1", - CONFIG_PHY1_ADDR, 0x1f, 0x0000); - } + /* boards up to rev. 1.3 use Vitesse VSC8601 phys */ + pmc440_setup_vsc8601("ppc_4xx_eth0", CONFIG_PHY_ADDR, + val_method, val_behavior); + pmc440_setup_vsc8601("ppc_4xx_eth1", CONFIG_PHY1_ADDR, + val_method, val_behavior); } else { /* rev. 1.4 uses a Micrel KSZ9031 */ pmc440_setup_ksz9031("ppc_4xx_eth0", CONFIG_PHY_ADDR);
This patch moves phy initialization for VSC8601 ethernet phys that are used on early board revisions into a separate setup function. Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> --- board/esd/pmc440/pmc440.c | 45 ++++++++++++++++++++++----------------------- 1 files changed, 22 insertions(+), 23 deletions(-)