From: shawnguo@kernel.org (Shawn Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 2/5] ARM: imx: add enet init for i.MX7D platform
Date: Sun, 6 Sep 2015 20:37:50 +0800 [thread overview]
Message-ID: <20150906123750.GW30746@tiger> (raw)
In-Reply-To: <1440386992-6775-3-git-send-email-b38611@freescale.com>
On Mon, Aug 24, 2015 at 11:29:49AM +0800, Fugang Duan wrote:
> Add enet phy fixup, clock source init for i.MX7D platform.
>
> Signed-off-by: Fugang Duan <B38611@freescale.com>
> ---
> arch/arm/mach-imx/mach-imx7d.c | 76 ++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 74 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-imx/mach-imx7d.c b/arch/arm/mach-imx/mach-imx7d.c
> index 4d4a190..07e9a7e 100644
> --- a/arch/arm/mach-imx/mach-imx7d.c
> +++ b/arch/arm/mach-imx/mach-imx7d.c
> @@ -5,13 +5,84 @@
> * it under the terms of the GNU General Public License version 2 as
> * published by the Free Software Foundation.
> */
> -#include <linux/irqchip.h>
> -#include <linux/of_platform.h>
> #include <asm/mach/arch.h>
> #include <asm/mach/map.h>
> +#include <linux/irqchip.h>
> +#include <linux/mfd/syscon.h>
> +#include <linux/mfd/syscon/imx7-iomuxc-gpr.h>
> +#include <linux/of_platform.h>
> +#include <linux/phy.h>
> +#include <linux/regmap.h>
>
> #include "common.h"
Please arrange the headers like below:
#include <linux/irqchip.h>
#include <linux/mfd/syscon.h>
#include <linux/mfd/syscon/imx7-iomuxc-gpr.h>
#include <linux/of_platform.h>
#include <linux/phy.h>
#include <linux/regmap.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include "common.h"
>
> +static int ar8031_phy_fixup(struct phy_device *dev)
> +{
> + u16 val;
> +
> + /* Set RGMII IO voltage to 1.8V */
> + phy_write(dev, 0x1d, 0x1f);
> + phy_write(dev, 0x1e, 0x8);
> +
> + /* disable phy AR8031 SmartEEE function. */
> + phy_write(dev, 0xd, 0x3);
> + phy_write(dev, 0xe, 0x805d);
> + phy_write(dev, 0xd, 0x4003);
> + val = phy_read(dev, 0xe);
> + val &= ~(0x1 << 8);
> + phy_write(dev, 0xe, val);
> +
> + /* introduce tx clock delay */
> + phy_write(dev, 0x1d, 0x5);
> + val = phy_read(dev, 0x1e);
> + val |= 0x0100;
> + phy_write(dev, 0x1e, val);
> +
> + return 0;
> +}
> +
> +static int bcm54220_phy_fixup(struct phy_device *dev)
> +{
> + /* enable RXC skew select RGMII copper mode */
> + phy_write(dev, 0x1e, 0x21);
> + phy_write(dev, 0x1f, 0x7ea8);
> + phy_write(dev, 0x1e, 0x2f);
> + phy_write(dev, 0x1f, 0x71b7);
> +
> + return 0;
> +}
> +
> +#define PHY_ID_AR8031 0x004dd074
> +#define PHY_ID_BCM54220 0x600d8589
Have a blank line here.
Shawn
> +static void __init imx7d_enet_phy_init(void)
> +{
> + if (IS_BUILTIN(CONFIG_PHYLIB)) {
> + phy_register_fixup_for_uid(PHY_ID_AR8031, 0xffffffff,
> + ar8031_phy_fixup);
> + phy_register_fixup_for_uid(PHY_ID_BCM54220, 0xffffffff,
> + bcm54220_phy_fixup);
> + }
> +}
> +
> +static void __init imx7d_enet_clk_sel(void)
> +{
> + struct regmap *gpr;
> +
> + gpr = syscon_regmap_lookup_by_compatible("fsl,imx7d-iomuxc-gpr");
> + if (!IS_ERR(gpr)) {
> + regmap_update_bits(gpr, IOMUXC_GPR1, IMX7D_GPR1_ENET_TX_CLK_SEL_MASK, 0);
> + regmap_update_bits(gpr, IOMUXC_GPR1, IMX7D_GPR1_ENET_CLK_DIR_MASK, 0);
> + } else {
> + pr_err("failed to find fsl,imx7d-iomux-gpr regmap\n");
> + }
> +}
> +
> +static inline void imx7d_enet_init(void)
> +{
> + imx7d_enet_phy_init();
> + imx7d_enet_clk_sel();
> +}
> +
> static void __init imx7d_init_machine(void)
> {
> struct device *parent;
> @@ -22,6 +93,7 @@ static void __init imx7d_init_machine(void)
>
> of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> imx_anatop_init();
> + imx7d_enet_init();
> }
>
> static void __init imx7d_init_irq(void)
> --
> 1.9.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2015-09-06 12:37 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-24 3:29 [PATCH v2 0/5] Add fec1 and fec2 support for i.MX7d sdb board Fugang Duan
2015-08-24 3:29 ` [PATCH v2 1/5] ARM: imx7d: add imx7d iomux-gpr field define Fugang Duan
2015-09-06 12:33 ` Shawn Guo
2015-09-07 2:20 ` Duan Andy
2015-08-24 3:29 ` [PATCH v2 2/5] ARM: imx: add enet init for i.MX7D platform Fugang Duan
2015-09-06 12:37 ` Shawn Guo [this message]
2015-09-07 2:21 ` Duan Andy
2015-08-24 3:29 ` [PATCH v2 3/5] ARM: dts: imx: pinfunc: add GPIO1 pin define for i.MX7d Fugang Duan
2015-09-06 13:08 ` Shawn Guo
2015-09-07 2:23 ` Duan Andy
2015-08-24 3:29 ` [PATCH v2 4/5] ARM: dts: imx7d: add fec1 and fec2 support for i.MX7d soc Fugang Duan
2015-08-24 3:29 ` [PATCH v2 5/5] ARM: dts: imx7d-sdb: add fec1 and fec2 support Fugang Duan
2015-09-06 13:11 ` [PATCH v2 0/5] Add fec1 and fec2 support for i.MX7d sdb board Shawn Guo
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=20150906123750.GW30746@tiger \
--to=shawnguo@kernel.org \
--cc=linux-arm-kernel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.