| /kernel/linux/linux-5.10/drivers/usb/common/ |
| D | ulpi.c | 3 * ulpi.c - USB ULPI PHY bus 10 #include <linux/ulpi/interface.h> 11 #include <linux/ulpi/driver.h> 12 #include <linux/ulpi/regs.h> 22 int ulpi_read(struct ulpi *ulpi, u8 addr) in ulpi_read() argument 24 return ulpi->ops->read(ulpi->dev.parent, addr); in ulpi_read() 28 int ulpi_write(struct ulpi *ulpi, u8 addr, u8 val) in ulpi_write() argument 30 return ulpi->ops->write(ulpi->dev.parent, addr, val); in ulpi_write() 39 struct ulpi *ulpi = to_ulpi_dev(dev); in ulpi_match() local 43 * Some ULPI devices don't have a vendor id in ulpi_match() [all …]
|
| D | Kconfig | 18 tristate "USB ULPI PHY interface support" 21 UTMI+ Low Pin Interface (ULPI) is specification for a commonly used 22 USB 2.0 PHY interface. The ULPI specification defines a standard set 24 allows ULPI to be handled as a bus. This module is the driver for that 27 The ULPI interfaces (the buses) are registered by the drivers for USB 28 controllers which support ULPI register access and have ULPI PHY 29 attached to them. The ULPI PHY drivers themselves are normal PHY 32 ULPI PHYs provide often functions such as ADP sensing/probing (OTG 36 be called ulpi.
|
| /kernel/linux/linux-6.6/drivers/usb/common/ |
| D | ulpi.c | 3 * ulpi.c - USB ULPI PHY bus 10 #include <linux/ulpi/interface.h> 11 #include <linux/ulpi/driver.h> 12 #include <linux/ulpi/regs.h> 23 int ulpi_read(struct ulpi *ulpi, u8 addr) in ulpi_read() argument 25 return ulpi->ops->read(ulpi->dev.parent, addr); in ulpi_read() 29 int ulpi_write(struct ulpi *ulpi, u8 addr, u8 val) in ulpi_write() argument 31 return ulpi->ops->write(ulpi->dev.parent, addr, val); in ulpi_write() 40 struct ulpi *ulpi = to_ulpi_dev(dev); in ulpi_match() local 44 * Some ULPI devices don't have a vendor id in ulpi_match() [all …]
|
| D | Kconfig | 18 tristate "USB ULPI PHY interface support" 21 UTMI+ Low Pin Interface (ULPI) is specification for a commonly used 22 USB 2.0 PHY interface. The ULPI specification defines a standard set 24 allows ULPI to be handled as a bus. This module is the driver for that 27 The ULPI interfaces (the buses) are registered by the drivers for USB 28 controllers which support ULPI register access and have ULPI PHY 29 attached to them. The ULPI PHY drivers themselves are normal PHY 32 ULPI PHYs provide often functions such as ADP sensing/probing (OTG 36 be called ulpi.
|
| /kernel/linux/linux-6.6/include/linux/ulpi/ |
| D | driver.h | 12 * struct ulpi - describes ULPI PHY device 13 * @id: vendor and product ids for ULPI device 17 struct ulpi { struct 23 #define to_ulpi_dev(d) container_of(d, struct ulpi, dev) argument 25 static inline void ulpi_set_drvdata(struct ulpi *ulpi, void *data) in ulpi_set_drvdata() argument 27 dev_set_drvdata(&ulpi->dev, data); in ulpi_set_drvdata() 30 static inline void *ulpi_get_drvdata(struct ulpi *ulpi) in ulpi_get_drvdata() argument 32 return dev_get_drvdata(&ulpi->dev); in ulpi_get_drvdata() 36 * struct ulpi_driver - describes a ULPI PHY driver 38 * @probe: binds this driver to ULPI device [all …]
|
| D | interface.h | 7 struct ulpi; 11 * struct ulpi_ops - ULPI register access 12 * @read: read operation for ULPI register access 13 * @write: write operation for ULPI register access 20 struct ulpi *ulpi_register_interface(struct device *, const struct ulpi_ops *); 21 void ulpi_unregister_interface(struct ulpi *);
|
| /kernel/linux/linux-5.10/include/linux/ulpi/ |
| D | driver.h | 12 * struct ulpi - describes ULPI PHY device 13 * @id: vendor and product ids for ULPI device 17 struct ulpi { struct 23 #define to_ulpi_dev(d) container_of(d, struct ulpi, dev) argument 25 static inline void ulpi_set_drvdata(struct ulpi *ulpi, void *data) in ulpi_set_drvdata() argument 27 dev_set_drvdata(&ulpi->dev, data); in ulpi_set_drvdata() 30 static inline void *ulpi_get_drvdata(struct ulpi *ulpi) in ulpi_get_drvdata() argument 32 return dev_get_drvdata(&ulpi->dev); in ulpi_get_drvdata() 36 * struct ulpi_driver - describes a ULPI PHY driver 38 * @probe: binds this driver to ULPI device [all …]
|
| D | interface.h | 7 struct ulpi; 11 * struct ulpi_ops - ULPI register access 12 * @read: read operation for ULPI register access 13 * @write: write operation for ULPI register access 20 struct ulpi *ulpi_register_interface(struct device *, const struct ulpi_ops *); 21 void ulpi_unregister_interface(struct ulpi *);
|
| /kernel/linux/linux-5.10/drivers/phy/ti/ |
| D | phy-tusb1210.c | 3 * tusb1210.c - TUSB1210 USB ULPI PHY driver 10 #include <linux/ulpi/driver.h> 11 #include <linux/ulpi/regs.h> 21 struct ulpi *ulpi; member 37 ulpi_write(tusb->ulpi, TUSB1210_VENDOR_SPECIFIC2, in tusb1210_power_on() 58 ret = ulpi_read(tusb->ulpi, ULPI_OTG_CTRL); in tusb1210_set_mode() 68 ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret); in tusb1210_set_mode() 75 ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret); in tusb1210_set_mode() 83 return ulpi_write(tusb->ulpi, ULPI_OTG_CTRL, ret); in tusb1210_set_mode() 93 static int tusb1210_probe(struct ulpi *ulpi) in tusb1210_probe() argument [all …]
|
| /kernel/linux/linux-6.6/drivers/phy/qualcomm/ |
| D | phy-qcom-usb-hsic.c | 6 #include <linux/ulpi/driver.h> 7 #include <linux/ulpi/regs.h> 18 struct ulpi *ulpi; member 29 struct ulpi *ulpi = uphy->ulpi; in qcom_usb_hsic_phy_power_on() local 46 ret = ulpi_write(ulpi, ULPI_HSIC_IO_CAL, 0xff); in qcom_usb_hsic_phy_power_on() 51 ret = ulpi_write(ulpi, ULPI_HSIC_CFG, 0xa8); in qcom_usb_hsic_phy_power_on() 67 ret = ulpi_write(ulpi, ULPI_SET(ULPI_HSIC_CFG), 0x01); in qcom_usb_hsic_phy_power_on() 72 ret = ulpi_write(ulpi, ULPI_CLR(ULPI_IFC_CTRL), in qcom_usb_hsic_phy_power_on() 104 static int qcom_usb_hsic_phy_probe(struct ulpi *ulpi) in qcom_usb_hsic_phy_probe() argument 110 uphy = devm_kzalloc(&ulpi->dev, sizeof(*uphy), GFP_KERNEL); in qcom_usb_hsic_phy_probe() [all …]
|
| D | phy-qcom-usb-hs.c | 6 #include <linux/ulpi/driver.h> 7 #include <linux/ulpi/regs.h> 30 struct ulpi *ulpi; member 64 ret = ulpi_write(uphy->ulpi, ULPI_USB_INT_EN_RISE, val); in qcom_usb_hs_phy_set_mode() 67 ret = ulpi_write(uphy->ulpi, ULPI_USB_INT_EN_FALL, val); in qcom_usb_hs_phy_set_mode() 81 ret = ulpi_write(uphy->ulpi, ULPI_SET(ULPI_PWR_CLK_MNG_REG), in qcom_usb_hs_phy_set_mode() 85 ret = ulpi_write(uphy->ulpi, addr, ULPI_MISC_A_VBUSVLDEXTSEL); in qcom_usb_hs_phy_set_mode() 105 return ulpi_write(uphy->ulpi, addr, ULPI_MISC_A_VBUSVLDEXT); in qcom_usb_hs_phy_vbus_notifier() 111 struct ulpi *ulpi = uphy->ulpi; in qcom_usb_hs_phy_power_on() local 145 ret = ulpi_write(ulpi, ULPI_EXT_VENDOR_SPECIFIC + seq->addr, in qcom_usb_hs_phy_power_on() [all …]
|
| /kernel/linux/linux-5.10/drivers/phy/qualcomm/ |
| D | phy-qcom-usb-hsic.c | 6 #include <linux/ulpi/driver.h> 7 #include <linux/ulpi/regs.h> 18 struct ulpi *ulpi; member 29 struct ulpi *ulpi = uphy->ulpi; in qcom_usb_hsic_phy_power_on() local 46 ret = ulpi_write(ulpi, ULPI_HSIC_IO_CAL, 0xff); in qcom_usb_hsic_phy_power_on() 51 ret = ulpi_write(ulpi, ULPI_HSIC_CFG, 0xa8); in qcom_usb_hsic_phy_power_on() 67 ret = ulpi_write(ulpi, ULPI_SET(ULPI_HSIC_CFG), 0x01); in qcom_usb_hsic_phy_power_on() 72 ret = ulpi_write(ulpi, ULPI_CLR(ULPI_IFC_CTRL), in qcom_usb_hsic_phy_power_on() 104 static int qcom_usb_hsic_phy_probe(struct ulpi *ulpi) in qcom_usb_hsic_phy_probe() argument 110 uphy = devm_kzalloc(&ulpi->dev, sizeof(*uphy), GFP_KERNEL); in qcom_usb_hsic_phy_probe() [all …]
|
| D | phy-qcom-usb-hs.c | 6 #include <linux/ulpi/driver.h> 7 #include <linux/ulpi/regs.h> 30 struct ulpi *ulpi; member 63 ret = ulpi_write(uphy->ulpi, ULPI_USB_INT_EN_RISE, val); in qcom_usb_hs_phy_set_mode() 66 ret = ulpi_write(uphy->ulpi, ULPI_USB_INT_EN_FALL, val); in qcom_usb_hs_phy_set_mode() 80 ret = ulpi_write(uphy->ulpi, ULPI_SET(ULPI_PWR_CLK_MNG_REG), in qcom_usb_hs_phy_set_mode() 84 ret = ulpi_write(uphy->ulpi, addr, ULPI_MISC_A_VBUSVLDEXTSEL); in qcom_usb_hs_phy_set_mode() 104 return ulpi_write(uphy->ulpi, addr, ULPI_MISC_A_VBUSVLDEXT); in qcom_usb_hs_phy_vbus_notifier() 110 struct ulpi *ulpi = uphy->ulpi; in qcom_usb_hs_phy_power_on() local 144 ret = ulpi_write(ulpi, ULPI_EXT_VENDOR_SPECIFIC + seq->addr, in qcom_usb_hs_phy_power_on() [all …]
|
| /kernel/linux/linux-6.6/drivers/phy/ti/ |
| D | phy-tusb1210.c | 3 * tusb1210.c - TUSB1210 USB ULPI PHY driver 12 #include <linux/ulpi/driver.h> 13 #include <linux/ulpi/regs.h> 55 struct ulpi *ulpi; member 75 ret = ulpi_write(tusb->ulpi, reg, val); in tusb1210_ulpi_write() 77 dev_err(&tusb->ulpi->dev, "error %d writing val 0x%02x to reg 0x%02x\n", in tusb1210_ulpi_write() 87 ret = ulpi_read(tusb->ulpi, reg); in tusb1210_ulpi_read() 92 dev_err(&tusb->ulpi->dev, "error %d reading reg 0x%02x\n", ret, reg); in tusb1210_ulpi_read() 180 dev_dbg(&tusb->ulpi->dev, "charger type: %d\n", type); in tusb1210_chg_det_set_type() 191 dev_dbg(&tusb->ulpi->dev, "chg_det new state %s in %d ms\n", in tusb1210_chg_det_set_state() [all …]
|
| /kernel/linux/linux-6.6/include/linux/phy/ |
| D | ulpi_phy.h | 5 * Helper that registers PHY for a ULPI device and adds a lookup for binding it 9 *ulpi_phy_create(struct ulpi *ulpi, const struct phy_ops *ops) in ulpi_phy_create() argument 14 phy = phy_create(&ulpi->dev, NULL, ops); in ulpi_phy_create() 18 ret = phy_create_lookup(phy, "usb2-phy", dev_name(ulpi->dev.parent)); in ulpi_phy_create() 28 static inline void ulpi_phy_destroy(struct ulpi *ulpi, struct phy *phy) in ulpi_phy_destroy() argument 30 phy_remove_lookup(phy, "usb2-phy", dev_name(ulpi->dev.parent)); in ulpi_phy_destroy()
|
| /kernel/linux/linux-5.10/include/linux/phy/ |
| D | ulpi_phy.h | 5 * Helper that registers PHY for a ULPI device and adds a lookup for binding it 9 *ulpi_phy_create(struct ulpi *ulpi, const struct phy_ops *ops) in ulpi_phy_create() argument 14 phy = phy_create(&ulpi->dev, NULL, ops); in ulpi_phy_create() 18 ret = phy_create_lookup(phy, "usb2-phy", dev_name(ulpi->dev.parent)); in ulpi_phy_create() 28 static inline void ulpi_phy_destroy(struct ulpi *ulpi, struct phy *phy) in ulpi_phy_destroy() argument 30 phy_remove_lookup(phy, "usb2-phy", dev_name(ulpi->dev.parent)); in ulpi_phy_destroy()
|
| /kernel/linux/linux-6.6/drivers/usb/dwc3/ |
| D | ulpi.c | 3 * ulpi.c - DesignWare USB3 Controller's ULPI PHY interface 12 #include <linux/ulpi/regs.h> 89 dwc->ulpi = ulpi_register_interface(dwc->dev, &dwc3_ulpi_ops); in dwc3_ulpi_init() 90 if (IS_ERR(dwc->ulpi)) { in dwc3_ulpi_init() 91 dev_err(dwc->dev, "failed to register ULPI interface"); in dwc3_ulpi_init() 92 return PTR_ERR(dwc->ulpi); in dwc3_ulpi_init() 100 if (dwc->ulpi) { in dwc3_ulpi_exit() 101 ulpi_unregister_interface(dwc->ulpi); in dwc3_ulpi_exit() 102 dwc->ulpi = NULL; in dwc3_ulpi_exit()
|
| /kernel/linux/linux-5.10/drivers/usb/dwc3/ |
| D | ulpi.c | 3 * ulpi.c - DesignWare USB3 Controller's ULPI PHY interface 12 #include <linux/ulpi/regs.h> 89 dwc->ulpi = ulpi_register_interface(dwc->dev, &dwc3_ulpi_ops); in dwc3_ulpi_init() 90 if (IS_ERR(dwc->ulpi)) { in dwc3_ulpi_init() 91 dev_err(dwc->dev, "failed to register ULPI interface"); in dwc3_ulpi_init() 92 return PTR_ERR(dwc->ulpi); in dwc3_ulpi_init() 100 if (dwc->ulpi) { in dwc3_ulpi_exit() 101 ulpi_unregister_interface(dwc->ulpi); in dwc3_ulpi_exit() 102 dwc->ulpi = NULL; in dwc3_ulpi_exit()
|
| /kernel/linux/linux-6.6/drivers/usb/chipidea/ |
| D | ulpi.c | 8 #include <linux/ulpi/interface.h> 72 * Set PORTSC correctly so we can read/write ULPI registers for in ci_ulpi_init() 79 ci->ulpi = ulpi_register_interface(ci->dev, &ci->ulpi_ops); in ci_ulpi_init() 80 if (IS_ERR(ci->ulpi)) in ci_ulpi_init() 81 dev_err(ci->dev, "failed to register ULPI interface"); in ci_ulpi_init() 83 return PTR_ERR_OR_ZERO(ci->ulpi); in ci_ulpi_init() 88 if (ci->ulpi) { in ci_ulpi_exit() 89 ulpi_unregister_interface(ci->ulpi); in ci_ulpi_exit() 90 ci->ulpi = NULL; in ci_ulpi_exit()
|
| /kernel/linux/linux-5.10/drivers/usb/chipidea/ |
| D | ulpi.c | 8 #include <linux/ulpi/interface.h> 72 * Set PORTSC correctly so we can read/write ULPI registers for in ci_ulpi_init() 79 ci->ulpi = ulpi_register_interface(ci->dev, &ci->ulpi_ops); in ci_ulpi_init() 80 if (IS_ERR(ci->ulpi)) in ci_ulpi_init() 81 dev_err(ci->dev, "failed to register ULPI interface"); in ci_ulpi_init() 83 return PTR_ERR_OR_ZERO(ci->ulpi); in ci_ulpi_init() 88 if (ci->ulpi) { in ci_ulpi_exit() 89 ulpi_unregister_interface(ci->ulpi); in ci_ulpi_exit() 90 ci->ulpi = NULL; in ci_ulpi_exit()
|
| /kernel/linux/linux-5.10/drivers/usb/phy/ |
| D | phy-ulpi.c | 3 * Generic ULPI USB transceiver support 18 #include <linux/usb/ulpi.h> 33 /* ULPI hardcoded IDs, used for probing */ 51 * ULPI Specification rev.1.1 default in ulpi_set_otg_flags() 71 * ULPI Specification rev.1.1 default in ulpi_set_fc_flags() 87 * ULPI Specification rev.1.1 default in ulpi_set_fc_flags() 100 * ULPI Specification rev.1.1 default in ulpi_set_fc_flags() 157 pr_err("ULPI integrity check: failed!"); in ulpi_check_integrity() 163 pr_info("ULPI integrity check: passed.\n"); in ulpi_check_integrity() 182 pr_info("ULPI transceiver vendor/product ID 0x%04x/0x%04x\n", vid, pid); in ulpi_init() [all …]
|
| /kernel/linux/linux-6.6/drivers/usb/phy/ |
| D | phy-ulpi.c | 3 * Generic ULPI USB transceiver support 18 #include <linux/usb/ulpi.h> 33 /* ULPI hardcoded IDs, used for probing */ 51 * ULPI Specification rev.1.1 default in ulpi_set_otg_flags() 71 * ULPI Specification rev.1.1 default in ulpi_set_fc_flags() 87 * ULPI Specification rev.1.1 default in ulpi_set_fc_flags() 100 * ULPI Specification rev.1.1 default in ulpi_set_fc_flags() 157 pr_err("ULPI integrity check: failed!"); in ulpi_check_integrity() 163 pr_info("ULPI integrity check: passed.\n"); in ulpi_check_integrity() 182 pr_info("ULPI transceiver vendor/product ID 0x%04x/0x%04x\n", vid, pid); in ulpi_init() [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/usb/ |
| D | ulpi.txt | 1 ULPI bus binding 4 Phys that are behind a ULPI connection can be described with the following 5 binding. The host controller shall have a "ulpi" named node as a child, and 6 that node shall have one enabled node underneath it representing the ulpi 15 ulpi {
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/usb/ |
| D | ulpi.txt | 1 ULPI bus binding 4 Phys that are behind a ULPI connection can be described with the following 5 binding. The host controller shall have a "ulpi" named node as a child, and 6 that node shall have one enabled node underneath it representing the ulpi 15 ulpi {
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/phy/ |
| D | nvidia,tegra20-usb-phy.txt | 15 - phy_type : Should be one of "utmi", "ulpi" or "hsic". 24 - ulpi-link: The clock Tegra provides to the ULPI PHY (usually pad DAP_MCLK2 27 Present if phy_type == ulpi, and ULPI link mode is in use. 33 registers. Required even if phy_type == ulpi. 35 Required properties for phy_type == ulpi:
|