| /kernel/linux/linux-6.6/drivers/phy/ |
| D | phy-core.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * phy-core.c -- Generic Phy framework. 5 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com 18 #include <linux/phy/phy.h> 32 struct phy *phy = *(struct phy **)res; in devm_phy_release() local 34 phy_put(dev, phy); in devm_phy_release() 46 struct phy *phy = *(struct phy **)res; in devm_phy_consume() local 48 phy_destroy(phy); in devm_phy_consume() 53 struct phy **phy = res; in devm_phy_match() local 55 return *phy == match_data; in devm_phy_match() [all …]
|
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 # PHY 6 menu "PHY Subsystem" 9 bool "PHY Core" 11 Generic PHY support. 13 This framework is designed to provide a generic interface for PHY 15 API by which phy drivers can create PHY using the phy framework and 16 phy users can obtain reference to the PHY. All the users of this 23 Generic MIPI D-PHY support. 25 Provides a number of helpers a core functions for MIPI D-PHY [all …]
|
| /kernel/linux/linux-6.6/include/linux/phy/ |
| D | phy.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * phy.h -- generic phy header file 5 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com 19 #include <linux/phy/phy-dp.h> 20 #include <linux/phy/phy-lvds.h> 21 #include <linux/phy/phy-mipi-dphy.h> 23 struct phy; 55 * union phy_configure_opts - Opaque generic phy configuration 58 * the MIPI_DPHY phy mode. 62 * the LVDS phy mode. [all …]
|
| /kernel/linux/linux-5.10/include/linux/phy/ |
| D | phy.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * phy.h -- generic phy header file 5 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com 19 #include <linux/phy/phy-dp.h> 20 #include <linux/phy/phy-mipi-dphy.h> 22 struct phy; 48 * union phy_configure_opts - Opaque generic phy configuration 51 * the MIPI_DPHY phy mode. 61 * struct phy_ops - set of function pointers for performing phy operations 62 * @init: operation to be performed for initializing phy [all …]
|
| /kernel/linux/linux-5.10/drivers/phy/ |
| D | phy-core.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * phy-core.c -- Generic Phy framework. 5 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com 17 #include <linux/phy/phy.h> 30 struct phy *phy = *(struct phy **)res; in devm_phy_release() local 32 phy_put(dev, phy); in devm_phy_release() 44 struct phy *phy = *(struct phy **)res; in devm_phy_consume() local 46 phy_destroy(phy); in devm_phy_consume() 51 struct phy **phy = res; in devm_phy_match() local 53 return *phy == match_data; in devm_phy_match() [all …]
|
| /kernel/linux/linux-6.6/drivers/scsi/libsas/ |
| D | sas_phy.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Serial Attached SCSI (SAS) Phy class 15 /* ---------- Phy events ---------- */ 20 struct asd_sas_phy *phy = ev->phy; in sas_phye_loss_of_signal() local 22 phy->error = 0; in sas_phye_loss_of_signal() 23 sas_deform_port(phy, 1); in sas_phye_loss_of_signal() 29 struct asd_sas_phy *phy = ev->phy; in sas_phye_oob_done() local 31 phy->error = 0; in sas_phye_oob_done() 37 struct asd_sas_phy *phy = ev->phy; in sas_phye_oob_error() local 38 struct sas_ha_struct *sas_ha = phy->ha; in sas_phye_oob_error() [all …]
|
| /kernel/linux/linux-5.10/drivers/scsi/libsas/ |
| D | sas_phy.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Serial Attached SCSI (SAS) Phy class 15 /* ---------- Phy events ---------- */ 20 struct asd_sas_phy *phy = ev->phy; in sas_phye_loss_of_signal() local 22 phy->error = 0; in sas_phye_loss_of_signal() 23 sas_deform_port(phy, 1); in sas_phye_loss_of_signal() 29 struct asd_sas_phy *phy = ev->phy; in sas_phye_oob_done() local 31 phy->error = 0; in sas_phye_oob_done() 37 struct asd_sas_phy *phy = ev->phy; in sas_phye_oob_error() local 38 struct sas_ha_struct *sas_ha = phy->ha; in sas_phye_oob_error() [all …]
|
| /kernel/linux/linux-5.10/drivers/media/platform/ti-vpe/ |
| D | cal-camerarx.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * TI Camera Access Layer (CAL) - CAMERARX 5 * Copyright (c) 2015-2020 Texas Instruments Inc. 21 #include <media/v4l2-ctrls.h> 22 #include <media/v4l2-fwnode.h> 23 #include <media/v4l2-subdev.h> 28 /* ------------------------------------------------------------------ 30 * ------------------------------------------------------------------ 33 static inline u32 camerarx_read(struct cal_camerarx *phy, u32 offset) in camerarx_read() argument 35 return ioread32(phy->base + offset); in camerarx_read() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/ |
| D | sungem_phy.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * PHY drivers for the sungem ethernet driver. 7 * (c) 2002-2007, Benjamin Herrenscmidt (benh@kernel.crashing.org) 10 * - Add support for PHYs that provide an IRQ line 11 * - Eventually moved the entire polling state machine in 14 * - On LXT971 & BCM5201, Apple uses some chip specific regs 17 * - Apple has some additional power management code for some 35 /* Link modes of the BCM5400 PHY */ 47 static inline int __sungem_phy_read(struct mii_phy* phy, int id, int reg) in __sungem_phy_read() argument 49 return phy->mdio_read(phy->dev, id, reg); in __sungem_phy_read() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ |
| D | sungem_phy.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * PHY drivers for the sungem ethernet driver. 7 * (c) 2002-2007, Benjamin Herrenscmidt (benh@kernel.crashing.org) 10 * - Add support for PHYs that provide an IRQ line 11 * - Eventually moved the entire polling state machine in 14 * - On LXT971 & BCM5201, Apple uses some chip specific regs 17 * - Apple has some additional power management code for some 39 /* Link modes of the BCM5400 PHY */ 51 static inline int __sungem_phy_read(struct mii_phy* phy, int id, int reg) in __sungem_phy_read() argument 53 return phy->mdio_read(phy->dev, id, reg); in __sungem_phy_read() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/phy/ |
| D | phy_led_triggers.c | 1 // SPDX-License-Identifier: GPL-2.0+ 4 #include <linux/phy.h> 8 static struct phy_led_trigger *phy_speed_to_led_trigger(struct phy_device *phy, in phy_speed_to_led_trigger() argument 13 for (i = 0; i < phy->phy_num_led_triggers; i++) { in phy_speed_to_led_trigger() 14 if (phy->phy_led_triggers[i].speed == speed) in phy_speed_to_led_trigger() 15 return &phy->phy_led_triggers[i]; in phy_speed_to_led_trigger() 20 static void phy_led_trigger_no_link(struct phy_device *phy) in phy_led_trigger_no_link() argument 22 if (phy->last_triggered) { in phy_led_trigger_no_link() 23 led_trigger_event(&phy->last_triggered->trigger, LED_OFF); in phy_led_trigger_no_link() 24 led_trigger_event(&phy->led_link_trigger->trigger, LED_OFF); in phy_led_trigger_no_link() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/ethernet/ibm/emac/ |
| D | phy.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * drivers/net/ethernet/ibm/emac/phy.c 5 * Driver for PowerPC 4xx on-chip ethernet controller, PHY support. 18 * (c) 2004-2005, Eugene Surovegin <ebs@ebshome.net> 30 #include "phy.h" 35 static inline int _phy_read(struct mii_phy *phy, int reg) in _phy_read() argument 37 return phy->mdio_read(phy->dev, phy->address, reg); in _phy_read() 40 static inline void _phy_write(struct mii_phy *phy, int reg, int val) in _phy_write() argument 42 phy->mdio_write(phy->dev, phy->address, reg, val); in _phy_write() 45 static inline int gpcs_phy_read(struct mii_phy *phy, int reg) in gpcs_phy_read() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ethernet/ibm/emac/ |
| D | phy.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * drivers/net/ethernet/ibm/emac/phy.c 5 * Driver for PowerPC 4xx on-chip ethernet controller, PHY support. 18 * (c) 2004-2005, Eugene Surovegin <ebs@ebshome.net> 30 #include "phy.h" 35 static inline int _phy_read(struct mii_phy *phy, int reg) in _phy_read() argument 37 return phy->mdio_read(phy->dev, phy->address, reg); in _phy_read() 40 static inline void _phy_write(struct mii_phy *phy, int reg, int val) in _phy_write() argument 42 phy->mdio_write(phy->dev, phy->address, reg, val); in _phy_write() 45 static inline int gpcs_phy_read(struct mii_phy *phy, int reg) in gpcs_phy_read() argument [all …]
|
| /kernel/linux/linux-6.6/drivers/phy/hisilicon/ |
| D | phy-hi3670-pcie.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCIe phy driver for Kirin 970 25 #include <linux/phy/phy.h> 44 /* PCIe PHY registers */ 168 static inline void hi3670_apb_phy_writel(struct hi3670_pcie_phy *phy, u32 val, in hi3670_apb_phy_writel() argument 171 writel(val, phy->base + APB_PHY_START_ADDR + reg); in hi3670_apb_phy_writel() 174 static inline u32 hi3670_apb_phy_readl(struct hi3670_pcie_phy *phy, u32 reg) in hi3670_apb_phy_readl() argument 176 return readl(phy->base + APB_PHY_START_ADDR + reg); in hi3670_apb_phy_readl() 179 static inline void hi3670_apb_phy_updatel(struct hi3670_pcie_phy *phy, in hi3670_apb_phy_updatel() argument 184 regval = hi3670_apb_phy_readl(phy, reg); in hi3670_apb_phy_updatel() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/phy/ |
| D | phy_led_triggers.c | 1 // SPDX-License-Identifier: GPL-2.0+ 4 #include <linux/phy.h> 8 static struct phy_led_trigger *phy_speed_to_led_trigger(struct phy_device *phy, in phy_speed_to_led_trigger() argument 13 for (i = 0; i < phy->phy_num_led_triggers; i++) { in phy_speed_to_led_trigger() 14 if (phy->phy_led_triggers[i].speed == speed) in phy_speed_to_led_trigger() 15 return &phy->phy_led_triggers[i]; in phy_speed_to_led_trigger() 20 static void phy_led_trigger_no_link(struct phy_device *phy) in phy_led_trigger_no_link() argument 22 if (phy->last_triggered) { in phy_led_trigger_no_link() 23 led_trigger_event(&phy->last_triggered->trigger, LED_OFF); in phy_led_trigger_no_link() 24 led_trigger_event(&phy->led_link_trigger->trigger, LED_OFF); in phy_led_trigger_no_link() [all …]
|
| /kernel/linux/linux-6.6/drivers/phy/ti/ |
| D | phy-dm816x-usb.c | 1 // SPDX-License-Identifier: GPL-2.0-only 15 #include <linux/phy/phy.h> 23 * phy as being SR70LX Synopsys USB 2.0 OTG nanoPHY. It also seems at 33 * Finally, the phy on dm814x and am335x is different from dm816x. 36 #define DM816X_USB_CTRL_PHYSLEEP1 BIT(1) /* Enable the first phy */ 37 #define DM816X_USB_CTRL_PHYSLEEP0 BIT(0) /* Enable the second phy */ 48 struct usb_phy phy; member 55 otg->host = host; in dm816x_usb_phy_set_host() 57 otg->state = OTG_STATE_UNDEFINED; in dm816x_usb_phy_set_host() 65 otg->gadget = gadget; in dm816x_usb_phy_set_peripheral() [all …]
|
| D | phy-omap-usb2.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * omap-usb2.c - USB PHY, talking to USB controller on TI SoCs. 5 * Copyright (C) 2012-2020 Texas Instruments Incorporated - http://www.ti.com 17 #include <linux/phy/omap_control_phy.h> 18 #include <linux/phy/omap_usb.h> 19 #include <linux/phy/phy.h> 54 struct usb_phy phy; member 70 #define phy_to_omapusb(x) container_of((x), struct omap_usb, phy) 92 * omap_usb2_set_comparator() - links the comparator present in the system with this phy 94 * @comparator: the companion phy(comparator) for this phy [all …]
|
| D | phy-ti-pipe3.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * phy-ti-pipe3 - PIPE3 PHY driver. 5 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com 12 #include <linux/phy/phy.h> 19 #include <linux/phy/omap_control_phy.h> 215 /* DRA75x TRM Table 26-17 Preferred USB3_PHY_RX SCP Register Settings */ 241 /* DRA75x TRM Table 26-9 Preferred SATA_PHY_RX SCP Register Settings */ 266 /* DRA75x TRM Table 26-62 Preferred PCIe_PHY_RX SCP Register Settings */ 299 static struct pipe3_dpll_params *ti_pipe3_get_dpll_params(struct ti_pipe3 *phy) in ti_pipe3_get_dpll_params() argument 302 struct pipe3_dpll_map *dpll_map = phy->dpll_map; in ti_pipe3_get_dpll_params() [all …]
|
| /kernel/linux/linux-6.6/drivers/media/platform/ti/cal/ |
| D | cal-camerarx.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * TI Camera Access Layer (CAL) - CAMERARX 5 * Copyright (c) 2015-2020 Texas Instruments Inc. 21 #include <media/v4l2-ctrls.h> 22 #include <media/v4l2-fwnode.h> 23 #include <media/v4l2-subdev.h> 28 /* ------------------------------------------------------------------ 30 * ------------------------------------------------------------------ 33 static inline u32 camerarx_read(struct cal_camerarx *phy, u32 offset) in camerarx_read() argument 35 return ioread32(phy->base + offset); in camerarx_read() [all …]
|
| /kernel/linux/linux-5.10/drivers/phy/ti/ |
| D | phy-omap-usb2.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * omap-usb2.c - USB PHY, talking to USB controller on TI SoCs. 5 * Copyright (C) 2012-2020 Texas Instruments Incorporated - http://www.ti.com 17 #include <linux/phy/omap_control_phy.h> 18 #include <linux/phy/omap_usb.h> 19 #include <linux/phy/phy.h> 54 struct usb_phy phy; member 70 #define phy_to_omapusb(x) container_of((x), struct omap_usb, phy) 92 * omap_usb2_set_comparator - links the comparator present in the system with 93 * this phy [all …]
|
| D | phy-ti-pipe3.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * phy-ti-pipe3 - PIPE3 PHY driver. 5 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com 12 #include <linux/phy/phy.h> 19 #include <linux/phy/omap_control_phy.h> 215 /* DRA75x TRM Table 26-17 Preferred USB3_PHY_RX SCP Register Settings */ 241 /* DRA75x TRM Table 26-9 Preferred SATA_PHY_RX SCP Register Settings */ 266 /* DRA75x TRM Table 26-62 Preferred PCIe_PHY_RX SCP Register Settings */ 299 static struct pipe3_dpll_params *ti_pipe3_get_dpll_params(struct ti_pipe3 *phy) in ti_pipe3_get_dpll_params() argument 302 struct pipe3_dpll_map *dpll_map = phy->dpll_map; in ti_pipe3_get_dpll_params() [all …]
|
| /kernel/linux/linux-5.10/drivers/phy/ralink/ |
| D | phy-ralink-usb.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 17 #include <linux/phy/phy.h> 56 struct phy *phy; member 61 static void u2_phy_w32(struct ralink_usb_phy *phy, u32 val, u32 reg) in u2_phy_w32() argument 63 writel(val, phy->base + reg); in u2_phy_w32() 66 static u32 u2_phy_r32(struct ralink_usb_phy *phy, u32 reg) in u2_phy_r32() argument 68 return readl(phy->base + reg); in u2_phy_r32() 71 static void ralink_usb_phy_init(struct ralink_usb_phy *phy) in ralink_usb_phy_init() argument 73 u2_phy_r32(phy, OFS_U2_PHY_AC2); in ralink_usb_phy_init() 74 u2_phy_r32(phy, OFS_U2_PHY_ACR0); in ralink_usb_phy_init() [all …]
|
| /kernel/linux/linux-6.6/drivers/phy/ralink/ |
| D | phy-ralink-usb.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 17 #include <linux/phy/phy.h> 56 struct phy *phy; member 61 static void u2_phy_w32(struct ralink_usb_phy *phy, u32 val, u32 reg) in u2_phy_w32() argument 63 writel(val, phy->base + reg); in u2_phy_w32() 66 static u32 u2_phy_r32(struct ralink_usb_phy *phy, u32 reg) in u2_phy_r32() argument 68 return readl(phy->base + reg); in u2_phy_r32() 71 static void ralink_usb_phy_init(struct ralink_usb_phy *phy) in ralink_usb_phy_init() argument 73 u2_phy_r32(phy, OFS_U2_PHY_AC2); in ralink_usb_phy_init() 74 u2_phy_r32(phy, OFS_U2_PHY_ACR0); in ralink_usb_phy_init() [all …]
|
| /kernel/linux/linux-5.10/Documentation/driver-api/phy/ |
| D | phy.rst | 2 PHY subsystem 7 This document explains the Generic PHY Framework along with the APIs provided, 8 and how-to-use. 13 *PHY* is the abbreviation for physical layer. It is used to connect a device 14 to the physical medium e.g., the USB controller has a PHY to provide functions 15 such as serialization, de-serialization, encoding, decoding and is responsible 17 controllers have PHY functionality embedded into it and others use an external 18 PHY. Other peripherals that use PHY include Wireless LAN, Ethernet, 21 The intention of creating this framework is to bring the PHY drivers spread 22 all over the Linux kernel to drivers/phy to increase code re-use and for [all …]
|
| /kernel/linux/linux-5.10/drivers/phy/samsung/ |
| D | phy-samsung-ufs.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * UFS PHY driver for Samsung SoC 18 #include <linux/phy/phy.h> 22 #include "phy-samsung-ufs.h" 24 #define for_each_phy_lane(phy, i) \ argument 25 for (i = 0; i < (phy)->lane_cnt; i++) 27 for (; (cfg)->id; (cfg)++) 31 static void samsung_ufs_phy_config(struct samsung_ufs_phy *phy, in samsung_ufs_phy_config() argument 39 writel(cfg->val, (phy)->reg_pma + cfg->off_0); in samsung_ufs_phy_config() 42 if (cfg->id == PHY_TRSV_BLK) in samsung_ufs_phy_config() [all …]
|