/linux/arch/arm/boot/dts/broadcom/ |
H A D | bcm958625-meraki-alamo.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 5 * Copyright (C) 2020-2021 Matthew Hagan <mnhagan88@gmail.com> 8 #include "bcm958625-meraki-mx6x-common.dtsi" 12 compatible = "gpio-keys-polled"; 14 poll-interval = <20>; 16 button-reset { 24 compatible = "gpio-leds"; 26 led-0 { 27 /* green:wan1-left */ 29 function-enumerator = <0>; [all …]
|
/linux/Documentation/devicetree/bindings/net/dsa/ |
H A D | qca8k.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - John Crispin <john@phrozen.org> 13 If the QCA8K switch is connect to an SoC's external mdio-bus, each subnode 16 ID. To declare the internal mdio-bus configuration, declare an MDIO node in 18 PHY it is connected to. In this config, an internal mdio-bus is registered and 20 mdio-bus configurations are not supported by the hardware. 27 - enum: 28 - qca,qca8327 [all …]
|
/linux/drivers/phy/freescale/ |
H A D | phy-fsl-lynx-28g.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 /* Copyright (c) 2021-2022 NXP. */ 24 #define LYNX_28G_LNa_PCC_OFFSET(lane) (4 * (LYNX_28G_NUM_LANE - (lane->id) - 1)) 26 /* Per PLL registers */ 27 #define LYNX_28G_PLLnRSTCTL(pll) (0x400 + (pll) * 0x100 + 0x0) argument 31 #define LYNX_28G_PLLnCR0(pll) (0x400 + (pll) * 0x100 + 0x4) argument 39 #define LYNX_28G_PLLnCR1(pll) (0x400 + (pll) * 0x100 + 0x8) argument 134 struct lynx_28g_pll pll[LYNX_28G_NUM_PLL]; member 143 void __iomem *reg = priv->base + off; in lynx_28g_rmw() 153 lynx_28g_rmw((lane)->priv, LYNX_28G_##reg(lane->id), \ [all …]
|
/linux/drivers/phy/xilinx/ |
H A D | phy-zynqmp.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * phy-zynqmp.c - PHY driver for Xilinx ZynqMP GT. 5 * Copyright (C) 2018-2020 Xilinx Inc. 11 * This driver is tested for USB, SGMII, SATA and Display Port currently. 27 #include <dt-bindings/phy/phy.h> 33 /* TX De-emphasis parameters */ 58 /* PLL Test Mode register parameters */ 62 /* PLL SSC step size offsets */ 133 [ICM_PROTOCOL_SGMII] = "SGMII", 184 * struct xpsgtr_ssc - structure to hold SSC settings for a lane [all …]
|
/linux/drivers/net/dsa/qca/ |
H A D | qca8k-8xxx.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * Copyright (C) 2011-2012 Gabor Juhos <juhosg@openwrt.org> 47 ret = bus->write(bus, phy_id, regnum, lo); in qca8k_mii_write_lo() 49 dev_err_ratelimited(&bus->dev, in qca8k_mii_write_lo() 62 ret = bus->write(bus, phy_id, regnum, hi); in qca8k_mii_write_hi() 64 dev_err_ratelimited(&bus->dev, in qca8k_mii_write_hi() 75 ret = bus->read(bus, phy_id, regnum); in qca8k_mii_read_lo() 83 dev_err_ratelimited(&bus->dev, in qca8k_mii_read_lo() 95 ret = bus->read(bus, phy_id, regnum); in qca8k_mii_read_hi() 103 dev_err_ratelimited(&bus->dev, in qca8k_mii_read_hi() [all …]
|
/linux/drivers/net/phy/ |
H A D | bcm54140.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 /* Broadcom BCM54140 Quad SGMII/QSGMII Copper/Fiber Gigabit PHY 13 #include "bcm-phy-lib.h" 15 /* RDB per-port registers 35 #define BCM54140_RDB_C_APWR_APD_MODE_EN 1 /* ADP enable */ 37 #define BCM54140_RDB_C_APWR_APD_MODE_EN_ANEG 3 /* ADP enable w/ aneg */ 45 #define BCM54140_RDB_C_MISC_CTRL_WS_EN BIT(4) /* wirespeed enable */ 60 #define BCM54140_RDB_MON_CTRL_SEL_RR 3 /* meassure all round-robin */ 61 #define BCM54140_RDB_MON_CTRL_PWR_DOWN BIT(0) /* power-down monitor */ 80 * T = 413.35 - (0.49055 * bits[9:0]) [all …]
|
/linux/drivers/phy/marvell/ |
H A D | phy-mvebu-a3700-comphy.c | 1 // SPDX-License-Identifier: GPL-2.0 11 * Structure inspired from phy-mvebu-cp110-comphy.c written by Antoine Tenart. 41 * since the registers are 16-bit. 184 #define COMPHY_PHY_REG(lane, reg) (((1 - (lane)) * 0x28) + ((reg) & 0x3f)) 189 * (used only by SGMII code) 210 * (used only by SGMII code) 301 /*-----------------------------------------------------------*/ 392 priv->lane2_phy_indirect + COMPHY_LANE2_INDIR_ADDR); in comphy_set_indirect() 393 comphy_reg_set(priv->lane2_phy_indirect + COMPHY_LANE2_INDIR_DATA, in comphy_set_indirect() 400 if (lane->id == 2) { in comphy_lane_reg_set() [all …]
|
/linux/drivers/net/dsa/ |
H A D | mt7530.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 15 #define MT7530_MAX_MTU (15 * 1024 - ETH_HLEN - ETH_FCS_LEN - MTK_HDR_LEN) 106 /* Register for 01-80-C2-00-00-[01,02] MAC DA frame control */ 118 /* Register for 01-80-C2-00-00-[03,0E] MAC DA frame control */ 325 /* Register for port port-and-protocol based vlan 1 control */ 430 /* MT7531 SGMII register group */ 431 #define MT7531_SGMII_REG_BASE(p) (0x5000 + ((p) - 5) * 0x1000) 565 /* Registers for RGMII and SGMII PLL clock */ 627 /* LED enable, 0: Disable, 1: Enable (Default) */ 633 /* GPIO output enable, 0: Disable, 1: Enable */ [all …]
|
H A D | mt7530.c | 1 // SPDX-License-Identifier: GPL-2.0-only 80 if (priv->bus) in mt7530_mutex_lock() 81 mutex_lock_nested(&priv->bus->mdio_lock, MDIO_MUTEX_NESTED); in mt7530_mutex_lock() 87 if (priv->bus) in mt7530_mutex_unlock() 88 mutex_unlock(&priv->bus->mdio_lock); in mt7530_mutex_unlock() 94 struct mii_bus *bus = priv->bus; in core_write() 100 ret = bus->write(bus, MT753X_CTRL_PHY_ADDR(priv->mdiodev->addr), in core_write() 106 ret = bus->write(bus, MT753X_CTRL_PHY_ADDR(priv->mdiodev->addr), in core_write() 112 ret = bus->write(bus, MT753X_CTRL_PHY_ADDR(priv->mdiodev->addr), in core_write() 118 ret = bus->write(bus, MT753X_CTRL_PHY_ADDR(priv->mdiodev->addr), in core_write() [all …]
|
/linux/drivers/net/phy/mscc/ |
H A D | mscc_serdes.c | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 25 dev_err(&phydev->mdio.dev, "%s: write error\n", __func__); in pll5g_detune() 39 dev_err(&phydev->mdio.dev, "%s: write error\n", __func__); in pll5g_tune() 56 dev_err(&phydev->mdio.dev, "%s: write error\n", __func__); in vsc85xx_sd6g_pll_cfg_wr() 72 /* qrate = 1 for SGMII, 0 for QSGMII */ in vsc85xx_sd6g_common_cfg_wr() 73 /* if_mode = 1 for SGMII, 3 for QSGMII */ in vsc85xx_sd6g_common_cfg_wr() 85 dev_err(&phydev->mdio.dev, "%s: write error\n", __func__); in vsc85xx_sd6g_common_cfg_wr() 109 dev_err(&phydev->mdio.dev, "%s: write error\n", __func__); in vsc85xx_sd6g_des_cfg_wr() 134 dev_err(&phydev->mdio.dev, "%s: write error\n", __func__); in vsc85xx_sd6g_ib_cfg0_wr() 158 dev_err(&phydev->mdio.dev, "%s: write error\n", __func__); in vsc85xx_sd6g_ib_cfg1_wr() [all …]
|
/linux/drivers/net/ethernet/stmicro/stmmac/ |
H A D | dwmac-intel.c | 1 // SPDX-License-Identifier: GPL-2.0 5 #include <linux/clk-provider.h> 8 #include "dwmac-intel.h" 44 int func = PCI_FUNC(pdev->devfn); in stmmac_pci_find_phy_addr() 49 return -ENODEV; in stmmac_pci_find_phy_addr() 51 dmi_data = dmi_id->driver_data; in stmmac_pci_find_phy_addr() 52 func_data = dmi_data->func; in stmmac_pci_find_phy_addr() 54 for (n = 0; n < dmi_data->nfuncs; n++, func_data++) in stmmac_pci_find_phy_addr() 55 if (func_data->func == func) in stmmac_pci_find_phy_addr() 56 return func_data->phy_addr; in stmmac_pci_find_phy_addr() [all …]
|
/linux/drivers/net/ethernet/intel/igb/ |
H A D | e1000_82575.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright(c) 2007 - 2018 Intel Corporation. */ 61 * igb_write_vfta_i350 - Write value to VLAN filter table 71 struct igb_adapter *adapter = hw->back; in igb_write_vfta_i350() 74 for (i = 10; i--;) in igb_write_vfta_i350() 78 adapter->shadow_vfta[offset] = value; in igb_write_vfta_i350() 82 * igb_sgmii_uses_mdio_82575 - Determine if I2C pins are for external MDIO 93 switch (hw->mac.type) { in igb_sgmii_uses_mdio_82575() 114 * igb_check_for_link_media_swap - Check which M88E1112 interface linked 121 struct e1000_phy_info *phy = &hw->phy; in igb_check_for_link_media_swap() [all …]
|
H A D | e1000_regs.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright(c) 2007 - 2018 Intel Corporation. */ 7 #define E1000_CTRL 0x00000 /* Device Control - RW */ 8 #define E1000_STATUS 0x00008 /* Device Status - RO */ 9 #define E1000_EECD 0x00010 /* EEPROM/Flash Control - RW */ 10 #define E1000_EERD 0x00014 /* EEPROM Read - RW */ 11 #define E1000_CTRL_EXT 0x00018 /* Extended Device Control - RW */ 12 #define E1000_MDIC 0x00020 /* MDI Control - RW */ 13 #define E1000_MDICNFG 0x00E04 /* MDI Config - RW */ 14 #define E1000_SCTL 0x00024 /* SerDes Control - RW */ [all …]
|
/linux/drivers/phy/mediatek/ |
H A D | phy-mtk-tphy.c | 1 // SPDX-License-Identifier: GPL-2.0 8 #include <dt-bindings/phy/phy.h> 15 #include <linux/nvmem-consumer.h> 22 #include "phy-mtk-io.h" 24 /* version V1 sub-banks offset base address */ 35 /* version V2/V3 sub-banks offset base address */ 220 /* CDR Charge Pump P-path current adjustment */ 239 /* TX driver tail current control for 0dB de-empahsis mdoe for Gen1 speed */ 248 /* I-path capacitance adjustment for Gen1 */ 262 /* PHY switch between pcie/usb3/sgmii/sata */ [all …]
|
/linux/drivers/net/dsa/sja1105/ |
H A D | sja1105_clocking.c | 1 // SPDX-License-Identifier: BSD-3-Clause 2 /* Copyright 2016-2018 NXP 3 * Copyright (c) 2018-2019, Vladimir Oltean <olteanv@gmail.com> 107 sja1105_packing(buf, &idiv->clksrc, 28, 24, size, op); in sja1105_cgu_idiv_packing() 108 sja1105_packing(buf, &idiv->autoblock, 11, 11, size, op); in sja1105_cgu_idiv_packing() 109 sja1105_packing(buf, &idiv->idiv, 5, 2, size, op); in sja1105_cgu_idiv_packing() 110 sja1105_packing(buf, &idiv->pd, 0, 0, size, op); in sja1105_cgu_idiv_packing() 116 const struct sja1105_regs *regs = priv->info->regs; in sja1105_cgu_idiv_config() 117 struct device *dev = priv->ds->dev; in sja1105_cgu_idiv_config() 121 if (regs->cgu_idiv[port] == SJA1105_RSV_ADDR) in sja1105_cgu_idiv_config() [all …]
|
/linux/drivers/phy/cadence/ |
H A D | phy-cadence-torrent.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 #include <dt-bindings/phy/phy.h> 10 #include <dt-bindings/phy/phy-cadence.h> 12 #include <linux/clk-provider.h> 239 [CDNS_TORRENT_REFCLK_DRIVER] = "refclk-driver", 240 [CDNS_TORRENT_DERIVED_REFCLK] = "refclk-der", 241 [CDNS_TORRENT_RECEIVED_REFCLK] = "refclk-rec", 468 for (i = 0; i < tbl->num_entries; i++) { in cdns_torrent_get_tbl_vals() 469 if (tbl->entries[i].key == key) in cdns_torrent_get_tbl_vals() 470 return tbl->entries[i].vals; in cdns_torrent_get_tbl_vals() [all …]
|
H A D | phy-cadence-sierra.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include <linux/clk-provider.h> 23 #include <dt-bindings/phy/phy.h> 24 #include <dt-bindings/phy/phy-cadence.h> 414 u32 offset = reg << ctx->reg_offset_shift; in cdns_regmap_write() 416 writew(val, ctx->base + offset); in cdns_regmap_write() 424 u32 offset = reg << ctx->reg_offset_shift; in cdns_regmap_read() 426 *val = readw(ctx->base + offset); in cdns_regmap_read() 541 struct cdns_sierra_phy *phy = dev_get_drvdata(gphy->dev.parent); in cdns_sierra_phy_init() 542 const struct cdns_sierra_data *init_data = phy->init_data; in cdns_sierra_phy_init() [all …]
|
/linux/drivers/net/phy/qcom/ |
H A D | at803x.c | 1 // SPDX-License-Identifier: GPL-2.0+ 23 #include <dt-bindings/net/qca-ar803x.h> 48 #define AT803X_PSSR 0x11 /*PHY-Specific Status Register*/ 55 /* AT803x supports either the XTAL input pad, an internal PLL or the 57 * is only used for 25 MHz output, all other frequencies need the PLL. 61 * By default the PLL is only enabled if there is a link. Otherwise 62 * the PHY will go into low power state and disabled the PLL. You can 63 * set the PLL_ON bit (see debug register 0x1f) to keep the PLL always 78 * but doesn't support choosing between XTAL/PLL and DSP. 104 /* don't turn off internal PLL */ [all …]
|
/linux/drivers/net/ethernet/amd/xgbe/ |
H A D | xgbe-phy-v2.c | 125 #include "xgbe-common.h" 149 /* Rate-change complete wait/retry count */ 276 ((_x)->extd[XGBE_SFP_EXTD_SFF_8472] && \ 277 !((_x)->extd[XGBE_SFP_EXTD_DIAG] & XGBE_SFP_EXTD_DIAG_ADDR_CHANGE)) 284 #define XGBE_BEL_FUSE_VENDOR "BEL-FUSE " 285 #define XGBE_BEL_FUSE_PARTNO "1GBT-SFP06 " 306 /* Re-driver related definitions */ 375 /* Re-driver support */ 399 return pdata->i2c_if.i2c_xfer(pdata, i2c_op); in xgbe_phy_i2c_xfer() 405 struct xgbe_phy_data *phy_data = pdata->phy_data; in xgbe_phy_redrv_write() [all …]
|
H A D | xgbe-mdio.c | 9 * Copyright (c) 2014-2016 Advanced Micro Devices, Inc. 59 * Copyright (c) 2014-2016 Advanced Micro Devices, Inc. 127 #include "xgbe-common.h" 132 if (!pdata->phy_if.phy_impl.module_eeprom) in xgbe_phy_module_eeprom() 133 return -ENXIO; in xgbe_phy_module_eeprom() 135 return pdata->phy_if.phy_impl.module_eeprom(pdata, eeprom, data); in xgbe_phy_module_eeprom() 141 if (!pdata->phy_if.phy_impl.module_info) in xgbe_phy_module_info() 142 return -ENXIO; in xgbe_phy_module_info() 144 return pdata->phy_if.phy_impl.module_info(pdata, modinfo); in xgbe_phy_module_info() 199 switch (pdata->an_mode) { in xgbe_an_enable_interrupts() [all …]
|
/linux/drivers/phy/ |
H A D | phy-xgene.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * AppliedMicro X-Gene Multi-purpose PHY driver 10 * The APM X-Gene PHY consists of two PLL clock macro's (CMU) and lanes. 11 * The first PLL clock macro is used for internal reference clock. The second 12 * PLL clock macro is used to generate the clock for the PHY. This driver 13 * configures the first PLL CMU, the second PLL CMU, and programs the PHY to 14 * operate according to the mode of operation. The first PLL CMU is only 19 * ----------------- 20 * | Internal | |------| 21 * | Ref PLL CMU |----| | ------------- --------- [all …]
|
/linux/drivers/net/ethernet/broadcom/bnx2x/ |
H A D | bnx2x_link.c | 1 /* Copyright 2008-2013 Broadcom Corporation 8 * at http://www.gnu.org/licenses/gpl-2.0.html (the "GPL"). 43 #define I2C_WA_PWR_ITER (I2C_WA_RETRY_CNT - 1) 205 (_phy)->def_md_devad, \ 211 (_phy)->def_md_devad, \ 239 * bnx2x_check_lfa - This function checks if link reinitialization is required, 251 struct bnx2x *bp = params->bp; in bnx2x_check_lfa() 254 REG_RD(bp, params->lfa_base + in bnx2x_check_lfa() 257 /* NOTE: must be first condition checked - in bnx2x_check_lfa() 262 REG_WR(bp, params->lfa_base + in bnx2x_check_lfa() [all …]
|
/linux/drivers/phy/microchip/ |
H A D | sparx5_serdes.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 * https://github.com/microchip-ung/sparx-5_reginfo 9 …* https://ww1.microchip.com/downloads/en/DeviceDoc/SparX-5_Family_L2L3_Enterprise_10G_Ethernet_Swi… 104 u8 if_width; /* UDL if-width: 10/16/20/32/64 */ 105 bool skip_cmu_cfg:1; /* Enable/disable CMU cfg */ 107 bool no_pwrcycle:1; /* Omit initial power-cycle */ 108 bool txinvert:1; /* Enable inversion of output data */ 109 bool rxinvert:1; /* Enable inversion of input data */ 245 bool skip_cmu_cfg:1; /* Enable/disable CMU cfg */ 246 bool no_pwrcycle:1; /* Omit initial power-cycle */ [all …]
|
/linux/drivers/net/ethernet/mediatek/ |
H A D | mtk_eth_soc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Copyright (C) 2009-2016 John Crispin <blogic@openwrt.org> 5 * Copyright (C) 2009-2016 Felix Fietkau <nbd@openwrt.org> 6 * Copyright (C) 2013-2016 Michael Lee <igvtee@gmail.com> 24 #include <linux/pcs/pcs-mtk-lynxi.h> 34 static int mtk_msg_level = -1; 36 MODULE_PARM_DESC(msg_level, "Message level (-1=defaults,0=none,...,16=all)"); 294 __raw_writel(val, eth->base + reg); in mtk_w32() 299 return __raw_readl(eth->base + reg); in mtk_r32() 325 dev_err(eth->dev, "mdio: MDIO timeout\n"); in mtk_mdio_busy_wait() [all …]
|
/linux/drivers/net/ethernet/sfc/siena/ |
H A D | mcdi_pcol.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 4 * Copyright 2009-2018 Solarflare Communications Inc. 5 * Copyright 2019-2020 Xilinx Inc. 13 /* Power-on reset state */ 35 /* The 'doorbell' addresses are hard-wired to alert the MC when written */ 38 /* The rest of these are firmware-defined */ 46 /* Values to be written to the per-port status dword in shared 71 * | | \--- Response 72 * | \------- Error 73 * \------------------------------ Resync (always set) [all …]
|