/linux-6.12.1/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 15 #include <linux/device.h> 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. [all …]
|
/linux-6.12.1/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 15 #include <linux/device.h> 18 #include <linux/phy/phy.h> 23 static void phy_release(struct device *dev); 25 .name = "phy", 35 static void devm_phy_release(struct device *dev, void *res) in devm_phy_release() 37 struct phy *phy = *(struct phy **)res; in devm_phy_release() local 39 phy_put(dev, phy); in devm_phy_release() [all …]
|
/linux-6.12.1/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 …]
|
/linux-6.12.1/Documentation/translations/zh_CN/driver-api/phy/ |
D | phy.rst | 1 .. SPDX-License-Identifier: GPL-2.0 2 .. include:: ../../disclaimer-zh_CN.rst 4 :Original: Documentation/driver-api/phy/phy.rst 16 本文档解释了 PHY 的通用框架和提供的API,以及使用方法。 21 *PHY* 是物理层的缩写,它被用来把设备连接到一个物理媒介,例如USB控制器 22 有一个提供序列化、反序列化、编码、解码和负责获取所需的数据传输速率的 PHY。 23 注意,有些USB控制器内嵌了 PHY 的功能,其它的则使用了一个外置的PHY,此外 24 使用 PHY 的设备还有无线网、以太网、SATA等(控制器)。 26 创建这个框架的目的是将遍布 Linux 内核的 PHY 驱动程序融入到 drivers/phy, 29 该框架仅适用于使用外部 PHY(PHY 功能未嵌入控制器内)的设备。 [all …]
|
/linux-6.12.1/drivers/usb/phy/ |
D | phy.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * phy.c -- USB phy handling 5 * Copyright (C) 2004-2013 Texas Instruments 10 #include <linux/device.h> 15 #include <linux/usb/phy.h> 33 struct usb_phy *phy; member 54 struct usb_phy *phy = NULL; in __usb_find_phy() local 56 list_for_each_entry(phy, list, head) { in __usb_find_phy() 57 if (phy->type != type) in __usb_find_phy() 60 return phy; in __usb_find_phy() [all …]
|
D | phy-tahvo.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2005-2006 Nokia Corporation 18 #include <linux/extcon-provider.h> 26 #define DRIVER_NAME "tahvo-usb" 46 struct usb_phy phy; member 62 static ssize_t vbus_show(struct device *device, in vbus_show() argument 65 struct tahvo_usb *tu = dev_get_drvdata(device); in vbus_show() 66 return sprintf(buf, "%s\n", tu->vbus_state ? "on" : "off"); in vbus_show() 72 struct retu_dev *rdev = dev_get_drvdata(tu->pt_dev->dev.parent); in check_vbus_state() 77 switch (tu->phy.otg->state) { in check_vbus_state() [all …]
|
/linux-6.12.1/drivers/scsi/ |
D | scsi_transport_sas.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2005-2006 Dell Inc. 13 * introduces two additional intermediate objects: The SAS PHY 14 * as represented by struct sas_phy defines an "outgoing" PHY on 15 * a SAS HBA or Expander, and the SAS remote PHY represented by 16 * struct sas_rphy defines an "incoming" PHY on a SAS Expander or 17 * end device. Note that this is purely a software concept, the 18 * underlying hardware for a PHY and a remote PHY is the exactly 51 #define to_sas_host_attrs(host) ((struct sas_host_attrs *)(host)->shost_data) 100 return -EINVAL; \ [all …]
|
/linux-6.12.1/drivers/scsi/hisi_sas/ |
D | hisi_sas_main.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 11 ((!dev) || (dev->dev_type == SAS_PHY_UNUSED)) 13 static int hisi_sas_softreset_ata_disk(struct domain_device *device); 17 struct domain_device *device); 18 static void hisi_sas_dev_gone(struct domain_device *device); 26 switch (fis->command) { in hisi_sas_get_ata_protocol() 79 switch (fis->features) { in hisi_sas_get_ata_protocol() 105 struct task_status_struct *ts = &task->task_status; in hisi_sas_sata_done() 106 struct ata_task_resp *resp = (struct ata_task_resp *)ts->buf; in hisi_sas_sata_done() 109 u8 *iu = &status_buf->iu[0]; in hisi_sas_sata_done() [all …]
|
/linux-6.12.1/drivers/net/mdio/ |
D | of_mdio.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * OF helpers for the MDIO (Ethernet PHY) API 7 * This file provides helper functions for extracting PHY device information 8 * out of the OpenFirmware device tree and using it to populate an mii_bus. 11 #include <linux/device.h> 21 #include <linux/phy.h> 28 MODULE_DESCRIPTION("OpenFirmware MDIO bus (Ethernet PHY) accessors"); 30 /* Extract the clause 22 phy ID from the compatible string of the form 31 * ethernet-phy-idAAAA.BBBB */ 32 static int of_get_phy_id(struct device_node *device, u32 *phy_id) in of_get_phy_id() argument [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/phy/ |
D | phy-hisi-inno-usb2.txt | 1 Device tree bindings for HiSilicon INNO USB2 PHY 4 - compatible: Should be one of the following strings: 5 "hisilicon,inno-usb2-phy", 6 "hisilicon,hi3798cv200-usb2-phy". 7 - reg: Should be the address space for PHY configuration register in peripheral 9 - clocks: The phandle and clock specifier pair for INNO USB2 PHY device 11 - resets: The phandle and reset specifier pair for INNO USB2 PHY device reset 13 - #address-cells: Must be 1. 14 - #size-cells: Must be 0. 16 The INNO USB2 PHY device should be a child node of peripheral controller that [all …]
|
D | phy-bindings.txt | 1 This document explains only the device tree data binding. For general 2 information about PHY subsystem refer to Documentation/driver-api/phy/phy.rst 4 PHY device node 8 #phy-cells: Number of cells in a PHY specifier; The meaning of all those 9 cells is defined by the binding for the phy node. The PHY 11 PHY. 14 phy-supply: Phandle to a regulator that provides power to the PHY. This 15 regulator will be managed during the PHY power on/off sequence. 19 phys: phy { 24 #phy-cells = <1>; [all …]
|
/linux-6.12.1/drivers/usb/core/ |
D | phy.c | 1 // SPDX-License-Identifier: GPL-2.0+ 4 * multiple (actual) PHY devices. This is comes handy when initializing 10 #include <linux/device.h> 12 #include <linux/phy/phy.h> 15 #include "phy.h" 18 struct phy *phy; member 22 /* Allocate the roothub_entry by specific name of phy */ 23 static int usb_phy_roothub_add_phy_by_name(struct device *dev, const char *name, in usb_phy_roothub_add_phy_by_name() 27 struct phy *phy; in usb_phy_roothub_add_phy_by_name() local 29 phy = devm_of_phy_get(dev, dev->of_node, name); in usb_phy_roothub_add_phy_by_name() [all …]
|
/linux-6.12.1/drivers/staging/greybus/ |
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 8 Select this option if you have a device that follows the 12 will be called gb-audio.ko 18 Select this option if you have a Toshiba APB device that has I2S 19 ports and acts as a Greybus "Dummy codec". This device is a 20 bridge from an APB-I2S port to a Unipro network. 23 will be called gb-audio-codec.ko 29 Select this option if you have a device that follows the 33 will be called gb-bootrom.ko 39 Select this option if you have a device that follows the [all …]
|
/linux-6.12.1/drivers/net/phy/ |
D | ax88796b_rust.rs | 1 // SPDX-License-Identifier: GPL-2.0 6 //! C version of this driver: [`drivers/net/phy/ax88796b.c`](./ax88796b.c) 9 net::phy::{self, reg::C22, DeviceId, Driver}, 30 // Performs a software PHY reset using the standard 32 // Toggle BMCR_RESET bit off to accommodate broken AX8796B PHY implementation 33 // such as used on the Individual Computers' X-Surf 100 Zorro card. 34 fn asix_soft_reset(dev: &mut phy::Device) -> Result { in asix_soft_reset() 43 const FLAGS: u32 = phy::flags::IS_INTERNAL; 50 fn read_status(dev: &mut phy::Device) -> Result<u16> { in read_status() 66 phy::DuplexMode::Full in read_status() [all …]
|
D | phy_device.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Also contains generic PHY driver 29 #include <linux/phy.h> 33 #include <linux/pse-pd/pse.h> 43 MODULE_DESCRIPTION("PHY library"); 252 put_device(&phydev->mdio.dev); in phy_device_free() 264 static void phy_device_release(struct device *dev) in phy_device_release() 266 fwnode_handle_put(dev->fwnode); in phy_device_release() 294 struct device_driver *drv = phydev->mdio.dev.driver; in mdio_bus_phy_may_suspend() 296 struct net_device *netdev = phydev->attached_dev; in mdio_bus_phy_may_suspend() [all …]
|
/linux-6.12.1/drivers/scsi/smartpqi/ |
D | smartpqi_sas_transport.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * driver for Microchip PQI-based storage controllers 4 * Copyright (c) 2019-2023 Microchip Technology Inc. and its subsidiaries 5 * Copyright (c) 2016-2018 Microsemi Corporation 6 * Copyright (c) 2016 PMC-Sierra, Inc. 13 #include <linux/bsg-lib.h> 23 struct sas_phy *phy; in pqi_alloc_sas_phy() local 29 phy = sas_phy_alloc(pqi_sas_port->parent_node->parent_dev, in pqi_alloc_sas_phy() 30 pqi_sas_port->next_phy_index); in pqi_alloc_sas_phy() 31 if (!phy) { in pqi_alloc_sas_phy() [all …]
|
/linux-6.12.1/Documentation/networking/ |
D | phy.rst | 2 PHY Abstraction Layer 10 PHY. The PHY concerns itself with negotiating link parameters with the link 17 the PHY management code with the network driver. This has resulted in large 23 accessed are, in fact, busses, the PHY Abstraction Layer treats them as such. 26 #. Increase code-reuse 27 #. Increase overall code-maintainability 30 Basically, this layer is meant to provide an interface to PHY devices which 37 Most network devices are connected to a PHY by means of a management bus. 40 registered as a distinct device. 47 mii_id is the address on the bus for the PHY, and regnum is the register [all …]
|
/linux-6.12.1/drivers/phy/broadcom/ |
D | phy-bcm-cygnus-pcie.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 #include <linux/phy/phy.h> 24 * struct cygnus_pcie_phy - Cygnus PCIe PHY device 25 * @core: pointer to the Cygnus PCIe PHY core control 26 * @id: internal ID to identify the Cygnus PCIe PHY 27 * @phy: pointer to the kernel PHY device 32 struct phy *phy; member 36 * struct cygnus_pcie_phy_core - Cygnus PCIe PHY core control 37 * @dev: pointer to device 40 * @phys: pointer to Cygnus PHY device [all …]
|
/linux-6.12.1/drivers/scsi/mpi3mr/ |
D | mpi3mr_transport.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * Copyright (C) 2017-2023 Broadcom Inc. 6 * (mailto: mpi3mr-linuxdrv.pdl@broadcom.com) 15 * mpi3mr_post_transport_req - Issue transport requests and wait 33 * Return: 0 on success, non-zero on failure. 41 mutex_lock(&mrioc->transport_cmds.mutex); in mpi3mr_post_transport_req() 42 if (mrioc->transport_cmds.state & MPI3MR_CMD_PENDING) { in mpi3mr_post_transport_req() 43 retval = -1; in mpi3mr_post_transport_req() 45 mutex_unlock(&mrioc->transport_cmds.mutex); in mpi3mr_post_transport_req() 48 mrioc->transport_cmds.state = MPI3MR_CMD_PENDING; in mpi3mr_post_transport_req() [all …]
|
/linux-6.12.1/rust/kernel/net/ |
D | phy.rs | 1 // SPDX-License-Identifier: GPL-2.0 5 //! Network PHY device. 7 //! C headers: [`include/linux/phy.h`](srctree/include/linux/phy.h). 14 /// PHY state machine states. 18 /// Some of PHY drivers access to the state of PHY's software state machine. 20 /// [`enum phy_state`]: srctree/include/linux/phy.h 23 /// PHY device and driver are not ready for anything. 25 /// PHY is ready to send and receive packets. 27 /// PHY is up, but no polling or interrupts are done. 29 /// PHY is up, but is in an error state. [all …]
|
/linux-6.12.1/drivers/dma/ |
D | mmp_pdma.c | 1 // SPDX-License-Identifier: GPL-2.0-only 11 #include <linux/dma-mapping.h> 15 #include <linux/device.h> 32 #define DCSR_NODESC BIT(30) /* No-Descriptor Fetch (read / write) */ 34 #define DCSR_REQPEND BIT(8) /* Request Pending (read-only) */ 35 #define DCSR_STOPSTATE BIT(3) /* Stop State (read-only) */ 61 #define DCMD_ENDIAN BIT(18) /* Device Endian-ness. */ 68 #define DCMD_LENGTH 0x01fff /* length mask (max = 8K - 1) */ 89 struct device *dev; 92 struct mmp_pdma_phy *phy; member [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/net/ |
D | cpsw.txt | 1 TI SoC Ethernet Switch Controller Device Tree Bindings 2 ------------------------------------------------------ 5 - compatible : Should be one of the below:- 7 "ti,am335x-cpsw" for AM335x controllers 8 "ti,am4372-cpsw" for AM437x controllers 9 "ti,dra7-cpsw" for DRA7x controllers 10 - reg : physical base address and size of the cpsw 12 - interrupts : property with a value describing the interrupt 14 - cpdma_channels : Specifies number of channels in CPDMA 15 - ale_entries : Specifies No of entries ALE can hold [all …]
|
D | ibm,emac.txt | 8 correct clock-frequency property. 13 - device_type : "network" 15 - compatible : compatible list, contains 2 entries, first is 16 "ibm,emac-CHIP" where CHIP is the host ASIC (440gx, 18 "ibm,emac4". For Axon, thus, we have: "ibm,emac-axon", 20 - interrupts : <interrupt mapping for EMAC IRQ and WOL IRQ> 21 - reg : <registers mapping> 22 - local-mac-address : 6 bytes, MAC address 23 - mal-device : phandle of the associated McMAL node 24 - mal-tx-channel : 1 cell, index of the tx channel on McMAL associated [all …]
|
/linux-6.12.1/Documentation/ABI/testing/ |
D | sysfs-class-net-phydev | 1 What: /sys/class/mdio_bus/<bus>/<device>/attached_dev 6 Symbolic link to the network device this PHY device is 9 What: /sys/class/mdio_bus/<bus>/<device>/phy_has_fixups 14 This attribute contains the boolean value whether a given PHY 15 device has had any "fixup" workaround running on it, encoded as 17 PHY configurations. 19 What: /sys/class/mdio_bus/<bus>/<device>/phy_id 24 This attribute contains the 32-bit PHY Identifier as reported 25 by the device during bus enumeration, encoded in hexadecimal. 26 This ID is used to match the device with the appropriate [all …]
|
/linux-6.12.1/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 …]
|