mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Andrey Panov <rockford@yandex.ru>
To: barebox@lists.infradead.org
Subject: [PATCH 10/18] NET: arc_emac: Update for newer DTS, support for Rockchip .compatible.
Date: Mon,  2 Mar 2015 23:21:54 +0300	[thread overview]
Message-ID: <1425327722-28232-11-git-send-email-rockford@yandex.ru> (raw)
In-Reply-To: <1425327722-28232-1-git-send-email-rockford@yandex.ru>

Signed-off-by: Andrey Panov <rockford@yandex.ru>
---
 drivers/net/arc_emac.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/drivers/net/arc_emac.c b/drivers/net/arc_emac.c
index 4bf456e..5a056d3 100644
--- a/drivers/net/arc_emac.c
+++ b/drivers/net/arc_emac.c
@@ -23,6 +23,7 @@
 #include <io.h>
 #include <init.h>
 #include <linux/err.h>
+#include <linux/clk.h>
 
 /* ARC EMAC register set combines entries for MAC and MDIO */
 enum {
@@ -99,6 +100,8 @@ struct arc_emac_priv {
 	u8 *rxbuf;
 	unsigned int txbd_curr;
 	unsigned int last_rx_bd;
+	struct clk *clk;
+	struct clk *refclk;
 };
 
 /**
@@ -384,20 +387,18 @@ static int arc_emac_mdio_write(struct mii_bus *bus, int phy_addr, int reg_num,
 	return arc_mdio_complete_wait(priv);
 }
 
+#define DEFAULT_EMAC_CLOCK_FREQUENCY 50000000UL;
+
 static int arc_emac_probe(struct device_d *dev)
 {
 	struct eth_device *edev;
 	struct arc_emac_priv *priv;
-	unsigned int clock_frequency;
+	unsigned long clock_frequency;
 	struct mii_bus *miibus;
 	u32 id;
 
-	/* Get CPU clock frequency from device tree */
-	if (of_property_read_u32(dev->device_node, "clock-frequency",
-				 &clock_frequency)) {
-		dev_err(dev, "failed to retrieve <clock-frequency> from device tree\n");
-		return -EINVAL;
-	}
+	/* clock-frequency is dropped from DTS, so hardcode it here */
+	clock_frequency = DEFAULT_EMAC_CLOCK_FREQUENCY;
 
 	edev = xzalloc(sizeof(struct eth_device) +
 		       sizeof(struct arc_emac_priv));
@@ -410,6 +411,13 @@ static int arc_emac_probe(struct device_d *dev)
 		return PTR_ERR(priv->regs);
 	priv->bus = miibus;
 
+	priv->clk = clk_get(dev, "hclk");
+	clk_enable(priv->clk);
+
+	priv->refclk = clk_get(dev, "macref");
+	clk_set_rate(priv->refclk,clock_frequency);
+	clk_enable(priv->refclk);
+
 	id = arc_reg_get(priv, R_ID);
 	/* Check for EMAC revision 5 or 7, magic number */
 	if (!(id == 0x0005fd02 || id == 0x0007fd02)) {
@@ -455,6 +463,8 @@ static __maybe_unused struct of_device_id arc_emac_dt_ids[] = {
 	{
 		.compatible = "snps,arc-emac",
 	}, {
+		.compatible = "rockchip,rk3188-emac",
+	}, {
 		/* sentinel */
 	}
 };
-- 
2.1.4


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  parent reply	other threads:[~2015-03-02 20:22 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-02 20:21 [PATCH 00/18] Update support for RK3188, Radxa Rock board Andrey Panov
2015-03-02 20:21 ` [PATCH 01/18] lib: Add gcd() function Andrey Panov
2015-03-03  7:45   ` Sascha Hauer
2015-03-02 20:21 ` [PATCH 02/18] CLK: Add support for composite clock from Linux kernel Andrey Panov
2015-03-03  7:48   ` Sascha Hauer
2015-03-02 20:21 ` [PATCH 03/18] CLK: Add fractional divider clock support " Andrey Panov
2015-03-03  7:51   ` Sascha Hauer
2015-03-02 20:21 ` [PATCH 04/18] CLK: clk-mux: Respect CLK_MUX_HIWORD_MASK flag Andrey Panov
2015-03-02 20:21 ` [PATCH 05/18] CLK: clk-divider: Respect CLK_DIVIDER_HIWORD_MASK flag Andrey Panov
2015-03-02 20:21 ` [PATCH 06/18] CLK: clk-divider: Introduce clk_divider_alloc() and *_free() routines Andrey Panov
2015-03-02 20:21 ` [PATCH 07/18] CLK: clk-divider: Respect CLK_DIVIDER_POWER_OF_TWO flag Andrey Panov
2015-03-02 20:21 ` [PATCH 08/18] CLK: Check and do not allow to register clock twice Andrey Panov
2015-03-03  9:03   ` Sascha Hauer
2015-03-02 20:21 ` [PATCH 09/18] CLK: Add helper defines to barebox-wrapper.h for easier porting of drivers from Linux kernel Andrey Panov
2015-03-02 20:21 ` Andrey Panov [this message]
2015-03-02 20:21 ` [PATCH 11/18] MMC: dw_mmc: Add support for PIO mode and Rockchip variant of this hardware Andrey Panov
2015-03-02 20:21 ` [PATCH 12/18] ARM: Rockchip: Remove unused files from mach-rockchip Andrey Panov
2015-03-02 20:21 ` [PATCH 13/18] ARM: Rockchip: Update Kconfig Andrey Panov
2015-03-02 20:21 ` [PATCH 14/18] ARM: Rockchip: Update clk driver from Linux kernel for use with newer DTS Andrey Panov
2015-03-02 20:21 ` [PATCH 15/18] ARM: Rockchip: Use newer DTS for Radxa Rock board Andrey Panov
2015-03-02 20:22 ` [PATCH 16/18] ARM: Rockchip: Update " Andrey Panov
2015-03-02 20:22 ` [PATCH 17/18] ARM: Rockchip: Add Radxa Rock defconfig Andrey Panov
2015-03-02 20:22 ` [PATCH 18/18] ARM: Rockchip: Add documentation Andrey Panov
2015-03-02 20:54 ` [PATCH 00/18] Update support for RK3188, Radxa Rock board Antony Pavlov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1425327722-28232-11-git-send-email-rockford@yandex.ru \
    --to=rockford@yandex.ru \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox