ShellBanner
System:Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686
Software:Apache. PHP/5.3.6-13ubuntu3.10
ID:uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
Safe Mode:OFF
Open_Basedir:OFF
Freespace:23.33 GB of 70.42 GB (33.14%)
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

/ usr/ src/ linux-headers-3.0.0-14/ include/ linux/ usb/ - drwxr-xr-x

Directory:
Viewing file:     intel_mid_otg.h (4.7 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 * Intel MID (Langwell/Penwell) USB OTG Transceiver driver
 * Copyright (C) 2008 - 2010, Intel Corporation.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms and conditions of the GNU General Public License,
 * version 2, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
 *
 */

#ifndef __INTEL_MID_OTG_H
#define __INTEL_MID_OTG_H

#include <linux/pm.h>
#include <linux/usb/otg.h>
#include <linux/notifier.h>

struct intel_mid_otg_xceiv;

/* This is a common data structure for Intel MID platform to
 * save values of the OTG state machine */
struct otg_hsm {
    /* Input */
    int a_bus_resume;
    int a_bus_suspend;
    int a_conn;
    int a_sess_vld;
    int a_srp_det;
    int a_vbus_vld;
    int b_bus_resume;
    int b_bus_suspend;
    int b_conn;
    int b_se0_srp;
    int b_ssend_srp;
    int b_sess_end;
    int b_sess_vld;
    int id;
/* id values */
#define ID_B        0x05
#define ID_A        0x04
#define ID_ACA_C    0x03
#define ID_ACA_B    0x02
#define ID_ACA_A    0x01
    int power_up;
    int adp_change;
    int test_device;

    /* Internal variables */
    int a_set_b_hnp_en;
    int b_srp_done;
    int b_hnp_enable;
    int hnp_poll_enable;

    /* Timeout indicator for timers */
    int a_wait_vrise_tmout;
    int a_wait_bcon_tmout;
    int a_aidl_bdis_tmout;
    int a_bidl_adis_tmout;
    int a_bidl_adis_tmr;
    int a_wait_vfall_tmout;
    int b_ase0_brst_tmout;
    int b_bus_suspend_tmout;
    int b_srp_init_tmout;
    int b_srp_fail_tmout;
    int b_srp_fail_tmr;
    int b_adp_sense_tmout;

    /* Informative variables */
    int a_bus_drop;
    int a_bus_req;
    int a_clr_err;
    int b_bus_req;
    int a_suspend_req;
    int b_bus_suspend_vld;

    /* Output */
    int drv_vbus;
    int loc_conn;
    int loc_sof;

    /* Others */
    int vbus_srp_up;
};

/* must provide ULPI access function to read/write registers implemented in
 * ULPI address space */
struct iotg_ulpi_access_ops {
    int    (*read)(struct intel_mid_otg_xceiv *iotg, u8 reg, u8 *val);
    int    (*write)(struct intel_mid_otg_xceiv *iotg, u8 reg, u8 val);
};

#define OTG_A_DEVICE    0x0
#define OTG_B_DEVICE    0x1

/*
 * the Intel MID (Langwell/Penwell) otg transceiver driver needs to interact
 * with device and host drivers to implement the USB OTG related feature. More
 * function members are added based on otg_transceiver data structure for this
 * purpose.
 */
struct intel_mid_otg_xceiv {
    struct otg_transceiver    otg;
    struct otg_hsm        hsm;

    /* base address */
    void __iomem        *base;

    /* ops to access ulpi */
    struct iotg_ulpi_access_ops    ulpi_ops;

    /* atomic notifier for interrupt context */
    struct atomic_notifier_head    iotg_notifier;

    /* start/stop USB Host function */
    int    (*start_host)(struct intel_mid_otg_xceiv *iotg);
    int    (*stop_host)(struct intel_mid_otg_xceiv *iotg);

    /* start/stop USB Peripheral function */
    int    (*start_peripheral)(struct intel_mid_otg_xceiv *iotg);
    int    (*stop_peripheral)(struct intel_mid_otg_xceiv *iotg);

    /* start/stop ADP sense/probe function */
    int    (*set_adp_probe)(struct intel_mid_otg_xceiv *iotg,
                    bool enabled, int dev);
    int    (*set_adp_sense)(struct intel_mid_otg_xceiv *iotg,
                    bool enabled);

#ifdef CONFIG_PM
    /* suspend/resume USB host function */
    int    (*suspend_host)(struct intel_mid_otg_xceiv *iotg,
                    pm_message_t message);
    int    (*resume_host)(struct intel_mid_otg_xceiv *iotg);

    int    (*suspend_peripheral)(struct intel_mid_otg_xceiv *iotg,
                    pm_message_t message);
    int    (*resume_peripheral)(struct intel_mid_otg_xceiv *iotg);
#endif

};
static inline
struct intel_mid_otg_xceiv *otg_to_mid_xceiv(struct otg_transceiver *otg)
{
    return container_of(otg, struct intel_mid_otg_xceiv, otg);
}

#define MID_OTG_NOTIFY_CONNECT        0x0001
#define MID_OTG_NOTIFY_DISCONN        0x0002
#define MID_OTG_NOTIFY_HSUSPEND        0x0003
#define MID_OTG_NOTIFY_HRESUME        0x0004
#define MID_OTG_NOTIFY_CSUSPEND        0x0005
#define MID_OTG_NOTIFY_CRESUME        0x0006
#define MID_OTG_NOTIFY_HOSTADD        0x0007
#define MID_OTG_NOTIFY_HOSTREMOVE    0x0008
#define MID_OTG_NOTIFY_CLIENTADD    0x0009
#define MID_OTG_NOTIFY_CLIENTREMOVE    0x000a

static inline int
intel_mid_otg_register_notifier(struct intel_mid_otg_xceiv *iotg,
                struct notifier_block *nb)
{
    return atomic_notifier_chain_register(&iotg->iotg_notifier, nb);
}

static inline void
intel_mid_otg_unregister_notifier(struct intel_mid_otg_xceiv *iotg,
                struct notifier_block *nb)
{
    atomic_notifier_chain_unregister(&iotg->iotg_notifier, nb);
}

#endif /* __INTEL_MID_OTG_H */
Command:
Quick Commands:
Upload:
[Read-Only] Max size: 100MB
PHP Filesystem: <@ Ú
Search File:
regexp
Create File:
Overwrite [Read-Only]
View File:
Mass Defacement:
[+] Main Directory: [+] Defacement Url:
LmfaoX Shell - Private Build [BETA] - v0.1 -; Generated: 0.3145 seconds