Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1298529 > unrolled thread
| Started by | Xing Zheng <zhengxing@rock-chips.com> |
|---|---|
| First post | 2015-12-28 08:30 +0100 |
| Last post | 2015-12-30 16:10 +0100 |
| Articles | 9 — 6 participants |
Back to article view | Back to linux.kernel
[RESEND PATCH v1 0/4] Add support emac for the RK3036 SoC platform Xing Zheng <zhengxing@rock-chips.com> - 2015-12-28 08:30 +0100
[RESEND PATCH v1 1/4] net: ethernet: arc: Probe emac after set RMII clock Xing Zheng <zhengxing@rock-chips.com> - 2015-12-28 08:30 +0100
[RESEND PATCH v1 2/4] net: ethernet: arc: Keep emac compatibility for more Rockchip SoCs Xing Zheng <zhengxing@rock-chips.com> - 2015-12-28 08:30 +0100
Re: [RESEND PATCH v1 0/4] Add support emac for the RK3036 SoC platform David Miller <davem@davemloft.net> - 2015-12-29 22:00 +0100
Re: [RESEND PATCH v1 0/4] Add support emac for the RK3036 SoC platform Heiko Stübner <heiko@sntech.de> - 2015-12-29 23:30 +0100
Re: [RESEND PATCH v1 0/4] Add support emac for the RK3036 SoC platform Florian Fainelli <f.fainelli@gmail.com> - 2015-12-30 00:00 +0100
Re: [RESEND PATCH v1 0/4] Add support emac for the RK3036 SoC platform David Miller <davem@davemloft.net> - 2015-12-30 02:50 +0100
Re: [RESEND PATCH v1 0/4] Add support emac for the RK3036 SoC platform Geert Uytterhoeven <geert@linux-m68k.org> - 2015-12-30 11:20 +0100
Re: [RESEND PATCH v1 0/4] Add support emac for the RK3036 SoC platform Rob Herring <robh+dt@kernel.org> - 2015-12-30 16:10 +0100
| From | Xing Zheng <zhengxing@rock-chips.com> |
|---|---|
| Date | 2015-12-28 08:30 +0100 |
| Subject | [RESEND PATCH v1 0/4] Add support emac for the RK3036 SoC platform |
| Message-ID | <qKApH-79E-3@gated-at.bofh.it> |
Hi, We have supported the emac for RK3066/RK3188, but the RK3036 have some configuration different with them. We should let the driver of emac_rockchip compatible with other Rockchip SoCs. Xing Zheng (4): net: ethernet: arc: Probe emac after set RMII clock net: ethernet: arc: Keep emac compatibility for more Rockchip SoCs net: ethernet: arc: Add support emac for RK3036 ARM: dts: rockchip: Add support emac for RK3036 arch/arm/boot/dts/rk3036-evb.dts | 25 +++++++++ arch/arm/boot/dts/rk3036-kylin.dts | 23 ++++++++ arch/arm/boot/dts/rk3036.dtsi | 32 +++++++++++ drivers/net/ethernet/arc/Kconfig | 4 +- drivers/net/ethernet/arc/emac_rockchip.c | 86 ++++++++++++++++++++---------- 5 files changed, 140 insertions(+), 30 deletions(-) -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Xing Zheng <zhengxing@rock-chips.com> |
|---|---|
| Date | 2015-12-28 08:30 +0100 |
| Subject | [RESEND PATCH v1 1/4] net: ethernet: arc: Probe emac after set RMII clock |
| Message-ID | <qKApI-79E-11@gated-at.bofh.it> |
| In reply to | #1298529 |
After enter arc_emac_probe, emac will get_phy_id, phy_poll_reset and
other connecting PHY via mdiobus_read, so we need to set correct
ref clock rate for emac before probe emac.
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
---
drivers/net/ethernet/arc/emac_rockchip.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/arc/emac_rockchip.c b/drivers/net/ethernet/arc/emac_rockchip.c
index c31c740..36e9eb1 100644
--- a/drivers/net/ethernet/arc/emac_rockchip.c
+++ b/drivers/net/ethernet/arc/emac_rockchip.c
@@ -164,10 +164,6 @@ static int emac_rockchip_probe(struct platform_device *pdev)
}
}
- err = arc_emac_probe(ndev, interface);
- if (err)
- goto out_regulator_disable;
-
/* write-enable bits */
data = GRF_MODE_ENABLE_BIT | GRF_SPEED_ENABLE_BIT;
@@ -184,6 +180,13 @@ static int emac_rockchip_probe(struct platform_device *pdev)
err = clk_set_rate(priv->refclk, 50000000);
if (err)
dev_err(dev, "failed to change reference clock rate (%d)\n", err);
+
+ err = arc_emac_probe(ndev, interface);
+ if (err) {
+ dev_err(dev, "failed to probe arc emac (%d)\n", err);
+ goto out_regulator_disable;
+ }
+
return 0;
out_regulator_disable:
--
1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Xing Zheng <zhengxing@rock-chips.com> |
|---|---|
| Date | 2015-12-28 08:30 +0100 |
| Subject | [RESEND PATCH v1 2/4] net: ethernet: arc: Keep emac compatibility for more Rockchip SoCs |
| Message-ID | <qKApI-79E-9@gated-at.bofh.it> |
| In reply to | #1298529 |
On the RK3066/RK3188, there was fixed GRF offset configuration to set emac
and fixed DIV2 mac TX/RX clock. So, we need to easily set and fit to other
SoCs (RK3036) which maybe have different GRF offset, and need adjust mac
TX/RX clock.
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
---
drivers/net/ethernet/arc/emac_rockchip.c | 66 ++++++++++++++++++++----------
1 file changed, 44 insertions(+), 22 deletions(-)
diff --git a/drivers/net/ethernet/arc/emac_rockchip.c b/drivers/net/ethernet/arc/emac_rockchip.c
index 36e9eb1..d1a9c28 100644
--- a/drivers/net/ethernet/arc/emac_rockchip.c
+++ b/drivers/net/ethernet/arc/emac_rockchip.c
@@ -25,17 +25,13 @@
#include "emac.h"
#define DRV_NAME "rockchip_emac"
-#define DRV_VERSION "1.0"
-
-#define GRF_MODE_MII (1UL << 0)
-#define GRF_MODE_RMII (0UL << 0)
-#define GRF_SPEED_10M (0UL << 1)
-#define GRF_SPEED_100M (1UL << 1)
-#define GRF_SPEED_ENABLE_BIT (1UL << 17)
-#define GRF_MODE_ENABLE_BIT (1UL << 16)
+#define DRV_VERSION "1.1"
struct emac_rockchip_soc_data {
- int grf_offset;
+ unsigned int grf_offset;
+ unsigned int grf_mode_offset;
+ unsigned int grf_speed_offset;
+ bool need_div_macclk;
};
struct rockchip_priv_data {
@@ -44,23 +40,22 @@ struct rockchip_priv_data {
const struct emac_rockchip_soc_data *soc_data;
struct regulator *regulator;
struct clk *refclk;
+ struct clk *macclk;
};
static void emac_rockchip_set_mac_speed(void *priv, unsigned int speed)
{
struct rockchip_priv_data *emac = priv;
+ u32 speed_offset = emac->soc_data->grf_speed_offset;
u32 data;
int err = 0;
- /* write-enable bits */
- data = GRF_SPEED_ENABLE_BIT;
-
switch(speed) {
case 10:
- data |= GRF_SPEED_10M;
+ data = (1 << (speed_offset + 16)) | (0 << speed_offset);
break;
case 100:
- data |= GRF_SPEED_100M;
+ data = (1 << (speed_offset + 16)) | (1 << speed_offset);
break;
default:
pr_err("speed %u not supported\n", speed);
@@ -73,8 +68,14 @@ static void emac_rockchip_set_mac_speed(void *priv, unsigned int speed)
}
static const struct emac_rockchip_soc_data emac_rockchip_dt_data[] = {
- { .grf_offset = 0x154 }, /* rk3066 */
- { .grf_offset = 0x0a4 }, /* rk3188 */
+ {
+ .grf_offset = 0x154, .grf_mode_offset = 0,
+ .grf_speed_offset = 1, .need_div_macclk = 0
+ }, /* rk3066 */
+ {
+ .grf_offset = 0x0a4, .grf_mode_offset = 0,
+ .grf_speed_offset = 1, .need_div_macclk = 0
+ }, /* rk3188 */
};
static const struct of_device_id emac_rockchip_dt_ids[] = {
@@ -110,7 +111,7 @@ static int emac_rockchip_probe(struct platform_device *pdev)
interface = of_get_phy_mode(dev->of_node);
- /* RK3066 and RK3188 SoCs only support RMII */
+ /* RK3036/RK3066/RK3188 SoCs only support RMII */
if (interface != PHY_INTERFACE_MODE_RMII) {
dev_err(dev, "unsupported phy interface mode %d\n", interface);
err = -ENOTSUPP;
@@ -164,11 +165,12 @@ static int emac_rockchip_probe(struct platform_device *pdev)
}
}
- /* write-enable bits */
- data = GRF_MODE_ENABLE_BIT | GRF_SPEED_ENABLE_BIT;
-
- data |= GRF_SPEED_100M;
- data |= GRF_MODE_RMII;
+ /* Set speed 100M */
+ data = (1 << (priv->soc_data->grf_speed_offset + 16)) |
+ (1 << priv->soc_data->grf_speed_offset);
+ /* Set RMII mode */
+ data |= (1 << (priv->soc_data->grf_mode_offset + 16)) |
+ (0 << priv->soc_data->grf_mode_offset);
err = regmap_write(priv->grf, priv->soc_data->grf_offset, data);
if (err) {
@@ -181,6 +183,26 @@ static int emac_rockchip_probe(struct platform_device *pdev)
if (err)
dev_err(dev, "failed to change reference clock rate (%d)\n", err);
+ if (priv->soc_data->need_div_macclk) {
+ priv->macclk = devm_clk_get(dev, "macclk");
+ if (IS_ERR(priv->macclk)) {
+ dev_err(dev, "failed to retrieve mac clock (%ld)\n", PTR_ERR(priv->macclk));
+ err = PTR_ERR(priv->macclk);
+ goto out_regulator_disable;
+ }
+
+ err = clk_prepare_enable(priv->macclk);
+ if (err) {
+ dev_err(dev, "failed to enable mac clock (%d)\n", err);
+ goto out_regulator_disable;
+ }
+
+ /* RMII TX/RX needs always a rate of 25MHz */
+ err = clk_set_rate(priv->macclk, 25000000);
+ if (err)
+ dev_err(dev, "failed to change mac clock rate (%d)\n", err);
+ }
+
err = arc_emac_probe(ndev, interface);
if (err) {
dev_err(dev, "failed to probe arc emac (%d)\n", err);
--
1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2015-12-29 22:00 +0100 |
| Subject | Re: [RESEND PATCH v1 0/4] Add support emac for the RK3036 SoC platform |
| Message-ID | <qL9x8-5sz-17@gated-at.bofh.it> |
| In reply to | #1298529 |
You have to submit this series properly, the same problem happend twice now. When you submit a series you should: 1) Make it clear which tree you expect these changes to be applied to. Here it is completely ambiguous, do you want it to go into my networking tree or some other subsystem tree? 2) You MUST keep all parties informed about all patches for a series like this. That means you cannot drop netdev from patch #4 as you did both times. Doing this aggravates the situation for #1 even more, because if a patch is not CC:'d to netdev it does not enter patchwork. And if it doesn't go into patchwork, I'm not looking at it. Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Heiko Stübner <heiko@sntech.de> |
|---|---|
| Date | 2015-12-29 23:30 +0100 |
| Message-ID | <qLaWe-6tJ-5@gated-at.bofh.it> |
| In reply to | #1299139 |
Hi Dave, Am Dienstag, 29. Dezember 2015, 15:53:14 schrieb David Miller: > You have to submit this series properly, the same problem happend twice > now. > > When you submit a series you should: > > 1) Make it clear which tree you expect these changes to be applied > to. Here it is completely ambiguous, do you want it to go into > my networking tree or some other subsystem tree? > > 2) You MUST keep all parties informed about all patches for a series > like this. That means you cannot drop netdev from patch #4 as > you did both times. Doing this aggravates the situation for > #1 even more, because if a patch is not CC:'d to netdev it does > not enter patchwork. And if it doesn't go into patchwork, I'm > not looking at it. I guess that is some unfortunate result of git send-email combined with get_maintainer.pl . In general I also prefer to see the whole series, but have gotten such partial series from other maintainers as well in the past, so it seems to be depending on preferences somewhat. For the series at hand, the 4th patch is the devicetree addition, which the expected way is me picking it up, after you are comfortable with the code- related changes. Heiko -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Florian Fainelli <f.fainelli@gmail.com> |
|---|---|
| Date | 2015-12-30 00:00 +0100 |
| Message-ID | <qLbpf-6Dg-1@gated-at.bofh.it> |
| In reply to | #1299156 |
On December 29, 2015 2:27:55 PM PST, "Heiko Stübner" <heiko@sntech.de> wrote: >Hi Dave, > >Am Dienstag, 29. Dezember 2015, 15:53:14 schrieb David Miller: >> You have to submit this series properly, the same problem happend >twice >> now. >> >> When you submit a series you should: >> >> 1) Make it clear which tree you expect these changes to be applied >> to. Here it is completely ambiguous, do you want it to go into >> my networking tree or some other subsystem tree? >> >> 2) You MUST keep all parties informed about all patches for a series >> like this. That means you cannot drop netdev from patch #4 as >> you did both times. Doing this aggravates the situation for >> #1 even more, because if a patch is not CC:'d to netdev it does >> not enter patchwork. And if it doesn't go into patchwork, I'm >> not looking at it. > >I guess that is some unfortunate result of git send-email combined with > >get_maintainer.pl . In general I also prefer to see the whole series, >but have >gotten such partial series from other maintainers as well in the past, >so it >seems to be depending on preferences somewhat. You could run get_maintainer.pl against the individual patches in the series, merge the cc list somewhere in a file/variable and then do the actual mail submission with that full list for all patches. There could be a way to automate that with a bit of help from git send-email eventually. -- Florian -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2015-12-30 02:50 +0100 |
| Subject | Re: [RESEND PATCH v1 0/4] Add support emac for the RK3036 SoC platform |
| Message-ID | <qLe3L-8ln-1@gated-at.bofh.it> |
| In reply to | #1299156 |
From: Heiko Stübner <heiko@sntech.de> Date: Tue, 29 Dec 2015 23:27:55 +0100 > Hi Dave, > > Am Dienstag, 29. Dezember 2015, 15:53:14 schrieb David Miller: >> You have to submit this series properly, the same problem happend twice >> now. >> >> When you submit a series you should: >> >> 1) Make it clear which tree you expect these changes to be applied >> to. Here it is completely ambiguous, do you want it to go into >> my networking tree or some other subsystem tree? >> >> 2) You MUST keep all parties informed about all patches for a series >> like this. That means you cannot drop netdev from patch #4 as >> you did both times. Doing this aggravates the situation for >> #1 even more, because if a patch is not CC:'d to netdev it does >> not enter patchwork. And if it doesn't go into patchwork, I'm >> not looking at it. > > I guess that is some unfortunate result of git send-email combined with > get_maintainer.pl . In general I also prefer to see the whole series, but have > gotten such partial series from other maintainers as well in the past, so it > seems to be depending on preferences somewhat. > > For the series at hand, the 4th patch is the devicetree addition, which the > expected way is me picking it up, after you are comfortable with the code- > related changes. Why would it not be appropriate for a DT file change to go into my tree if it corresponds to functionality created by the rest of the patches in the series? It looks better to put it all together as a unit, via one series, with a merge commit containing your "[PATCH 0/N]" description in the commit message. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Geert Uytterhoeven <geert@linux-m68k.org> |
|---|---|
| Date | 2015-12-30 11:20 +0100 |
| Message-ID | <qLm1k-5j3-9@gated-at.bofh.it> |
| In reply to | #1299197 |
Hi David,
On Wed, Dec 30, 2015 at 2:48 AM, David Miller <davem@davemloft.net> wrote:
> From: Heiko Stübner <heiko@sntech.de>
> Date: Tue, 29 Dec 2015 23:27:55 +0100
>> Am Dienstag, 29. Dezember 2015, 15:53:14 schrieb David Miller:
>>> You have to submit this series properly, the same problem happend twice
>>> now.
>>>
>>> When you submit a series you should:
>>>
>>> 1) Make it clear which tree you expect these changes to be applied
>>> to. Here it is completely ambiguous, do you want it to go into
>>> my networking tree or some other subsystem tree?
>>>
>>> 2) You MUST keep all parties informed about all patches for a series
>>> like this. That means you cannot drop netdev from patch #4 as
>>> you did both times. Doing this aggravates the situation for
>>> #1 even more, because if a patch is not CC:'d to netdev it does
>>> not enter patchwork. And if it doesn't go into patchwork, I'm
>>> not looking at it.
>>
>> I guess that is some unfortunate result of git send-email combined with
>> get_maintainer.pl . In general I also prefer to see the whole series, but have
>> gotten such partial series from other maintainers as well in the past, so it
>> seems to be depending on preferences somewhat.
>>
>> For the series at hand, the 4th patch is the devicetree addition, which the
>> expected way is me picking it up, after you are comfortable with the code-
>> related changes.
>
> Why would it not be appropriate for a DT file change to go into my tree
> if it corresponds to functionality created by the rest of the patches
> in the series?
Because the DT change is very likely to conflict with other DT changes.
That's why typically all DT changes go in through the platform/architecture
maintainer.
> It looks better to put it all together as a unit, via one series, with
> a merge commit containing your "[PATCH 0/N]" description in the commit
> message.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Rob Herring <robh+dt@kernel.org> |
|---|---|
| Date | 2015-12-30 16:10 +0100 |
| Message-ID | <qLqxY-8eS-15@gated-at.bofh.it> |
| In reply to | #1299294 |
On Wed, Dec 30, 2015 at 4:17 AM, Geert Uytterhoeven <geert@linux-m68k.org> wrote: > Hi David, > > On Wed, Dec 30, 2015 at 2:48 AM, David Miller <davem@davemloft.net> wrote: >> From: Heiko Stübner <heiko@sntech.de> >> Date: Tue, 29 Dec 2015 23:27:55 +0100 >>> Am Dienstag, 29. Dezember 2015, 15:53:14 schrieb David Miller: >>>> You have to submit this series properly, the same problem happend twice >>>> now. >>>> >>>> When you submit a series you should: >>>> >>>> 1) Make it clear which tree you expect these changes to be applied >>>> to. Here it is completely ambiguous, do you want it to go into >>>> my networking tree or some other subsystem tree? >>>> >>>> 2) You MUST keep all parties informed about all patches for a series >>>> like this. That means you cannot drop netdev from patch #4 as >>>> you did both times. Doing this aggravates the situation for >>>> #1 even more, because if a patch is not CC:'d to netdev it does >>>> not enter patchwork. And if it doesn't go into patchwork, I'm >>>> not looking at it. >>> >>> I guess that is some unfortunate result of git send-email combined with >>> get_maintainer.pl . In general I also prefer to see the whole series, but have >>> gotten such partial series from other maintainers as well in the past, so it >>> seems to be depending on preferences somewhat. >>> >>> For the series at hand, the 4th patch is the devicetree addition, which the >>> expected way is me picking it up, after you are comfortable with the code- >>> related changes. >> >> Why would it not be appropriate for a DT file change to go into my tree >> if it corresponds to functionality created by the rest of the patches >> in the series? > > Because the DT change is very likely to conflict with other DT changes. > That's why typically all DT changes go in through the platform/architecture > maintainer. I assume you mean DTS changes only here. Send the DTS changes as a separate series/patch as there is not inter-dependency (if there is, there is a problem with the change) with DTS changes. I expect the sub-arch maintainers to be the main reviewers of DTS files anyway. If there is a binding doc change, then I'd prefer that to be merged with the driver. Rob -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web