亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? dwc_otg_attr.c

?? host usb 主設(shè)備程序 支持sd卡 mouse keyboard 的最單單的驅(qū)動(dòng)程序 gcc編譯
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/* ========================================================================== * $File: //dwh/usb_iip/dev/software/otg_ipmate/linux/drivers/dwc_otg_attr.c $ * $Revision: 1.1 $ * $Date: 2008/03/31 00:20:10 $ * $Change: 993572 $ * * Synopsys HS OTG Linux Software Driver and documentation (hereinafter, * "Software") is an Unsupported proprietary work of Synopsys, Inc. unless * otherwise expressly agreed to in writing between Synopsys and you. *  * The Software IS NOT an item of Licensed Software or Licensed Product under * any End User Software License Agreement or Agreement for Licensed Product * with Synopsys or any supplement thereto. You are permitted to use and * redistribute this Software in source and binary forms, with or without * modification, provided that redistributions of source code must retain this * notice. You may not view, use, disclose, copy or distribute this file or * any information contained herein except pursuant to this license grant from * Synopsys. If you do not agree with this notice, including the disclaimer * below, then you are not authorized to use the Software. *  * THIS SOFTWARE IS BEING DISTRIBUTED BY SYNOPSYS SOLELY ON AN "AS IS" BASIS * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE HEREBY DISCLAIMED. IN NO EVENT SHALL SYNOPSYS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. * ========================================================================== *//** @file  * * The diagnostic interface will provide access to the controller for * bringing up the hardware and testing.  The Linux driver attributes * feature will be used to provide the Linux Diagnostic * Interface. These attributes are accessed through sysfs. *//** @page "Linux Module Attributes"  * * The Linux module attributes feature is used to provide the Linux * Diagnostic Interface.  These attributes are accessed through sysfs. * The diagnostic interface will provide access to the controller for * bringing up the hardware and testing. The following table shows the attributes. <table> <tr> <td><b> Name</b></td> <td><b> Description</b></td> <td><b> Access</b></td> </tr>  <tr> <td> mode </td> <td> Returns the current mode: 0 for device mode, 1 for host mode</td> <td> Read</td> </tr>  <tr> <td> hnpcapable </td> <td> Gets or sets the "HNP-capable" bit in the Core USB Configuraton Register. Read returns the current value.</td> <td> Read/Write</td> </tr>  <tr> <td> srpcapable </td> <td> Gets or sets the "SRP-capable" bit in the Core USB Configuraton Register. Read returns the current value.</td> <td> Read/Write</td> </tr>  <tr> <td> hnp </td> <td> Initiates the Host Negotiation Protocol.  Read returns the status.</td> <td> Read/Write</td> </tr>  <tr> <td> srp </td> <td> Initiates the Session Request Protocol.  Read returns the status.</td> <td> Read/Write</td> </tr>  <tr> <td> buspower </td> <td> Gets or sets the Power State of the bus (0 - Off or 1 - On)</td> <td> Read/Write</td> </tr>  <tr> <td> bussuspend </td> <td> Suspends the USB bus.</td> <td> Read/Write</td> </tr>  <tr> <td> busconnected </td> <td> Gets the connection status of the bus</td> <td> Read</td> </tr>  <tr> <td> gotgctl </td> <td> Gets or sets the Core Control Status Register.</td> <td> Read/Write</td> </tr>  <tr> <td> gusbcfg </td> <td> Gets or sets the Core USB Configuration Register</td> <td> Read/Write</td> </tr>  <tr> <td> grxfsiz </td> <td> Gets or sets the Receive FIFO Size Register</td> <td> Read/Write</td> </tr>  <tr> <td> gnptxfsiz </td> <td> Gets or sets the non-periodic Transmit Size Register</td> <td> Read/Write</td> </tr>  <tr> <td> gpvndctl </td> <td> Gets or sets the PHY Vendor Control Register</td> <td> Read/Write</td> </tr>  <tr> <td> ggpio </td> <td> Gets the value in the lower 16-bits of the General Purpose IO Register or sets the upper 16 bits.</td> <td> Read/Write</td> </tr>  <tr> <td> guid </td> <td> Gets or sets the value of the User ID Register</td> <td> Read/Write</td> </tr>  <tr> <td> gsnpsid </td> <td> Gets the value of the Synopsys ID Regester</td> <td> Read</td> </tr>  <tr> <td> devspeed </td> <td> Gets or sets the device speed setting in the DCFG register</td> <td> Read/Write</td> </tr>  <tr> <td> enumspeed </td> <td> Gets the device enumeration Speed.</td> <td> Read</td> </tr>  <tr> <td> hptxfsiz </td> <td> Gets the value of the Host Periodic Transmit FIFO</td> <td> Read</td> </tr>  <tr> <td> hprt0 </td> <td> Gets or sets the value in the Host Port Control and Status Register</td> <td> Read/Write</td> </tr>  <tr> <td> regoffset </td> <td> Sets the register offset for the next Register Access</td> <td> Read/Write</td> </tr>  <tr> <td> regvalue </td> <td> Gets or sets the value of the register at the offset in the regoffset attribute.</td> <td> Read/Write</td> </tr>  <tr> <td> remote_wakeup </td> <td> On read, shows the status of Remote Wakeup. On write, initiates a remote wakeup of the host. When bit 0 is 1 and Remote Wakeup is enabled, the Remote Wakeup signalling bit in the Device Control Register is set for 1 milli-second.</td> <td> Read/Write</td> </tr>  <tr> <td> regdump </td> <td> Dumps the contents of core registers.</td> <td> Read</td> </tr>  <tr> <td> spramdump </td> <td> Dumps the contents of core registers.</td> <td> Read</td> </tr> <tr> <td> hcddump </td> <td> Dumps the current HCD state.</td> <td> Read</td> </tr>  <tr> <td> hcd_frrem </td> <td> Shows the average value of the Frame Remaining field in the Host Frame Number/Frame Remaining register when an SOF interrupt occurs. This can be used to determine the average interrupt latency. Also shows the average Frame Remaining value for start_transfer and the "a" and "b" sample points. The "a" and "b" sample points may be used during debugging bto determine how long it takes to execute a section of the HCD code.</td> <td> Read</td> </tr>  <tr> <td> rd_reg_test </td> <td> Displays the time required to read the GNPTXFSIZ register many times (the output shows the number of times the register is read). <td> Read</td> </tr>  <tr> <td> wr_reg_test </td> <td> Displays the time required to write the GNPTXFSIZ register many times (the output shows the number of times the register is written). <td> Read</td> </tr>  </table>  Example usage: To get the current mode: cat /sys/devices/lm0/mode  To power down the USB: echo 0 > /sys/devices/lm0/buspower */#include <linux/kernel.h>#include <linux/module.h>#include <linux/moduleparam.h>#include <linux/init.h>#include <linux/device.h>#include <linux/errno.h>#include <linux/types.h>#include <linux/stat.h>  /* permission constants */#include <linux/version.h>#include <asm/sizes.h>#include <asm/io.h>#include <asm/arch/lm.h>#include <asm/sizes.h>#include "linux/dwc_otg_plat.h"#include "dwc_otg_attr.h"#include "dwc_otg_driver.h"#include "dwc_otg_pcd.h"#include "dwc_otg_hcd.h"#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)/* * MACROs for defining sysfs attribute */#define DWC_OTG_DEVICE_ATTR_BITFIELD_SHOW(_otg_attr_name_,_addr_,_mask_,_shift_,_string_) \static ssize_t _otg_attr_name_##_show (struct device *_dev, struct device_attribute *attr, char *buf) \{ \	struct lm_device *lm_dev = container_of(_dev, struct lm_device, dev); \	dwc_otg_device_t *otg_dev = lm_get_drvdata(lm_dev);		\	uint32_t val; \	val = dwc_read_reg32 (_addr_); \	val = (val & (_mask_)) >> _shift_; \	return sprintf (buf, "%s = 0x%x\n", _string_, val); \}#define DWC_OTG_DEVICE_ATTR_BITFIELD_STORE(_otg_attr_name_,_addr_,_mask_,_shift_,_string_) \static ssize_t _otg_attr_name_##_store (struct device *_dev, struct device_attribute *attr, \					const char *buf, size_t count) \{ \	struct lm_device *lm_dev = container_of(_dev, struct lm_device, dev); \	dwc_otg_device_t *otg_dev = lm_get_drvdata(lm_dev); \	uint32_t set = simple_strtoul(buf, NULL, 16); \	uint32_t clear = set; \	clear = ((~clear) << _shift_) & _mask_; \	set = (set << _shift_) & _mask_; \	dev_dbg(_dev, "Storing Address=0x%08x Set=0x%08x Clear=0x%08x\n", (uint32_t)_addr_, set, clear); \	dwc_modify_reg32(_addr_, clear, set); \	return count; \}/* * MACROs for defining sysfs attribute for 32-bit registers */#define DWC_OTG_DEVICE_ATTR_REG_SHOW(_otg_attr_name_,_addr_,_string_) \static ssize_t _otg_attr_name_##_show (struct device *_dev, struct device_attribute *attr, char *buf) \{ \	struct lm_device *lm_dev = container_of(_dev, struct lm_device, dev); \	dwc_otg_device_t *otg_dev = lm_get_drvdata(lm_dev); \	uint32_t val; \	val = dwc_read_reg32 (_addr_); \	return sprintf (buf, "%s = 0x%08x\n", _string_, val); \}#define DWC_OTG_DEVICE_ATTR_REG_STORE(_otg_attr_name_,_addr_,_string_) \static ssize_t _otg_attr_name_##_store (struct device *_dev, struct device_attribute *attr, \					const char *buf, size_t count) \{ \	struct lm_device *lm_dev = container_of(_dev, struct lm_device, dev); \	dwc_otg_device_t *otg_dev = lm_get_drvdata(lm_dev); \	uint32_t val = simple_strtoul(buf, NULL, 16); \	dev_dbg(_dev, "Storing Address=0x%08x Val=0x%08x\n", (uint32_t)_addr_, val); \	dwc_write_reg32(_addr_, val); \	return count; \}#else/* * MACROs for defining sysfs attribute */#define DWC_OTG_DEVICE_ATTR_BITFIELD_SHOW(_otg_attr_name_,_addr_,_mask_,_shift_,_string_) \static ssize_t _otg_attr_name_##_show (struct device *_dev, char *buf) \{ \	dwc_otg_device_t *otg_dev = dev_get_drvdata(_dev);\	uint32_t val; \	val = dwc_read_reg32 (_addr_); \	val = (val & (_mask_)) >> _shift_; \	return sprintf (buf, "%s = 0x%x\n", _string_, val); \}#define DWC_OTG_DEVICE_ATTR_BITFIELD_STORE(_otg_attr_name_,_addr_,_mask_,_shift_,_string_) \static ssize_t _otg_attr_name_##_store (struct device *_dev, const char *buf, size_t count) \{ \	dwc_otg_device_t *otg_dev = dev_get_drvdata(_dev);\	uint32_t set = simple_strtoul(buf, NULL, 16); \	uint32_t clear = set; \	clear = ((~clear) << _shift_) & _mask_; \	set = (set << _shift_) & _mask_; \	dev_dbg(_dev, "Storing Address=0x%08x Set=0x%08x Clear=0x%08x\n", (uint32_t)_addr_, set, clear); \	dwc_modify_reg32(_addr_, clear, set); \	return count; \}/* * MACROs for defining sysfs attribute for 32-bit registers */#define DWC_OTG_DEVICE_ATTR_REG_SHOW(_otg_attr_name_,_addr_,_string_) \static ssize_t _otg_attr_name_##_show (struct device *_dev, char *buf) \

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草国产精品亚洲专区无| 亚洲最新视频在线播放| 美女视频黄频大全不卡视频在线播放 | 色综合激情五月| 亚洲人成在线播放网站岛国| 在线亚洲一区二区| 日韩成人一区二区三区在线观看| 69堂成人精品免费视频| 精东粉嫩av免费一区二区三区| 久久精品亚洲乱码伦伦中文 | 国产精品国产馆在线真实露脸 | 中文字幕在线不卡一区二区三区| av电影天堂一区二区在线观看| 亚洲精品国产精品乱码不99| 欧美日韩免费观看一区三区| 蜜臀久久99精品久久久画质超高清 | 亚洲欧美在线另类| 91成人国产精品| 青青草国产成人av片免费| 久久精品日产第一区二区三区高清版| 99re热这里只有精品视频| 日一区二区三区| 欧美国产亚洲另类动漫| 欧美日韩中文字幕一区| 韩日精品视频一区| 亚洲自拍偷拍综合| 久久伊99综合婷婷久久伊| 色综合色综合色综合色综合色综合 | 成人免费福利片| 亚洲第一二三四区| 中文字幕乱码久久午夜不卡| 欧美日韩国产在线观看| 国产成人三级在线观看| 午夜视频一区二区三区| 欧美激情综合网| 欧美一级日韩一级| 91亚洲精华国产精华精华液| 精品在线一区二区三区| 亚洲电影激情视频网站| 国产精品理论在线观看| 日韩精品一区二区三区四区| 色综合中文字幕国产| 日本不卡一区二区三区| 亚洲视频精选在线| 久久亚区不卡日本| 欧美疯狂做受xxxx富婆| 91麻豆精品秘密| 国产精品996| 日韩精品一二三| 亚洲精品菠萝久久久久久久| 久久九九99视频| 日韩色在线观看| 欧美视频第二页| 99久久综合国产精品| 国产精品一区在线观看乱码| 日本亚洲视频在线| 亚洲在线观看免费视频| 亚洲欧美日韩一区二区| 中文字幕不卡的av| 国产亚洲午夜高清国产拍精品| 在线电影一区二区三区| 欧美性大战xxxxx久久久| 91在线精品一区二区三区| 国产91精品久久久久久久网曝门| 精品一区二区三区欧美| 免费成人深夜小野草| 五月综合激情婷婷六月色窝| 亚洲成人综合在线| 亚洲国产日韩av| 日日夜夜免费精品| 蜜臀av亚洲一区中文字幕| 无码av中文一区二区三区桃花岛| 夜色激情一区二区| 亚洲影院免费观看| 午夜精品久久久久久久久久 | 欧美va亚洲va| 欧美精品一区二区三区蜜臀| 精品日产卡一卡二卡麻豆| 欧美xxxxxxxx| 国产亚洲综合av| 中文字幕av资源一区| 国产精品女主播在线观看| 国产精品久久一卡二卡| 亚洲视频在线一区二区| 一区二区在线观看视频| 一区二区欧美精品| 视频一区二区中文字幕| 久久精品国产亚洲5555| 国产精品99久| 一本久久综合亚洲鲁鲁五月天| 欧洲av在线精品| 欧美一三区三区四区免费在线看| 日韩一区二区在线免费观看| 精品久久国产97色综合| 国产亚洲福利社区一区| 亚洲视频狠狠干| 日本成人在线视频网站| 国产乱码精品一区二区三区av| 成人爽a毛片一区二区免费| 91网站最新地址| 717成人午夜免费福利电影| 久久久久久亚洲综合影院红桃 | 亚洲另类一区二区| 青娱乐精品视频| www.在线欧美| 欧美精品久久久久久久多人混战| 久久欧美中文字幕| 亚洲自拍欧美精品| 国产一区二区三区在线观看免费 | 91视频一区二区三区| 欧美日韩高清一区二区三区| 精品久久久久久久人人人人传媒| 欧美精彩视频一区二区三区| 亚洲一二三四在线观看| 国产精品一色哟哟哟| 在线看国产一区二区| 26uuu亚洲婷婷狠狠天堂| 最近日韩中文字幕| 六月婷婷色综合| 91网站视频在线观看| 日韩免费高清电影| 一区二区三区在线视频观看| 精品一区二区免费视频| 色婷婷亚洲一区二区三区| 欧美大黄免费观看| 一区二区在线免费| 成人一区二区三区视频| 欧美一区二区三区喷汁尤物| 亚洲欧洲99久久| 国产成人精品综合在线观看 | 一区二区三区蜜桃| 国产乱码精品一区二区三区忘忧草 | 亚洲最大成人网4388xx| 国产美女视频91| 欧美精品在线观看一区二区| 中文字幕一区免费在线观看| 蜜桃在线一区二区三区| 在线观看免费亚洲| 国产精品久久久久桃色tv| 久久se这里有精品| 欧美精品乱码久久久久久| 亚洲免费观看高清| 国产91在线|亚洲| 精品国产91乱码一区二区三区| 亚洲午夜国产一区99re久久| 99re热这里只有精品免费视频| 久久久久高清精品| 老司机精品视频在线| 欧美喷水一区二区| 一区二区三区在线观看网站| 成人午夜免费视频| 久久久久国产精品麻豆ai换脸| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美日韩在线亚洲一区蜜芽| 一区二区国产盗摄色噜噜| 日本高清不卡在线观看| 中文字幕亚洲成人| 成人黄页在线观看| 中文乱码免费一区二区| 成人综合婷婷国产精品久久免费| 精品久久久久久无| 狠狠色狠狠色综合日日91app| 日韩一区二区电影在线| 日本美女视频一区二区| 欧美久久久一区| 欧美a级一区二区| 欧美一区二区视频在线观看2020 | 国产成人亚洲精品狼色在线| 亚洲精品一线二线三线| 国产一区在线精品| 欧美精品一区二区三区久久久| 久久99精品久久只有精品| 欧美成人一级视频| 国产精品亚洲一区二区三区妖精| 国产日韩精品一区二区三区| 波多野结衣91| 亚洲男同1069视频| 欧美日韩精品是欧美日韩精品| 日韩精品成人一区二区三区 | 欧美日韩高清影院| 蜜臀久久99精品久久久画质超高清| 欧美大片国产精品| 国产精品1024| 亚洲视频一区二区在线| 欧美综合视频在线观看| 蜜臀久久99精品久久久久久9 | 91精品国产欧美一区二区| 美女久久久精品| 国产欧美日韩精品在线| 国模一区二区三区白浆| 欧美高清在线一区二区| 色综合色狠狠综合色| 日韩影院精彩在线| 国产欧美精品一区| 日本精品视频一区二区三区| 日韩精品电影在线观看| 中日韩免费视频中文字幕| 91福利视频网站| 韩国女主播成人在线观看| 中文字幕亚洲欧美在线不卡|