| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (c) 2014-2015 Hisilicon Limited. |
|---|
| 3 | | - * |
|---|
| 4 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 5 | | - * it under the terms of the GNU General Public License as published by |
|---|
| 6 | | - * the Free Software Foundation; either version 2 of the License, or |
|---|
| 7 | | - * (at your option) any later version. |
|---|
| 8 | 4 | */ |
|---|
| 9 | 5 | |
|---|
| 10 | 6 | #include <linux/acpi.h> |
|---|
| .. | .. |
|---|
| 39 | 35 | }; |
|---|
| 40 | 36 | |
|---|
| 41 | 37 | struct hns_mdio_device { |
|---|
| 42 | | - void *vbase; /* mdio reg base address */ |
|---|
| 38 | + u8 __iomem *vbase; /* mdio reg base address */ |
|---|
| 43 | 39 | struct regmap *subctrl_vbase; |
|---|
| 44 | 40 | struct hns_mdio_sc_reg sc_reg; |
|---|
| 45 | 41 | }; |
|---|
| .. | .. |
|---|
| 96 | 92 | #define MDIO_SC_CLK_ST 0x531C |
|---|
| 97 | 93 | #define MDIO_SC_RESET_ST 0x5A1C |
|---|
| 98 | 94 | |
|---|
| 99 | | -static void mdio_write_reg(void *base, u32 reg, u32 value) |
|---|
| 95 | +static void mdio_write_reg(u8 __iomem *base, u32 reg, u32 value) |
|---|
| 100 | 96 | { |
|---|
| 101 | | - u8 __iomem *reg_addr = (u8 __iomem *)base; |
|---|
| 102 | | - |
|---|
| 103 | | - writel_relaxed(value, reg_addr + reg); |
|---|
| 97 | + writel_relaxed(value, base + reg); |
|---|
| 104 | 98 | } |
|---|
| 105 | 99 | |
|---|
| 106 | 100 | #define MDIO_WRITE_REG(a, reg, value) \ |
|---|
| 107 | 101 | mdio_write_reg((a)->vbase, (reg), (value)) |
|---|
| 108 | 102 | |
|---|
| 109 | | -static u32 mdio_read_reg(void *base, u32 reg) |
|---|
| 103 | +static u32 mdio_read_reg(u8 __iomem *base, u32 reg) |
|---|
| 110 | 104 | { |
|---|
| 111 | | - u8 __iomem *reg_addr = (u8 __iomem *)base; |
|---|
| 112 | | - |
|---|
| 113 | | - return readl_relaxed(reg_addr + reg); |
|---|
| 105 | + return readl_relaxed(base + reg); |
|---|
| 114 | 106 | } |
|---|
| 115 | 107 | |
|---|
| 116 | 108 | #define mdio_set_field(origin, mask, shift, val) \ |
|---|
| .. | .. |
|---|
| 121 | 113 | |
|---|
| 122 | 114 | #define mdio_get_field(origin, mask, shift) (((origin) >> (shift)) & (mask)) |
|---|
| 123 | 115 | |
|---|
| 124 | | -static void mdio_set_reg_field(void *base, u32 reg, u32 mask, u32 shift, |
|---|
| 116 | +static void mdio_set_reg_field(u8 __iomem *base, u32 reg, u32 mask, u32 shift, |
|---|
| 125 | 117 | u32 val) |
|---|
| 126 | 118 | { |
|---|
| 127 | 119 | u32 origin = mdio_read_reg(base, reg); |
|---|
| .. | .. |
|---|
| 133 | 125 | #define MDIO_SET_REG_FIELD(dev, reg, mask, shift, val) \ |
|---|
| 134 | 126 | mdio_set_reg_field((dev)->vbase, (reg), (mask), (shift), (val)) |
|---|
| 135 | 127 | |
|---|
| 136 | | -static u32 mdio_get_reg_field(void *base, u32 reg, u32 mask, u32 shift) |
|---|
| 128 | +static u32 mdio_get_reg_field(u8 __iomem *base, u32 reg, u32 mask, u32 shift) |
|---|
| 137 | 129 | { |
|---|
| 138 | 130 | u32 origin; |
|---|
| 139 | 131 | |
|---|
| .. | .. |
|---|
| 218 | 210 | * @bus: mdio bus |
|---|
| 219 | 211 | * @phy_id: phy id |
|---|
| 220 | 212 | * @regnum: register num |
|---|
| 221 | | - * @value: register value |
|---|
| 213 | + * @data: register value |
|---|
| 222 | 214 | * |
|---|
| 223 | 215 | * Return 0 on success, negative on failure |
|---|
| 224 | 216 | */ |
|---|
| .. | .. |
|---|
| 281 | 273 | * @bus: mdio bus |
|---|
| 282 | 274 | * @phy_id: phy id |
|---|
| 283 | 275 | * @regnum: register num |
|---|
| 284 | | - * @value: register value |
|---|
| 285 | 276 | * |
|---|
| 286 | 277 | * Return phy register value |
|---|
| 287 | 278 | */ |
|---|
| .. | .. |
|---|
| 429 | 420 | { |
|---|
| 430 | 421 | struct hns_mdio_device *mdio_dev; |
|---|
| 431 | 422 | struct mii_bus *new_bus; |
|---|
| 432 | | - struct resource *res; |
|---|
| 433 | 423 | int ret = -ENODEV; |
|---|
| 434 | 424 | |
|---|
| 435 | 425 | if (!pdev) { |
|---|
| .. | .. |
|---|
| 454 | 444 | new_bus->priv = mdio_dev; |
|---|
| 455 | 445 | new_bus->parent = &pdev->dev; |
|---|
| 456 | 446 | |
|---|
| 457 | | - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
|---|
| 458 | | - mdio_dev->vbase = devm_ioremap_resource(&pdev->dev, res); |
|---|
| 447 | + mdio_dev->vbase = devm_platform_ioremap_resource(pdev, 0); |
|---|
| 459 | 448 | if (IS_ERR(mdio_dev->vbase)) { |
|---|
| 460 | 449 | ret = PTR_ERR(mdio_dev->vbase); |
|---|
| 461 | 450 | return ret; |
|---|