[PATCH 4/5] netdev/phy: Add driver for Broadcom BCM87XX 10G Ethernet PHYs
Joe Perches
joe at perches.com
Wed May 23 04:17:40 EST 2012
On Tue, 2012-05-22 at 10:59 -0700, David Daney wrote:
> From: David Daney <david.daney at cavium.com>
trivia:
> diff --git a/drivers/net/phy/bcm87xx.c b/drivers/net/phy/bcm87xx.c
[]
> @@ -0,0 +1,237 @@
> +static int bcm87xx_of_reg_init(struct phy_device *phydev)
> +{
> + const __be32 *paddr;
> + int len, i, ret;
> +
> + if (!phydev->dev.of_node)
> + return 0;
> +
> + paddr = of_get_property(phydev->dev.of_node,
> + "broadcom,c45-reg-init", &len);
> + if (!paddr || len < (4 * sizeof(*paddr)))
> + return 0;
> +
> + ret = 0;
> + len /= sizeof(*paddr);
> + for (i = 0; i < len - 3; i += 4) {
> + u16 devid = be32_to_cpup(paddr + i);
> + u16 reg = be32_to_cpup(paddr + i + 1);
> + u16 mask = be32_to_cpup(paddr + i + 2);
> + u16 val_bits = be32_to_cpup(paddr + i + 3);
> + int val;
These might read better as
len /= 4;
for (i = 0; i < len; i++) {
u16 devid = be32_to_cpu(*paddr++);
u16 reg = be32_to_cpu(*paddr++);
u16 mask = be32_to_cpu(*paddr++);
u16 val_bits = be32_to_cpu(*paddr++);
...
}
More information about the devicetree-discuss
mailing list