Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0+
0002 /*
0003  * Copyright (C) 2012 Hauke Mehrtens <hauke@hauke-m.de>
0004  */
0005 
0006 #ifndef __USB_CORE_EHCI_PDRIVER_H
0007 #define __USB_CORE_EHCI_PDRIVER_H
0008 
0009 struct platform_device;
0010 struct usb_hcd;
0011 
0012 /**
0013  * struct usb_ehci_pdata - platform_data for generic ehci driver
0014  *
0015  * @caps_offset:    offset of the EHCI Capability Registers to the start of
0016  *          the io memory region provided to the driver.
0017  * @has_tt:     set to 1 if TT is integrated in root hub.
0018  * @port_power_on:  set to 1 if the controller needs a power up after
0019  *          initialization.
0020  * @port_power_off: set to 1 if the controller needs to be powered down
0021  *          after initialization.
0022  * @no_io_watchdog: set to 1 if the controller does not need the I/O
0023  *          watchdog to run.
0024  * @reset_on_resume:    set to 1 if the controller needs to be reset after
0025  *          a suspend / resume cycle (but can't detect that itself).
0026  *
0027  * These are general configuration options for the EHCI controller. All of
0028  * these options are activating more or less workarounds for some hardware.
0029  */
0030 struct usb_ehci_pdata {
0031     int     caps_offset;
0032     unsigned    has_tt:1;
0033     unsigned    has_synopsys_hc_bug:1;
0034     unsigned    big_endian_desc:1;
0035     unsigned    big_endian_mmio:1;
0036     unsigned    no_io_watchdog:1;
0037     unsigned    reset_on_resume:1;
0038     unsigned    dma_mask_64:1;
0039     unsigned    spurious_oc:1;
0040 
0041     /* Turn on all power and clocks */
0042     int (*power_on)(struct platform_device *pdev);
0043     /* Turn off all power and clocks */
0044     void (*power_off)(struct platform_device *pdev);
0045     /* Turn on only VBUS suspend power and hotplug detection,
0046      * turn off everything else */
0047     void (*power_suspend)(struct platform_device *pdev);
0048     int (*pre_setup)(struct usb_hcd *hcd);
0049 };
0050 
0051 #endif /* __USB_CORE_EHCI_PDRIVER_H */