Lines Matching refs:port
26 static int lan937x_port_cfg(struct ksz_device *dev, int port, int offset,
29 return regmap_update_bits(ksz_regmap_8(dev), PORT_CTRL_ADDR(port, offset),
58 /* get register address based on the logical port */
70 /* Check for internal phy port */
106 /* Check for internal phy port, return 0xffff for non-existent phy */
172 void lan937x_port_setup(struct ksz_device *dev, int port, bool cpu_port)
179 /* enable tag tail for host port */
181 lan937x_port_cfg(dev, port, REG_PORT_CTRL_0,
185 ksz9477_port_queue_split(dev, port);
188 lan937x_port_cfg(dev, port, REG_PORT_MAC_CTRL_1, PORT_BACK_PRESSURE,
192 lan937x_port_cfg(dev, port, P_PRIO_CTRL, PORT_802_1P_PRIO_ENABLE, true);
194 if (!dev->info->internal_phy[port])
195 lan937x_port_cfg(dev, port, regs[P_XMII_CTRL_0],
203 member = BIT(dsa_upstream_port(ds, port));
205 dev->dev_ops->cfg_port_member(dev, port, member);
217 /* enable cpu port */
227 int lan937x_change_mtu(struct ksz_device *dev, int port, int new_mtu)
234 if (dsa_is_cpu_port(ds, port))
238 ret = lan937x_port_cfg(dev, port, REG_PORT_MAC_CTRL_0,
241 ret = lan937x_port_cfg(dev, port, REG_PORT_MAC_CTRL_0,
249 ret = ksz_pwrite16(dev, port, PORT_MAX_FR_SIZE, new_mtu);
251 dev_err(ds->dev, "failed to update mtu for port %d\n", port);
275 static void lan937x_set_tune_adj(struct ksz_device *dev, int port,
280 ksz_pread16(dev, port, reg, &data16);
284 ksz_pwrite16(dev, port, reg, data16);
288 ksz_pwrite16(dev, port, reg, data16);
291 static void lan937x_set_rgmii_tx_delay(struct ksz_device *dev, int port)
298 val = (port == LAN937X_RGMII_1_PORT) ? RGMII_1_TX_DELAY_2NS :
301 lan937x_set_tune_adj(dev, port, REG_PORT_XMII_CTRL_5, val);
304 static void lan937x_set_rgmii_rx_delay(struct ksz_device *dev, int port)
308 val = (port == LAN937X_RGMII_1_PORT) ? RGMII_1_RX_DELAY_2NS :
311 lan937x_set_tune_adj(dev, port, REG_PORT_XMII_CTRL_4, val);
314 void lan937x_phylink_get_caps(struct ksz_device *dev, int port,
319 if (dev->info->supports_rgmii[port]) {
326 void lan937x_setup_rgmii_delay(struct ksz_device *dev, int port)
328 struct ksz_port *p = &dev->ports[port];
331 lan937x_set_rgmii_tx_delay(dev, port);
332 dev_info(dev->dev, "Applied rgmii tx delay for the port %d\n",
333 port);
337 lan937x_set_rgmii_rx_delay(dev, port);
338 dev_info(dev->dev, "Applied rgmii rx delay for the port %d\n",
339 port);
343 int lan937x_tc_cbs_set_cinc(struct ksz_device *dev, int port, u32 val)
345 return ksz_pwrite32(dev, port, REG_PORT_MTI_CREDIT_INCREMENT, val);