^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #ifndef _PHY_GENERIC_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define _PHY_GENERIC_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #include <linux/usb/usb_phy_generic.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include <linux/gpio/consumer.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include <linux/regulator/consumer.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) struct usb_phy_generic {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) struct usb_phy phy;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) struct device *dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) struct clk *clk;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) struct regulator *vcc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) struct gpio_desc *gpiod_reset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) struct gpio_desc *gpiod_vbus;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) struct regulator *vbus_draw;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) bool vbus_draw_enabled;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) unsigned long mA;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) unsigned int vbus;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) int usb_gen_phy_init(struct usb_phy *phy);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) void usb_gen_phy_shutdown(struct usb_phy *phy);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #endif