From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] net: Add ag7xxx driver for Atheros MIPS
Date: Sun, 08 May 2016 17:22:09 +0200 [thread overview]
Message-ID: <572F59A1.4030108@denx.de> (raw)
In-Reply-To: <572F37DE.1060403@gmail.com>
On 05/08/2016 02:58 PM, Daniel Schwierzeck wrote:
Hi!
> Am 05.05.2016 um 21:34 schrieb Marek Vasut:
>> Add ethernet driver for the AR933x and AR934x Atheros MIPS machines.
>> The driver could be easily extended to other WiSoCs.
>>
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
>> Cc: Joe Hershberger <joe.hershberger@ni.com>
>> Cc: Wills Wang <wills.wang@live.com>
>> ---
>> drivers/net/Kconfig | 9 +
>> drivers/net/Makefile | 1 +
>> drivers/net/ag7xxx.c | 982 +++++++++++++++++++++++++++++++++++++++++++++++++++
>> 3 files changed, 992 insertions(+)
>> create mode 100644 drivers/net/ag7xxx.c
>
> Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
>
> nits below
[...]
>> +static void ag7xxx_hw_setup(struct udevice *dev)
>> +{
>> + struct ar7xxx_eth_priv *priv = dev_get_priv(dev);
>> + u32 speed;
>> +
>> + setbits_be32(priv->regs + AG7XXX_ETH_CFG1,
>> + AG7XXX_ETH_CFG1_RX_RST | AG7XXX_ETH_CFG1_TX_RST |
>> + AG7XXX_ETH_CFG1_SOFT_RST);
>
> explicitely using the BE variant is inconsistent because everywhere else
> your are using writel/readl.
This is a BE platform, so I have to use setbits_be*() . I was under the
impression that writel()/readl() are endianness agnostic now, so it's OK
to use those, no ?
> You can also use setbits_32() etc. to avoid
> forcing the endianess. Though it doesn't matter for the generated code
> unless you enable CONFIG_SWAP_IO_SPACE.
Ha, I didn't know we now have endianness-agnostic setbits_*(), nice.
>> +
>> + mdelay(10);
>> +
>> + writel(AG7XXX_ETH_CFG1_RX_EN | AG7XXX_ETH_CFG1_TX_EN,
>> + priv->regs + AG7XXX_ETH_CFG1);
>> +
>> + if (priv->interface == PHY_INTERFACE_MODE_RMII)
>> + speed = AG7XXX_ETH_CFG2_IF_10_100;
>> + else
>> + speed = AG7XXX_ETH_CFG2_IF_1000;
>> +
>> + clrsetbits_be32(priv->regs + AG7XXX_ETH_CFG2,
>> + AG7XXX_ETH_CFG2_IF_SPEED_MASK,
>> + speed | AG7XXX_ETH_CFG2_PAD_CRC_EN |
>> + AG7XXX_ETH_CFG2_LEN_CHECK);
>> +
>> + writel(0xfff0000, priv->regs + AG7XXX_ETH_FIFO_CFG_1);
>> + writel(0x1fff, priv->regs + AG7XXX_ETH_FIFO_CFG_2);
>> +
>> + writel(0x1f00, priv->regs + AG7XXX_ETH_FIFO_CFG_0);
>> + setbits_be32(priv->regs + AG7XXX_ETH_FIFO_CFG_4, 0x3ffff);
>> + writel(0x10ffff, priv->regs + AG7XXX_ETH_FIFO_CFG_1);
>> + writel(0xaaa0555, priv->regs + AG7XXX_ETH_FIFO_CFG_2);
>> + writel(0x7eccf, priv->regs + AG7XXX_ETH_FIFO_CFG_5);
>> + writel(0x1f00140, priv->regs + AG7XXX_ETH_FIFO_CFG_3);
>> +}
[...]
>> +static int ag7xxx_mdio_probe(struct udevice *dev)
>> +{
>> + struct ar7xxx_eth_priv *priv = dev_get_priv(dev);
>> + struct mii_dev *bus = mdio_alloc();
>> +
>> + if (!bus) {
>> + printf("Failed to allocate MDIO bus\n");
>
> isn't debug() better?
I think I will remove the printf() altogether, we ran out of memory, so
we're doomed anyway.
>> + return -ENOMEM;
>> + }
>> +
>> + bus->read = ag7xxx_mdio_read;
>> + bus->write = ag7xxx_mdio_write;
>> + snprintf(bus->name, sizeof(bus->name), dev->name);
>> +
>> + bus->priv = (void *)priv;
>> +
>> + return mdio_register(bus);
>> +}
[...]
Best regards,
Marek Vasut
next prev parent reply other threads:[~2016-05-08 15:22 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-05 19:34 [U-Boot] [PATCH] net: Add ag7xxx driver for Atheros MIPS Marek Vasut
2016-05-08 12:58 ` Daniel Schwierzeck
2016-05-08 15:22 ` Marek Vasut [this message]
2016-05-20 4:18 ` Wills Wang
2016-05-20 11:59 ` Marek Vasut
2016-05-20 16:43 ` Wills Wang
2016-05-20 17:08 ` Marek Vasut
2016-05-21 3:25 ` Wills Wang
2016-05-21 9:29 ` Marek Vasut
2016-05-24 15:15 ` Joe Hershberger
2016-05-24 15:17 ` Marek Vasut
2016-05-24 15:22 ` Marek Vasut
2016-05-21 11:03 ` Wills Wang
2016-05-21 11:37 ` Marek Vasut
2016-05-08 21:25 ` Amit Tomer
2016-05-08 22:09 ` Marek Vasut
-- strict thread matches above, loose matches on Subject: below --
2016-05-24 21:29 Marek Vasut
2016-05-30 10:05 ` Daniel Schwierzeck
2017-06-08 15:04 ` Joe Hershberger
2017-06-09 9:02 ` Marek Vasut
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=572F59A1.4030108@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/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