MIPS: AR7: Implement clock API
This patch makes the ar7 clock code implement the Linux clk API. Drivers using the various clocks available in the SoC are updated accordingly. Signed-off-by: Florian Fainelli <florian@openwrt.org> Acked-by: Wim Van Sebroeck <wim@iguana.be> To: linux-mips@linux-mips.org Cc: Wim Van Sebroeck <wim@iguana.be> Cc: netdev@vger.kernel.org Cc: David Miller <davem@davemloft.net> Patchwork: http://patchwork.linux-mips.org/patch/881/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
committed by
Ralf Baechle
parent
5f3c909881
commit
780019ddf0
@@ -36,6 +36,7 @@
|
||||
#include <linux/phy_fixed.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/clk.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/atomic.h>
|
||||
|
||||
@@ -294,9 +295,16 @@ static int cpmac_mdio_write(struct mii_bus *bus, int phy_id,
|
||||
|
||||
static int cpmac_mdio_reset(struct mii_bus *bus)
|
||||
{
|
||||
struct clk *cpmac_clk;
|
||||
|
||||
cpmac_clk = clk_get(&bus->dev, "cpmac");
|
||||
if (IS_ERR(cpmac_clk)) {
|
||||
printk(KERN_ERR "unable to get cpmac clock\n");
|
||||
return -1;
|
||||
}
|
||||
ar7_device_reset(AR7_RESET_BIT_MDIO);
|
||||
cpmac_write(bus->priv, CPMAC_MDIO_CONTROL, MDIOC_ENABLE |
|
||||
MDIOC_CLKDIV(ar7_cpmac_freq() / 2200000 - 1));
|
||||
MDIOC_CLKDIV(clk_get_rate(cpmac_clk) / 2200000 - 1));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user