misc: tegra-baseband: enable DT EHCI load/unload
[linux-3.10.git] / include / linux / platform_data / tegra_usb_modem_power.h
1 /*
2  * Copyright (c) 2011-2015, NVIDIA CORPORATION.  All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17  */
18
19 #ifndef __MACH_TEGRA_USB_MODEM_POWER_H
20 #define __MACH_TEGRA_USB_MODEM_POWER_H
21
22 #include <linux/interrupt.h>
23 #include <linux/usb.h>
24
25 /* modem capabilities */
26 #define TEGRA_MODEM_AUTOSUSPEND 0x01
27 #define TEGRA_MODEM_RECOVERY    0x02
28 #define TEGRA_USB_HOST_RELOAD   0x04
29 #define TEGRA_MODEM_CPU_BOOST   0x08
30
31 /* modem operations */
32 struct tegra_modem_operations {
33         int (*init) (void);     /* modem init */
34         void (*start) (void);   /* modem start */
35         void (*stop) (void);    /* modem stop */
36         void (*suspend) (void); /* send L3 hint during system suspend */
37         void (*resume) (void);  /* send L3->0 hint during system resume */
38         void (*reset) (void);   /* modem reset */
39 };
40
41 /* tegra usb modem power platform data */
42 struct tegra_usb_modem_power_platform_data {
43         const struct tegra_modem_operations *ops;
44         const struct usb_device_id *modem_list; /* supported modem list */
45         const char *regulator_name;     /* regulator id or supply name */
46         int wake_gpio;                  /* remote wakeup gpio */
47         unsigned long wake_irq_flags;   /* remote wakeup irq flags */
48         int boot_gpio;                  /* modem boot gpio */
49         unsigned long boot_irq_flags;   /* modem boot irq flags */
50         int autosuspend_delay;          /* autosuspend delay in milliseconds */
51         const struct platform_device *tegra_ehci_device; /* USB host device */
52         struct tegra_usb_platform_data *tegra_ehci_pdata;
53 #if defined(CONFIG_ARCH_TEGRA_21x_SOC)
54         struct device_node *ehci_node;  /* EHCI device tree node */
55 #endif
56         int mdm_power_report_gpio;      /* modem power increase report gpio */
57         unsigned long mdm_power_irq_flags; /* modem boot irq flags */
58         unsigned int num_temp_sensors; /* num of temps modem reports */
59 };
60
61 #endif /* __MACH_TEGRA_USB_MODEM_POWER_H */