* [U-Boot] [PATCH] 4xx: cleanup ethernet phy initialization on PMC440 boards
@ 2014-03-19 20:30 Matthias Fuchs
2014-03-20 11:23 ` Stefan Roese
0 siblings, 1 reply; 2+ messages in thread
From: Matthias Fuchs @ 2014-03-19 20:30 UTC (permalink / raw)
To: u-boot
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(-)
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);
--
1.6.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [U-Boot] [PATCH] 4xx: cleanup ethernet phy initialization on PMC440 boards
2014-03-19 20:30 [U-Boot] [PATCH] 4xx: cleanup ethernet phy initialization on PMC440 boards Matthias Fuchs
@ 2014-03-20 11:23 ` Stefan Roese
0 siblings, 0 replies; 2+ messages in thread
From: Stefan Roese @ 2014-03-20 11:23 UTC (permalink / raw)
To: u-boot
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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-03-20 11:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-19 20:30 [U-Boot] [PATCH] 4xx: cleanup ethernet phy initialization on PMC440 boards Matthias Fuchs
2014-03-20 11:23 ` Stefan Roese
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox