]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
net: zynq: Fix mdc clock division setting for 100Mbit/s
authorMichal Simek <michal.simek@xilinx.com>
Tue, 8 Sep 2015 14:55:42 +0000 (16:55 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 8 Sep 2015 15:35:23 +0000 (17:35 +0200)
Using set and clear macro is incorrect because it is not overwritting
origin mdc clock division setup.
For example origin setup is 8(0b001) and new setup is 64(0b100) which
means 0b101 is setup which is 96 divider.
Using writel to rewrite all setting like for 1000Mbit/s case.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/net/zynq_gem.c

index 05748f50915bf68e3e3a56feb97b79bb57a5bd16..c54d31a47ff8292b5bff53a50a988e0be571bc77 100644 (file)
@@ -376,8 +376,8 @@ static int zynq_gem_init(struct eth_device *dev, bd_t * bis)
                clk_rate = ZYNQ_GEM_FREQUENCY_1000;
                break;
        case SPEED_100:
-               clrsetbits_le32(&regs->nwcfg, ZYNQ_GEM_NWCFG_SPEED1000,
-                               ZYNQ_GEM_NWCFG_INIT | ZYNQ_GEM_NWCFG_SPEED100);
+               writel(ZYNQ_GEM_NWCFG_INIT | ZYNQ_GEM_NWCFG_SPEED100,
+                      &regs->nwcfg);
                clk_rate = ZYNQ_GEM_FREQUENCY_100;
                break;
        case SPEED_10: