Home
last modified time | relevance | path

Searched full:pcs (Results 1 – 25 of 613) sorted by relevance

12345678910>>...25

/kernel/linux/linux-5.10/drivers/pinctrl/
Dpinctrl-single.c210 #define PCS_QUIRK_HAS_SHARED_IRQ (pcs->flags & PCS_QUIRK_SHARED_IRQ)
211 #define PCS_HAS_IRQ (pcs->flags & PCS_FEAT_IRQ)
212 #define PCS_HAS_PINCONF (pcs->flags & PCS_FEAT_PINCONF)
273 static unsigned int pcs_pin_reg_offset_get(struct pcs_device *pcs, in pcs_pin_reg_offset_get() argument
276 unsigned int mux_bytes = pcs->width / BITS_PER_BYTE; in pcs_pin_reg_offset_get()
278 if (pcs->bits_per_mux) { in pcs_pin_reg_offset_get()
281 pin_offset_bytes = (pcs->bits_per_pin * pin) / BITS_PER_BYTE; in pcs_pin_reg_offset_get()
288 static unsigned int pcs_pin_shift_reg_get(struct pcs_device *pcs, in pcs_pin_shift_reg_get() argument
291 return (pin % (pcs->width / pcs->bits_per_pin)) * pcs->bits_per_pin; in pcs_pin_shift_reg_get()
298 struct pcs_device *pcs; in pcs_pin_dbg_show() local
[all …]
/kernel/linux/linux-6.6/drivers/pinctrl/
Dpinctrl-single.c209 #define PCS_QUIRK_HAS_SHARED_IRQ (pcs->flags & PCS_QUIRK_SHARED_IRQ)
210 #define PCS_HAS_IRQ (pcs->flags & PCS_FEAT_IRQ)
211 #define PCS_HAS_PINCONF (pcs->flags & PCS_FEAT_PINCONF)
272 static unsigned int pcs_pin_reg_offset_get(struct pcs_device *pcs, in pcs_pin_reg_offset_get() argument
275 unsigned int mux_bytes = pcs->width / BITS_PER_BYTE; in pcs_pin_reg_offset_get()
277 if (pcs->bits_per_mux) { in pcs_pin_reg_offset_get()
280 pin_offset_bytes = (pcs->bits_per_pin * pin) / BITS_PER_BYTE; in pcs_pin_reg_offset_get()
287 static unsigned int pcs_pin_shift_reg_get(struct pcs_device *pcs, in pcs_pin_shift_reg_get() argument
290 return (pin % (pcs->width / pcs->bits_per_pin)) * pcs->bits_per_pin; in pcs_pin_shift_reg_get()
297 struct pcs_device *pcs; in pcs_pin_dbg_show() local
[all …]
/kernel/linux/linux-5.10/drivers/net/ethernet/stmicro/stmmac/
Daltr_tse_pcs.c62 static int tse_pcs_reset(void __iomem *base, struct tse_pcs *pcs) in tse_pcs_reset() argument
80 dev_err(pcs->dev, "PCS could not get out of sw reset\n"); in tse_pcs_reset()
87 int tse_pcs_init(void __iomem *base, struct tse_pcs *pcs) in tse_pcs_init() argument
98 ret = tse_pcs_reset(base, pcs); in tse_pcs_init()
101 pcs->sgmii_adapter_base + SGMII_ADAPTER_CTRL_REG); in tse_pcs_init()
106 static void pcs_link_timer_callback(struct tse_pcs *pcs) in pcs_link_timer_callback() argument
109 void __iomem *tse_pcs_base = pcs->tse_pcs_base; in pcs_link_timer_callback()
110 void __iomem *sgmii_adapter_base = pcs->sgmii_adapter_base; in pcs_link_timer_callback()
116 dev_dbg(pcs->dev, "Adapter: Link is established\n"); in pcs_link_timer_callback()
120 mod_timer(&pcs->aneg_link_timer, jiffies + in pcs_link_timer_callback()
[all …]
/kernel/linux/linux-6.6/drivers/net/pcs/
Dpcs-lynx.c3 * Lynx PCS MDIO helpers
8 #include <linux/pcs-lynx.h>
11 #define SGMII_CLOCK_PERIOD_NS 8 /* PCS is clocked at 125 MHz */
24 struct phylink_pcs pcs; member
35 #define phylink_pcs_to_lynx(pl_pcs) container_of((pl_pcs), struct lynx_pcs, pcs)
36 #define lynx_to_phylink_pcs(lynx) (&(lynx)->pcs)
38 static void lynx_pcs_get_state_usxgmii(struct mdio_device *pcs, in lynx_pcs_get_state_usxgmii() argument
41 struct mii_bus *bus = pcs->bus; in lynx_pcs_get_state_usxgmii()
42 int addr = pcs->addr; in lynx_pcs_get_state_usxgmii()
61 static void lynx_pcs_get_state_2500basex(struct mdio_device *pcs, in lynx_pcs_get_state_2500basex() argument
[all …]
Dpcs-mtk-lynxi.c13 #include <linux/pcs/pcs-mtk-lynxi.h>
72 * @dev: Pointer to device owning the PCS
75 * @pcs: Phylink PCS structure
82 struct phylink_pcs pcs; member
86 static struct mtk_pcs_lynxi *pcs_to_mtk_pcs_lynxi(struct phylink_pcs *pcs) in pcs_to_mtk_pcs_lynxi() argument
88 return container_of(pcs, struct mtk_pcs_lynxi, pcs); in pcs_to_mtk_pcs_lynxi()
91 static void mtk_pcs_lynxi_get_state(struct phylink_pcs *pcs, in mtk_pcs_lynxi_get_state() argument
94 struct mtk_pcs_lynxi *mpcs = pcs_to_mtk_pcs_lynxi(pcs); in mtk_pcs_lynxi_get_state()
105 static int mtk_pcs_lynxi_config(struct phylink_pcs *pcs, unsigned int neg_mode, in mtk_pcs_lynxi_config() argument
110 struct mtk_pcs_lynxi *mpcs = pcs_to_mtk_pcs_lynxi(pcs); in mtk_pcs_lynxi_config()
[all …]
DMakefile2 # Makefile for Linux PCS drivers
4 pcs_xpcs-$(CONFIG_PCS_XPCS) := pcs-xpcs.o pcs-xpcs-nxp.o pcs-xpcs-wx.o
7 obj-$(CONFIG_PCS_LYNX) += pcs-lynx.o
8 obj-$(CONFIG_PCS_MTK_LYNXI) += pcs-mtk-lynxi.o
9 obj-$(CONFIG_PCS_RZN1_MIIC) += pcs-rzn1-miic.o
Dpcs-rzn1-miic.c13 #include <linux/pcs-rzn1-miic.h>
17 #include <dt-bindings/net/pcs-rzn1-miic.h>
136 * @pcs: PCS structure associated to the port
142 struct phylink_pcs pcs; member
147 static struct miic_port *phylink_pcs_to_miic_port(struct phylink_pcs *pcs) in phylink_pcs_to_miic_port() argument
149 return container_of(pcs, struct miic_port, pcs); in phylink_pcs_to_miic_port()
186 static int miic_config(struct phylink_pcs *pcs, unsigned int mode, in miic_config() argument
190 struct miic_port *miic_port = phylink_pcs_to_miic_port(pcs); in miic_config()
237 static void miic_link_up(struct phylink_pcs *pcs, unsigned int mode, in miic_link_up() argument
240 struct miic_port *miic_port = phylink_pcs_to_miic_port(pcs); in miic_link_up()
[all …]
/kernel/linux/linux-5.10/drivers/net/pcs/
Dpcs-lynx.c3 * Lynx PCS MDIO helpers
8 #include <linux/pcs-lynx.h>
10 #define SGMII_CLOCK_PERIOD_NS 8 /* PCS is clocked at 125 MHz */
31 #define phylink_pcs_to_lynx(pl_pcs) container_of((pl_pcs), struct lynx_pcs, pcs)
33 static void lynx_pcs_get_state_usxgmii(struct mdio_device *pcs, in lynx_pcs_get_state_usxgmii() argument
36 struct mii_bus *bus = pcs->bus; in lynx_pcs_get_state_usxgmii()
37 int addr = pcs->addr; in lynx_pcs_get_state_usxgmii()
56 static void lynx_pcs_get_state_2500basex(struct mdio_device *pcs, in lynx_pcs_get_state_2500basex() argument
59 struct mii_bus *bus = pcs->bus; in lynx_pcs_get_state_2500basex()
60 int addr = pcs->addr; in lynx_pcs_get_state_2500basex()
[all …]
/kernel/linux/linux-6.6/drivers/net/dsa/b53/
Db53_serdes.c20 static inline struct b53_pcs *pcs_to_b53_pcs(struct phylink_pcs *pcs) in pcs_to_b53_pcs() argument
22 return container_of(pcs, struct b53_pcs, pcs); in pcs_to_b53_pcs()
68 static int b53_serdes_config(struct phylink_pcs *pcs, unsigned int neg_mode, in b53_serdes_config() argument
73 struct b53_device *dev = pcs_to_b53_pcs(pcs)->dev; in b53_serdes_config()
74 u8 lane = pcs_to_b53_pcs(pcs)->lane; in b53_serdes_config()
89 static void b53_serdes_an_restart(struct phylink_pcs *pcs) in b53_serdes_an_restart() argument
91 struct b53_device *dev = pcs_to_b53_pcs(pcs)->dev; in b53_serdes_an_restart()
92 u8 lane = pcs_to_b53_pcs(pcs)->lane; in b53_serdes_an_restart()
102 static void b53_serdes_get_state(struct phylink_pcs *pcs, in b53_serdes_get_state() argument
105 struct b53_device *dev = pcs_to_b53_pcs(pcs)->dev; in b53_serdes_get_state()
[all …]
/kernel/linux/linux-6.6/include/linux/
Dphylink.h25 /* PCS "negotiation" mode.
102 * phylink_pcs_neg_mode() - helper to determine PCS inband mode
107 * Determines the negotiation mode to be used by the PCS, and returns
117 * Note: this is for cases where the PCS itself is involved in negotiation
207 * @ovr_an_inband: if true, override PCS to MLO_AN_INBAND
211 * are supported by the MAC/PCS.
231 * @mac_select_pcs: Select a PCS for the interface mode.
296 * mac_select_pcs: Select a PCS for the interface mode.
298 * @interface: PHY interface mode for PCS
303 * This must not modify any state. It is used to query which PCS should
[all …]
/kernel/linux/linux-6.6/drivers/gpu/drm/amd/amdgpu/
Damdgpu_xgmi.c107 {"XGMI PCS DataLossErr",
109 {"XGMI PCS TrainingErr",
111 {"XGMI PCS CRCErr",
113 {"XGMI PCS BERExceededErr",
115 {"XGMI PCS TxMetaDataErr",
117 {"XGMI PCS ReplayBufParityErr",
119 {"XGMI PCS DataParityErr",
121 {"XGMI PCS ReplayFifoOverflowErr",
123 {"XGMI PCS ReplayFifoUnderflowErr",
125 {"XGMI PCS ElasticFifoOverflowErr",
[all …]
/kernel/linux/linux-6.6/drivers/net/dsa/mv88e6xxx/
Dpcs-639x.c3 * Marvell 88E6352 family SERDES PCS support
129 static struct mv88e639x_pcs *sgmii_pcs_to_mv88e639x_pcs(struct phylink_pcs *pcs) in sgmii_pcs_to_mv88e639x_pcs() argument
131 return container_of(pcs, struct mv88e639x_pcs, sgmii_pcs); in sgmii_pcs_to_mv88e639x_pcs()
183 static int mv88e639x_sgmii_pcs_enable(struct phylink_pcs *pcs) in mv88e639x_sgmii_pcs_enable() argument
185 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_enable()
193 static void mv88e639x_sgmii_pcs_disable(struct phylink_pcs *pcs) in mv88e639x_sgmii_pcs_disable() argument
195 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_disable()
201 static void mv88e639x_sgmii_pcs_pre_config(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_pre_config() argument
204 struct mv88e639x_pcs *mpcs = sgmii_pcs_to_mv88e639x_pcs(pcs); in mv88e639x_sgmii_pcs_pre_config()
240 static int mv88e639x_sgmii_pcs_post_config(struct phylink_pcs *pcs, in mv88e639x_sgmii_pcs_post_config() argument
[all …]
Dpcs-6352.c3 * Marvell 88E6352 family SERDES PCS support
33 static struct marvell_c22_pcs *pcs_to_marvell_c22_pcs(struct phylink_pcs *pcs) in pcs_to_marvell_c22_pcs() argument
35 return container_of(pcs, struct marvell_c22_pcs, phylink_pcs); in pcs_to_marvell_c22_pcs()
140 static int marvell_c22_pcs_enable(struct phylink_pcs *pcs) in marvell_c22_pcs_enable() argument
142 struct marvell_c22_pcs *mpcs = pcs_to_marvell_c22_pcs(pcs); in marvell_c22_pcs_enable()
152 static void marvell_c22_pcs_disable(struct phylink_pcs *pcs) in marvell_c22_pcs_disable() argument
154 struct marvell_c22_pcs *mpcs = pcs_to_marvell_c22_pcs(pcs); in marvell_c22_pcs_disable()
160 static void marvell_c22_pcs_get_state(struct phylink_pcs *pcs, in marvell_c22_pcs_get_state() argument
163 struct marvell_c22_pcs *mpcs = pcs_to_marvell_c22_pcs(pcs); in marvell_c22_pcs_get_state()
184 static int marvell_c22_pcs_config(struct phylink_pcs *pcs, in marvell_c22_pcs_config() argument
[all …]
/kernel/linux/linux-5.10/include/linux/
Dphylink.h64 * @pcs_poll: MAC PCS cannot provide link change interrupt
148 * Read the current inband link state from the MAC PCS, reporting the
195 * where the PCS and MAC are not tightly integrated.)
201 * the results of in-band negotiation/status from the MAC PCS should be used
265 * complete any necessary steps after the MAC and PCS have been configured
310 * where these settings are not automatically conveyed from the PCS block,
331 * struct phylink_pcs - PHYLINK PCS instance
333 * @poll: poll the PCS for link changes
335 * This structure is designed to be embedded within the PCS private data,
336 * and will be passed between phylink and the PCS.
[all …]
/kernel/linux/linux-6.6/arch/arm64/boot/dts/freescale/
Dfsl-ls1043-post.dtsi27 pcs-handle-names = "qsgmii";
32 pcs-handle-names = "sgmii", "qsgmii";
43 pcs-handle-names = "sgmii", "qsgmii";
48 pcs-handle-names = "sgmii", "qsgmii";
55 qsgmiib_pcs1: ethernet-pcs@1 {
56 compatible = "fsl,lynx-pcs";
60 qsgmiib_pcs2: ethernet-pcs@2 {
61 compatible = "fsl,lynx-pcs";
65 qsgmiib_pcs3: ethernet-pcs@3 {
66 compatible = "fsl,lynx-pcs";
Dfsl-ls1046-post.dtsi27 pcs-handle-names = "qsgmii";
41 pcs-handle-names = "sgmii", "qsgmii";
46 pcs-handle-names = "sgmii", "qsgmii";
54 pcs-handle-names = "sgmii", "qsgmii", "xfi";
58 qsgmiib_pcs1: ethernet-pcs@1 {
59 compatible = "fsl,lynx-pcs";
63 qsgmiib_pcs2: ethernet-pcs@2 {
64 compatible = "fsl,lynx-pcs";
68 qsgmiib_pcs3: ethernet-pcs@3 {
69 compatible = "fsl,lynx-pcs";
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdgpu/
Damdgpu_xgmi.c68 {"XGMI PCS DataLossErr",
70 {"XGMI PCS TrainingErr",
72 {"XGMI PCS CRCErr",
74 {"XGMI PCS BERExceededErr",
76 {"XGMI PCS TxMetaDataErr",
78 {"XGMI PCS ReplayBufParityErr",
80 {"XGMI PCS DataParityErr",
82 {"XGMI PCS ReplayFifoOverflowErr",
84 {"XGMI PCS ReplayFifoUnderflowErr",
86 {"XGMI PCS ElasticFifoOverflowErr",
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/net/
Dnvidia,tegra234-mgbe.yaml49 - const: eee-pcs
50 - const: rx-pcs-input
51 - const: rx-pcs-m
52 - const: rx-pcs
53 - const: tx-pcs
61 - const: pcs
137 "rx-input", "tx", "eee-pcs", "rx-pcs-input", "rx-pcs-m",
138 "rx-pcs", "tx-pcs";
141 reset-names = "mac", "pcs";
Dfsl,fman-dtsec.yaml101 description: See pcs-handle.
103 pcs-handle:
108 pcs-handle-names is absent, and phy-connection-type is "xgmii", then the first
109 reference will be assumed to be for "xfi". Otherwise, if pcs-handle-names is
112 pcs-handle-names:
120 description: The type of each PCS in pcsphy-handle.
124 description: A reference to the (TBI-based) PCS
134 pcs-handle-names:
135 - pcs-handle
167 pcs-handle = <&pcsphy4>, <&qsgmiib_pcs1>;
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/net/pcs/
Dfsl,lynx-pcs.yaml4 $id: http://devicetree.org/schemas/net/pcs/fsl,lynx-pcs.yaml#
7 title: NXP Lynx PCS
13 NXP Lynx 10G and 28G SerDes have Ethernet PCS devices which can be used as
19 const: fsl,lynx-pcs
36 qsgmii_pcs1: ethernet-pcs@1 {
37 compatible = "fsl,lynx-pcs";
/kernel/linux/linux-6.6/drivers/net/phy/
Dphylink.c51 struct phylink_pcs *pcs; member
660 struct phylink_pcs *pcs; in phylink_validate_mac_and_pcs() local
663 /* Get the PCS for this interface mode */ in phylink_validate_mac_and_pcs()
665 pcs = pl->mac_ops->mac_select_pcs(pl->config, state->interface); in phylink_validate_mac_and_pcs()
666 if (IS_ERR(pcs)) in phylink_validate_mac_and_pcs()
667 return PTR_ERR(pcs); in phylink_validate_mac_and_pcs()
669 pcs = pl->pcs; in phylink_validate_mac_and_pcs()
672 if (pcs) { in phylink_validate_mac_and_pcs()
673 /* The PCS, if present, must be setup before phylink_create() in phylink_validate_mac_and_pcs()
677 if (!pcs->ops) { in phylink_validate_mac_and_pcs()
[all …]
/kernel/linux/linux-6.6/drivers/net/ethernet/microchip/lan966x/
Dlan966x_phylink.c77 /* Take PCS out of reset */ in lan966x_phylink_mac_link_down()
85 static struct lan966x_port *lan966x_pcs_to_port(struct phylink_pcs *pcs) in lan966x_pcs_to_port() argument
87 return container_of(pcs, struct lan966x_port, phylink_pcs); in lan966x_pcs_to_port()
90 static void lan966x_pcs_get_state(struct phylink_pcs *pcs, in lan966x_pcs_get_state() argument
93 struct lan966x_port *port = lan966x_pcs_to_port(pcs); in lan966x_pcs_get_state()
98 static int lan966x_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode, in lan966x_pcs_config() argument
103 struct lan966x_port *port = lan966x_pcs_to_port(pcs); in lan966x_pcs_config()
115 netdev_err(port->dev, "port PCS config failed: %d\n", ret); in lan966x_pcs_config()
120 static void lan966x_pcs_aneg_restart(struct phylink_pcs *pcs) in lan966x_pcs_aneg_restart() argument
/kernel/linux/linux-6.6/drivers/net/ethernet/microchip/sparx5/
Dsparx5_phylink.c75 static struct sparx5_port *sparx5_pcs_to_port(struct phylink_pcs *pcs) in sparx5_pcs_to_port() argument
77 return container_of(pcs, struct sparx5_port, phylink_pcs); in sparx5_pcs_to_port()
80 static void sparx5_pcs_get_state(struct phylink_pcs *pcs, in sparx5_pcs_get_state() argument
83 struct sparx5_port *port = sparx5_pcs_to_port(pcs); in sparx5_pcs_get_state()
94 static int sparx5_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode, in sparx5_pcs_config() argument
99 struct sparx5_port *port = sparx5_pcs_to_port(pcs); in sparx5_pcs_config()
122 /* Enable the PCS matching this interface type */ in sparx5_pcs_config()
125 netdev_err(port->ndev, "port PCS config failed: %d\n", ret); in sparx5_pcs_config()
129 static void sparx5_pcs_aneg_restart(struct phylink_pcs *pcs) in sparx5_pcs_aneg_restart() argument
/kernel/linux/linux-6.6/drivers/net/ethernet/freescale/dpaa2/
Ddpaa2-mac.c5 #include <linux/pcs-lynx.h>
157 return mac->pcs; in dpaa2_mac_select_pcs()
256 struct phylink_pcs *pcs; in dpaa2_pcs_create() local
258 node = fwnode_find_reference(dpmac_node, "pcs-handle", 0); in dpaa2_pcs_create()
261 netdev_warn(mac->net_dev, "pcs-handle node not found\n"); in dpaa2_pcs_create()
265 pcs = lynx_pcs_create_fwnode(node); in dpaa2_pcs_create()
268 if (pcs == ERR_PTR(-EPROBE_DEFER)) { in dpaa2_pcs_create()
269 netdev_dbg(mac->net_dev, "missing PCS device\n"); in dpaa2_pcs_create()
273 if (pcs == ERR_PTR(-ENODEV)) { in dpaa2_pcs_create()
274 netdev_err(mac->net_dev, "pcs-handle node not available\n"); in dpaa2_pcs_create()
[all …]
/kernel/linux/linux-5.10/drivers/clocksource/
Dtimer-pistachio.c73 struct pistachio_clocksource *pcs = to_pistachio_clocksource(cs); in pistachio_clocksource_read_cycles() local
82 raw_spin_lock_irqsave(&pcs->lock, flags); in pistachio_clocksource_read_cycles()
83 overflw = gpt_readl(pcs->base, TIMER_CURRENT_OVERFLOW_VALUE, 0); in pistachio_clocksource_read_cycles()
84 counter = gpt_readl(pcs->base, TIMER_CURRENT_VALUE, 0); in pistachio_clocksource_read_cycles()
85 raw_spin_unlock_irqrestore(&pcs->lock, flags); in pistachio_clocksource_read_cycles()
98 struct pistachio_clocksource *pcs = to_pistachio_clocksource(cs); in pistachio_clksrc_set_mode() local
101 val = gpt_readl(pcs->base, TIMER_CFG, timeridx); in pistachio_clksrc_set_mode()
107 gpt_writel(pcs->base, val, TIMER_CFG, timeridx); in pistachio_clksrc_set_mode()
112 struct pistachio_clocksource *pcs = to_pistachio_clocksource(cs); in pistachio_clksrc_enable() local
116 gpt_writel(pcs->base, RELOAD_VALUE, TIMER_RELOAD_VALUE, timeridx); in pistachio_clksrc_enable()

12345678910>>...25