dwmac 27 drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c struct meson_dwmac *dwmac = priv; dwmac 30 drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c val = readl(dwmac->reg); dwmac 41 drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c writel(val, dwmac->reg); dwmac 48 drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c struct meson_dwmac *dwmac; dwmac 59 drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL); dwmac 60 drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c if (!dwmac) { dwmac 65 drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c dwmac->reg = devm_platform_ioremap_resource(pdev, 1); dwmac 66 drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c if (IS_ERR(dwmac->reg)) { dwmac 67 drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c ret = PTR_ERR(dwmac->reg); dwmac 71 drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c plat_dat->bsp_priv = dwmac; dwmac 52 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c int (*set_phy_mode)(struct meson8b_dwmac *dwmac); dwmac 72 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c static void meson8b_dwmac_mask_bits(struct meson8b_dwmac *dwmac, u32 reg, dwmac 77 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c data = readl(dwmac->regs + reg); dwmac 81 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c writel(data, dwmac->regs + reg); dwmac 84 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c static struct clk *meson8b_dwmac_register_clk(struct meson8b_dwmac *dwmac, dwmac 94 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c snprintf(clk_name, sizeof(clk_name), "%s#%s", dev_name(dwmac->dev), dwmac 105 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c return devm_clk_register(dwmac->dev, hw); dwmac 108 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c static int meson8b_init_rgmii_tx_clk(struct meson8b_dwmac *dwmac) dwmac 112 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c struct device *dev = dwmac->dev; dwmac 145 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c clk_configs->m250_mux.reg = dwmac->regs + PRG_ETH0; dwmac 148 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c clk = meson8b_dwmac_register_clk(dwmac, "m250_sel", mux_parent_names, dwmac 155 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c clk_configs->m250_div.reg = dwmac->regs + PRG_ETH0; dwmac 161 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c clk = meson8b_dwmac_register_clk(dwmac, "m250_div", &parent_name, 1, dwmac 170 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c clk = meson8b_dwmac_register_clk(dwmac, "fixed_div2", &parent_name, 1, dwmac 177 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c clk_configs->rgmii_tx_en.reg = dwmac->regs + PRG_ETH0; dwmac 179 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c clk = meson8b_dwmac_register_clk(dwmac, "rgmii_tx_en", &parent_name, 1, dwmac 185 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dwmac->rgmii_tx_clk = clk; dwmac 190 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c static int meson8b_set_phy_mode(struct meson8b_dwmac *dwmac) dwmac 192 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c switch (dwmac->phy_mode) { dwmac 198 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c meson8b_dwmac_mask_bits(dwmac, PRG_ETH0, dwmac 204 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c meson8b_dwmac_mask_bits(dwmac, PRG_ETH0, dwmac 208 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dev_err(dwmac->dev, "fail to set phy-mode %s\n", dwmac 209 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c phy_modes(dwmac->phy_mode)); dwmac 216 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c static int meson_axg_set_phy_mode(struct meson8b_dwmac *dwmac) dwmac 218 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c switch (dwmac->phy_mode) { dwmac 224 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c meson8b_dwmac_mask_bits(dwmac, PRG_ETH0, dwmac 230 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c meson8b_dwmac_mask_bits(dwmac, PRG_ETH0, dwmac 235 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dev_err(dwmac->dev, "fail to set phy-mode %s\n", dwmac 236 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c phy_modes(dwmac->phy_mode)); dwmac 243 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c static int meson8b_init_prg_eth(struct meson8b_dwmac *dwmac) dwmac 248 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c switch (dwmac->phy_mode) { dwmac 255 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c tx_dly_val = dwmac->tx_delay_ns >> 1; dwmac 261 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c meson8b_dwmac_mask_bits(dwmac, PRG_ETH0, dwmac 264 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c meson8b_dwmac_mask_bits(dwmac, PRG_ETH0, PRG_ETH0_TXDLY_MASK, dwmac 272 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c ret = clk_set_rate(dwmac->rgmii_tx_clk, 125 * 1000 * 1000); dwmac 274 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dev_err(dwmac->dev, dwmac 279 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c ret = clk_prepare_enable(dwmac->rgmii_tx_clk); dwmac 281 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dev_err(dwmac->dev, dwmac 286 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c devm_add_action_or_reset(dwmac->dev, dwmac 288 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dwmac->rgmii_tx_clk); dwmac 293 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c meson8b_dwmac_mask_bits(dwmac, PRG_ETH0, dwmac 298 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c meson8b_dwmac_mask_bits(dwmac, PRG_ETH0, PRG_ETH0_TXDLY_MASK, dwmac 304 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dev_err(dwmac->dev, "unsupported phy-mode %s\n", dwmac 305 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c phy_modes(dwmac->phy_mode)); dwmac 310 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c meson8b_dwmac_mask_bits(dwmac, PRG_ETH0, PRG_ETH0_TX_AND_PHY_REF_CLK, dwmac 320 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c struct meson8b_dwmac *dwmac; dwmac 331 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL); dwmac 332 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c if (!dwmac) { dwmac 337 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dwmac->data = (const struct meson8b_dwmac_data *) dwmac 339 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c if (!dwmac->data) { dwmac 343 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dwmac->regs = devm_platform_ioremap_resource(pdev, 1); dwmac 344 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c if (IS_ERR(dwmac->regs)) { dwmac 345 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c ret = PTR_ERR(dwmac->regs); dwmac 349 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dwmac->dev = &pdev->dev; dwmac 350 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dwmac->phy_mode = of_get_phy_mode(pdev->dev.of_node); dwmac 351 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c if ((int)dwmac->phy_mode < 0) { dwmac 359 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c &dwmac->tx_delay_ns)) dwmac 360 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c dwmac->tx_delay_ns = 2; dwmac 362 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c ret = meson8b_init_rgmii_tx_clk(dwmac); dwmac 366 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c ret = dwmac->data->set_phy_mode(dwmac); dwmac 370 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c ret = meson8b_init_prg_eth(dwmac); dwmac 374 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c plat_dat->bsp_priv = dwmac; dwmac 59 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c struct oxnas_dwmac *dwmac = priv; dwmac 64 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c ret = device_reset(dwmac->dev); dwmac 68 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c ret = clk_prepare_enable(dwmac->clk); dwmac 72 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c ret = regmap_read(dwmac->regmap, OXNAS_DWMAC_CTRL_REGOFFSET, &value); dwmac 74 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c clk_disable_unprepare(dwmac->clk); dwmac 91 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c regmap_write(dwmac->regmap, OXNAS_DWMAC_CTRL_REGOFFSET, value); dwmac 98 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c regmap_write(dwmac->regmap, OXNAS_DWMAC_DELAY_REGOFFSET, value); dwmac 105 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c struct oxnas_dwmac *dwmac = priv; dwmac 107 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c clk_disable_unprepare(dwmac->clk); dwmac 114 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c struct oxnas_dwmac *dwmac; dwmac 125 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL); dwmac 126 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c if (!dwmac) { dwmac 131 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c dwmac->dev = &pdev->dev; dwmac 132 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c plat_dat->bsp_priv = dwmac; dwmac 136 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c dwmac->regmap = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, dwmac 138 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c if (IS_ERR(dwmac->regmap)) { dwmac 140 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c ret = PTR_ERR(dwmac->regmap); dwmac 144 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c dwmac->clk = devm_clk_get(&pdev->dev, "gmac"); dwmac 145 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c if (IS_ERR(dwmac->clk)) { dwmac 146 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c ret = PTR_ERR(dwmac->clk); dwmac 63 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c struct socfpga_dwmac *dwmac = (struct socfpga_dwmac *)priv; dwmac 64 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c void __iomem *splitter_base = dwmac->splitter_base; dwmac 65 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c void __iomem *tse_pcs_base = dwmac->pcs.tse_pcs_base; dwmac 66 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c void __iomem *sgmii_adapter_base = dwmac->pcs.sgmii_adapter_base; dwmac 67 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c struct device *dev = dwmac->dev; dwmac 97 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c tse_pcs_fix_mac_speed(&dwmac->pcs, phy_dev, speed); dwmac 100 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c static int socfpga_dwmac_parse_data(struct socfpga_dwmac *dwmac, struct device *dev) dwmac 131 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->f2h_ptp_ref_clk = of_property_read_bool(np, "altr,f2h_ptp_ref_clk"); dwmac 142 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->splitter_base = devm_ioremap_resource(dev, &res_splitter); dwmac 143 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (IS_ERR(dwmac->splitter_base)) { dwmac 145 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c return PTR_ERR(dwmac->splitter_base); dwmac 165 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->splitter_base = dwmac 168 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (IS_ERR(dwmac->splitter_base)) { dwmac 169 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c ret = PTR_ERR(dwmac->splitter_base); dwmac 187 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->pcs.sgmii_adapter_base = dwmac 190 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (IS_ERR(dwmac->pcs.sgmii_adapter_base)) { dwmac 191 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c ret = PTR_ERR(dwmac->pcs.sgmii_adapter_base); dwmac 209 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->pcs.tse_pcs_base = dwmac 212 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (IS_ERR(dwmac->pcs.tse_pcs_base)) { dwmac 213 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c ret = PTR_ERR(dwmac->pcs.tse_pcs_base); dwmac 218 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->reg_offset = reg_offset; dwmac 219 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->reg_shift = reg_shift; dwmac 220 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->sys_mgr_base_addr = sys_mgr_base_addr; dwmac 221 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->dev = dev; dwmac 231 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c static int socfpga_get_plat_phymode(struct socfpga_dwmac *dwmac) dwmac 233 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c struct net_device *ndev = dev_get_drvdata(dwmac->dev); dwmac 262 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c static int socfpga_gen5_set_phy_mode(struct socfpga_dwmac *dwmac) dwmac 264 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c struct regmap *sys_mgr_base_addr = dwmac->sys_mgr_base_addr; dwmac 265 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c int phymode = socfpga_get_plat_phymode(dwmac); dwmac 266 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c u32 reg_offset = dwmac->reg_offset; dwmac 267 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c u32 reg_shift = dwmac->reg_shift; dwmac 271 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dev_err(dwmac->dev, "bad phy mode %d\n", phymode); dwmac 279 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (dwmac->splitter_base) dwmac 283 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c reset_control_assert(dwmac->stmmac_ocp_rst); dwmac 284 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c reset_control_assert(dwmac->stmmac_rst); dwmac 290 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (dwmac->f2h_ptp_ref_clk || dwmac 301 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (dwmac->f2h_ptp_ref_clk) dwmac 312 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c reset_control_deassert(dwmac->stmmac_ocp_rst); dwmac 313 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c reset_control_deassert(dwmac->stmmac_rst); dwmac 315 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (tse_pcs_init(dwmac->pcs.tse_pcs_base, &dwmac->pcs) != 0) { dwmac 316 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dev_err(dwmac->dev, "Unable to initialize TSE PCS"); dwmac 324 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c static int socfpga_gen10_set_phy_mode(struct socfpga_dwmac *dwmac) dwmac 326 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c struct regmap *sys_mgr_base_addr = dwmac->sys_mgr_base_addr; dwmac 327 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c int phymode = socfpga_get_plat_phymode(dwmac); dwmac 328 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c u32 reg_offset = dwmac->reg_offset; dwmac 329 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c u32 reg_shift = dwmac->reg_shift; dwmac 339 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (dwmac->splitter_base) dwmac 343 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c reset_control_assert(dwmac->stmmac_ocp_rst); dwmac 344 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c reset_control_assert(dwmac->stmmac_rst); dwmac 350 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (dwmac->f2h_ptp_ref_clk || dwmac 369 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c reset_control_deassert(dwmac->stmmac_ocp_rst); dwmac 370 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c reset_control_deassert(dwmac->stmmac_rst); dwmac 372 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (tse_pcs_init(dwmac->pcs.tse_pcs_base, &dwmac->pcs) != 0) { dwmac 373 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dev_err(dwmac->dev, "Unable to initialize TSE PCS"); dwmac 386 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c struct socfpga_dwmac *dwmac; dwmac 405 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac = devm_kzalloc(dev, sizeof(*dwmac), GFP_KERNEL); dwmac 406 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (!dwmac) { dwmac 411 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->stmmac_ocp_rst = devm_reset_control_get_optional(dev, "stmmaceth-ocp"); dwmac 412 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c if (IS_ERR(dwmac->stmmac_ocp_rst)) { dwmac 413 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c ret = PTR_ERR(dwmac->stmmac_ocp_rst); dwmac 418 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c reset_control_deassert(dwmac->stmmac_ocp_rst); dwmac 420 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c ret = socfpga_dwmac_parse_data(dwmac, dev); dwmac 426 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->ops = ops; dwmac 427 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c plat_dat->bsp_priv = dwmac; dwmac 441 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c dwmac->stmmac_rst = stpriv->plat->stmmac_rst; dwmac 443 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c ret = ops->set_phy_mode(dwmac); dwmac 162 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c struct sti_dwmac *dwmac = priv; dwmac 163 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c u32 src = dwmac->tx_retime_src; dwmac 164 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c u32 reg = dwmac->ctrl_reg; dwmac 167 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c if (dwmac->interface == PHY_INTERFACE_MODE_MII) { dwmac 169 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c } else if (dwmac->interface == PHY_INTERFACE_MODE_RMII) { dwmac 170 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c if (dwmac->ext_phyclk) { dwmac 176 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c } else if (IS_PHY_IF_MODE_RGMII(dwmac->interface)) { dwmac 191 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c clk_set_rate(dwmac->clk, freq); dwmac 193 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c regmap_update_bits(dwmac->regmap, reg, STIH4XX_RETIME_SRC_MASK, dwmac 199 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c struct sti_dwmac *dwmac = priv; dwmac 200 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c u32 reg = dwmac->ctrl_reg; dwmac 204 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c if (dwmac->interface == PHY_INTERFACE_MODE_MII) { dwmac 206 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c } else if (dwmac->interface == PHY_INTERFACE_MODE_RMII) { dwmac 207 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c if (!dwmac->ext_phyclk) { dwmac 211 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c } else if (IS_PHY_IF_MODE_RGMII(dwmac->interface)) { dwmac 222 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c clk_set_rate(dwmac->clk, freq); dwmac 224 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c regmap_update_bits(dwmac->regmap, reg, STID127_RETIME_SRC_MASK, val); dwmac 227 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c static int sti_dwmac_set_mode(struct sti_dwmac *dwmac) dwmac 229 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c struct regmap *regmap = dwmac->regmap; dwmac 230 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c int iface = dwmac->interface; dwmac 231 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c u32 reg = dwmac->ctrl_reg; dwmac 234 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c if (dwmac->gmac_en) dwmac 242 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->fix_retime_src(dwmac, dwmac->speed); dwmac 247 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c static int sti_dwmac_parse_data(struct sti_dwmac *dwmac, dwmac 257 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->clk_sel_reg = -ENXIO; dwmac 260 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->clk_sel_reg = res->start; dwmac 266 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c err = of_property_read_u32_index(np, "st,syscon", 1, &dwmac->ctrl_reg); dwmac 272 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->interface = of_get_phy_mode(np); dwmac 273 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->regmap = regmap; dwmac 274 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->gmac_en = of_property_read_bool(np, "st,gmac_en"); dwmac 275 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->ext_phyclk = of_property_read_bool(np, "st,ext-phyclk"); dwmac 276 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->tx_retime_src = TX_RETIME_SRC_NA; dwmac 277 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->speed = SPEED_100; dwmac 279 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c if (IS_PHY_IF_MODE_GBIT(dwmac->interface)) { dwmac 282 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->tx_retime_src = TX_RETIME_SRC_CLKGEN; dwmac 289 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->tx_retime_src = TX_RETIME_SRC_CLK_125; dwmac 291 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->tx_retime_src = TX_RETIME_SRC_TXCLK; dwmac 293 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->speed = SPEED_1000; dwmac 296 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->clk = devm_clk_get(dev, "sti-ethclk"); dwmac 297 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c if (IS_ERR(dwmac->clk)) { dwmac 299 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->clk = NULL; dwmac 310 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c struct sti_dwmac *dwmac; dwmac 327 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL); dwmac 328 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c if (!dwmac) { dwmac 333 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c ret = sti_dwmac_parse_data(dwmac, pdev); dwmac 339 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c dwmac->fix_retime_src = data->fix_retime_src; dwmac 341 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c plat_dat->bsp_priv = dwmac; dwmac 344 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c ret = clk_prepare_enable(dwmac->clk); dwmac 348 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c ret = sti_dwmac_set_mode(dwmac); dwmac 359 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c clk_disable_unprepare(dwmac->clk); dwmac 368 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c struct sti_dwmac *dwmac = get_stmmac_bsp_priv(&pdev->dev); dwmac 371 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c clk_disable_unprepare(dwmac->clk); dwmac 379 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c struct sti_dwmac *dwmac = get_stmmac_bsp_priv(dev); dwmac 382 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c clk_disable_unprepare(dwmac->clk); dwmac 389 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c struct sti_dwmac *dwmac = get_stmmac_bsp_priv(dev); dwmac 391 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c clk_prepare_enable(dwmac->clk); dwmac 392 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c sti_dwmac_set_mode(dwmac); dwmac 108 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c int (*clk_prepare)(struct stm32_dwmac *dwmac, bool prepare); dwmac 109 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c int (*suspend)(struct stm32_dwmac *dwmac); dwmac 110 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c void (*resume)(struct stm32_dwmac *dwmac); dwmac 111 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c int (*parse_data)(struct stm32_dwmac *dwmac, dwmac 118 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c struct stm32_dwmac *dwmac = plat_dat->bsp_priv; dwmac 121 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->ops->set_mode) { dwmac 122 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c ret = dwmac->ops->set_mode(plat_dat); dwmac 127 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c ret = clk_prepare_enable(dwmac->clk_tx); dwmac 131 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (!dwmac->dev->power.is_suspended) { dwmac 132 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c ret = clk_prepare_enable(dwmac->clk_rx); dwmac 134 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->clk_tx); dwmac 139 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->ops->clk_prepare) { dwmac 140 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c ret = dwmac->ops->clk_prepare(dwmac, true); dwmac 142 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->clk_rx); dwmac 143 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->clk_tx); dwmac 150 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c static int stm32mp1_clk_prepare(struct stm32_dwmac *dwmac, bool prepare) dwmac 155 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c ret = clk_prepare_enable(dwmac->syscfg_clk); dwmac 159 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->clk_eth_ck) { dwmac 160 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c ret = clk_prepare_enable(dwmac->clk_eth_ck); dwmac 162 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->syscfg_clk); dwmac 167 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->syscfg_clk); dwmac 168 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->clk_eth_ck) dwmac 169 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->clk_eth_ck); dwmac 176 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c struct stm32_dwmac *dwmac = plat_dat->bsp_priv; dwmac 177 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c u32 reg = dwmac->mode_reg; dwmac 187 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->eth_clk_sel_reg) dwmac 193 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->eth_ref_clk_sel_reg) dwmac 202 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->eth_clk_sel_reg) dwmac 214 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c ret = regmap_write(dwmac->regmap, reg + SYSCFG_PMCCLRR_OFFSET, dwmac 215 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->ops->syscfg_eth_mask); dwmac 218 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c return regmap_update_bits(dwmac->regmap, reg, dwmac 219 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->ops->syscfg_eth_mask, val); dwmac 224 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c struct stm32_dwmac *dwmac = plat_dat->bsp_priv; dwmac 225 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c u32 reg = dwmac->mode_reg; dwmac 244 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c return regmap_update_bits(dwmac->regmap, reg, dwmac 245 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->ops->syscfg_eth_mask, val << 23); dwmac 248 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c static void stm32_dwmac_clk_disable(struct stm32_dwmac *dwmac) dwmac 250 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->clk_tx); dwmac 251 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->clk_rx); dwmac 253 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->ops->clk_prepare) dwmac 254 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->ops->clk_prepare(dwmac, false); dwmac 257 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c static int stm32_dwmac_parse_data(struct stm32_dwmac *dwmac, dwmac 264 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->clk_tx = devm_clk_get(dev, "mac-clk-tx"); dwmac 265 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (IS_ERR(dwmac->clk_tx)) { dwmac 267 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c return PTR_ERR(dwmac->clk_tx); dwmac 270 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->clk_rx = devm_clk_get(dev, "mac-clk-rx"); dwmac 271 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (IS_ERR(dwmac->clk_rx)) { dwmac 273 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c return PTR_ERR(dwmac->clk_rx); dwmac 276 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->ops->parse_data) { dwmac 277 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c err = dwmac->ops->parse_data(dwmac, dev); dwmac 283 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->regmap = syscon_regmap_lookup_by_phandle(np, "st,syscon"); dwmac 284 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (IS_ERR(dwmac->regmap)) dwmac 285 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c return PTR_ERR(dwmac->regmap); dwmac 287 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c err = of_property_read_u32_index(np, "st,syscon", 1, &dwmac->mode_reg); dwmac 294 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c static int stm32mp1_parse_data(struct stm32_dwmac *dwmac, dwmac 302 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->eth_clk_sel_reg = of_property_read_bool(np, "st,eth-clk-sel"); dwmac 305 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->eth_ref_clk_sel_reg = dwmac 309 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->clk_eth_ck = devm_clk_get(dev, "eth-ck"); dwmac 310 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (IS_ERR(dwmac->clk_eth_ck)) { dwmac 312 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->clk_eth_ck = NULL; dwmac 316 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->clk_ethstp = devm_clk_get(dev, "ethstp"); dwmac 317 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (IS_ERR(dwmac->clk_ethstp)) { dwmac 320 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c return PTR_ERR(dwmac->clk_ethstp); dwmac 324 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->syscfg_clk = devm_clk_get(dev, "syscfg-clk"); dwmac 325 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (IS_ERR(dwmac->syscfg_clk)) { dwmac 327 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c return PTR_ERR(dwmac->syscfg_clk); dwmac 333 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->irq_pwr_wakeup = platform_get_irq_byname(pdev, dwmac 335 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->irq_pwr_wakeup == -EPROBE_DEFER) dwmac 338 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (!dwmac->clk_eth_ck && dwmac->irq_pwr_wakeup >= 0) { dwmac 345 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->irq_pwr_wakeup); dwmac 359 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c struct stm32_dwmac *dwmac; dwmac 371 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL); dwmac 372 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (!dwmac) { dwmac 384 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->ops = data; dwmac 385 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->dev = &pdev->dev; dwmac 387 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c ret = stm32_dwmac_parse_data(dwmac, &pdev->dev); dwmac 393 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c plat_dat->bsp_priv = dwmac; dwmac 406 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c stm32_dwmac_clk_disable(dwmac); dwmac 418 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c struct stm32_dwmac *dwmac = priv->plat->bsp_priv; dwmac 422 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->irq_pwr_wakeup >= 0) { dwmac 430 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c static int stm32mp1_suspend(struct stm32_dwmac *dwmac) dwmac 434 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c ret = clk_prepare_enable(dwmac->clk_ethstp); dwmac 438 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->clk_tx); dwmac 439 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->syscfg_clk); dwmac 440 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->clk_eth_ck) dwmac 441 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->clk_eth_ck); dwmac 446 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c static void stm32mp1_resume(struct stm32_dwmac *dwmac) dwmac 448 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->clk_ethstp); dwmac 451 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c static int stm32mcu_suspend(struct stm32_dwmac *dwmac) dwmac 453 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->clk_tx); dwmac 454 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c clk_disable_unprepare(dwmac->clk_rx); dwmac 464 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c struct stm32_dwmac *dwmac = priv->plat->bsp_priv; dwmac 470 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->ops->suspend) dwmac 471 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c ret = dwmac->ops->suspend(dwmac); dwmac 480 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c struct stm32_dwmac *dwmac = priv->plat->bsp_priv; dwmac 483 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c if (dwmac->ops->resume) dwmac 484 drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c dwmac->ops->resume(dwmac);