__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Platform data for the chipidea USB dual role controller
*/
#ifndef __LINUX_USB_CHIPIDEA_H
#define __LINUX_USB_CHIPIDEA_H
#include <linux/extcon.h>
#include <linux/usb/otg.h>
struct ci_hdrc;
/**
* struct ci_hdrc_cable - structure for external connector cable state tracking
* @connected: true if cable is connected, false otherwise
* @changed: set to true when extcon event happen
* @enabled: set to true if we've enabled the vbus or id interrupt
* @edev: device which generate events
* @ci: driver state of the chipidea device
* @nb: hold event notification callback
* @conn: used for notification registration
*/
struct ci_hdrc_cable {
bool connected;
bool changed;
bool enabled;
struct extcon_dev *edev;
struct ci_hdrc *ci;
struct notifier_block nb;
};
struct ci_hdrc_platform_data {
const char *name;
/* offset of the capability registers */
uintptr_t capoffset;
unsigned power_budget;
struct phy *phy;
/* old usb_phy interface */
struct usb_phy *usb_phy;
enum usb_phy_interface phy_mode;
unsigned long flags;
#define CI_HDRC_REGS_SHARED BIT(0)
#define CI_HDRC_DISABLE_DEVICE_STREAMING BIT(1)
#define CI_HDRC_SUPPORTS_RUNTIME_PM BIT(2)
#define CI_HDRC_DISABLE_HOST_STREAMING BIT(3)
#define CI_HDRC_DISABLE_STREAMING (CI_HDRC_DISABLE_DEVICE_STREAMING | \
CI_HDRC_DISABLE_HOST_STREAMING)
/*
* Only set it when DCCPARAMS.DC==1 and DCCPARAMS.HC==1,
* but otg is not supported (no register otgsc).
*/
#define CI_HDRC_DUAL_ROLE_NOT_OTG BIT(4)
#define CI_HDRC_IMX28_WRITE_FIX BIT(5)
#define CI_HDRC_FORCE_FULLSPEED BIT(6)
#define CI_HDRC_TURN_VBUS_EARLY_ON BIT(7)
#define CI_HDRC_SET_NON_ZERO_TTHA BIT(8)
#define CI_HDRC_OVERRIDE_AHB_BURST BIT(9)
#define CI_HDRC_OVERRIDE_TX_BURST BIT(10)
#define CI_HDRC_OVERRIDE_RX_BURST BIT(11)
#define CI_HDRC_OVERRIDE_PHY_CONTROL BIT(12) /* Glue layer manages phy */
#define CI_HDRC_REQUIRES_ALIGNED_DMA BIT(13)
#define CI_HDRC_IMX_IS_HSIC BIT(14)
#define CI_HDRC_PMQOS BIT(15)
#define CI_HDRC_PHY_VBUS_CONTROL BIT(16)
#define CI_HDRC_HAS_PORTSC_PEC_MISSED BIT(17)
#define CI_HDRC_FORCE_VBUS_ACTIVE_ALWAYS BIT(18)
#define CI_HDRC_HAS_SHORT_PKT_LIMIT BIT(19)
enum usb_dr_mode dr_mode;
#define CI_HDRC_CONTROLLER_RESET_EVENT 0
#define CI_HDRC_CONTROLLER_STOPPED_EVENT 1
#define CI_HDRC_IMX_HSIC_ACTIVE_EVENT 2
#define CI_HDRC_IMX_HSIC_SUSPEND_EVENT 3
#define CI_HDRC_CONTROLLER_VBUS_EVENT 4
int (*notify_event) (struct ci_hdrc *ci, unsigned event);
struct regulator *reg_vbus;
struct usb_otg_caps ci_otg_caps;
bool tpl_support;
/* interrupt threshold setting */
u32 itc_setting;
u32 ahb_burst_config;
u32 tx_burst_size;
u32 rx_burst_size;
/* VBUS and ID signal state tracking, using extcon framework */
struct ci_hdrc_cable vbus_extcon;
struct ci_hdrc_cable id_extcon;
u32 phy_clkgate_delay_us;
/* pins */
struct pinctrl *pctl;
struct pinctrl_state *pins_default;
struct pinctrl_state *pins_host;
struct pinctrl_state *pins_device;
/* platform-specific hooks */
int (*hub_control)(struct ci_hdrc *ci, u16 typeReq, u16 wValue,
u16 wIndex, char *buf, u16 wLength,
bool *done, unsigned long *flags);
void (*enter_lpm)(struct ci_hdrc *ci, bool enable);
};
/* Default offset of capability registers */
#define DEF_CAPOFFSET 0x100
/* Add ci hdrc device */
struct platform_device *ci_hdrc_add_device(struct device *dev,
struct resource *res, int nres,
struct ci_hdrc_platform_data *platdata);
/* Remove ci hdrc device */
void ci_hdrc_remove_device(struct platform_device *pdev);
/* Get current available role */
enum usb_dr_mode ci_hdrc_query_available_role(struct platform_device *pdev);
#endif
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| audio-v2.h | File | 13.87 KB | 0644 |
|
| audio-v3.h | File | 13.94 KB | 0644 |
|
| audio.h | File | 1.08 KB | 0644 |
|
| c67x00.h | File | 1.12 KB | 0644 |
|
| ccid.h | File | 787 B | 0644 |
|
| cdc-wdm.h | File | 511 B | 0644 |
|
| cdc.h | File | 1.3 KB | 0644 |
|
| cdc_ncm.h | File | 5.84 KB | 0644 |
|
| ch9.h | File | 2.13 KB | 0644 |
|
| chipidea.h | File | 3.61 KB | 0644 |
|
| composite.h | File | 24.61 KB | 0644 |
|
| ehci-dbgp.h | File | 2.05 KB | 0644 |
|
| ehci_def.h | File | 7.4 KB | 0644 |
|
| ehci_pdriver.h | File | 1.66 KB | 0644 |
|
| ezusb.h | File | 286 B | 0644 |
|
| func_utils.h | File | 2.65 KB | 0644 |
|
| functionfs.h | File | 151 B | 0644 |
|
| g_hid.h | File | 442 B | 0644 |
|
| gadget.h | File | 36.8 KB | 0644 |
|
| gadget_configfs.h | File | 2.87 KB | 0644 |
|
| hcd.h | File | 27.41 KB | 0644 |
|
| input.h | File | 526 B | 0644 |
|
| iowarrior.h | File | 1.34 KB | 0644 |
|
| irda.h | File | 3.76 KB | 0644 |
|
| isp116x.h | File | 1.13 KB | 0644 |
|
| isp1301.h | File | 1.93 KB | 0644 |
|
| isp1362.h | File | 1.59 KB | 0644 |
|
| ljca.h | File | 4.2 KB | 0644 |
|
| m66592.h | File | 773 B | 0644 |
|
| midi-v2.h | File | 3.55 KB | 0644 |
|
| musb-ux500.h | File | 395 B | 0644 |
|
| musb.h | File | 3.16 KB | 0644 |
|
| net2280.h | File | 22.86 KB | 0644 |
|
| of.h | File | 2.03 KB | 0644 |
|
| ohci_pdriver.h | File | 1.02 KB | 0644 |
|
| onboard_dev.h | File | 584 B | 0644 |
|
| otg-fsm.h | File | 7.93 KB | 0644 |
|
| otg.h | File | 3.08 KB | 0644 |
|
| pd.h | File | 16.7 KB | 0644 |
|
| pd_ado.h | File | 1.16 KB | 0644 |
|
| pd_bdo.h | File | 556 B | 0644 |
|
| pd_ext_sdb.h | File | 698 B | 0644 |
|
| pd_vdo.h | File | 16.51 KB | 0644 |
|
| phy.h | File | 8.09 KB | 0644 |
|
| phy_companion.h | File | 693 B | 0644 |
|
| quirks.h | File | 2.44 KB | 0644 |
|
| r8152.h | File | 1.04 KB | 0644 |
|
| r8a66597.h | File | 16.99 KB | 0644 |
|
| renesas_usbhs.h | File | 3.62 KB | 0644 |
|
| rndis_host.h | File | 5.32 KB | 0644 |
|
| role.h | File | 3.58 KB | 0644 |
|
| rzv2m_usb3drd.h | File | 450 B | 0644 |
|
| serial.h | File | 17.17 KB | 0644 |
|
| sl811.h | File | 838 B | 0644 |
|
| storage.h | File | 2.77 KB | 0644 |
|
| tcpci.h | File | 8.49 KB | 0644 |
|
| tcpm.h | File | 7.73 KB | 0644 |
|
| tegra_usb_phy.h | File | 2.23 KB | 0644 |
|
| typec.h | File | 12.61 KB | 0644 |
|
| typec_altmode.h | File | 7.71 KB | 0644 |
|
| typec_dp.h | File | 4.69 KB | 0644 |
|
| typec_mux.h | File | 2.77 KB | 0644 |
|
| typec_retimer.h | File | 1.17 KB | 0644 |
|
| typec_tbt.h | File | 1.82 KB | 0644 |
|
| uas.h | File | 2.07 KB | 0644 |
|
| ulpi.h | File | 2.1 KB | 0644 |
|
| usb338x.h | File | 7.29 KB | 0644 |
|
| usb_phy_generic.h | File | 582 B | 0644 |
|
| usbnet.h | File | 10.07 KB | 0644 |
|
| uvc.h | File | 6.46 KB | 0644 |
|
| webusb.h | File | 2.4 KB | 0644 |
|
| xhci-dbgp.h | File | 651 B | 0644 |
|