精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

手把手教你使用 Gpio 子系統(tǒng) API

系統(tǒng) Linux
本文講解 pinctrl 子系統(tǒng)和 gpio 子系統(tǒng)的 API,以及使用示例。傳統(tǒng)的配置 pin 的方式就是直接操作相應(yīng)的寄存器,但是這種配置方式比較繁瑣、而且容易出問題(比如 pin 功能沖突)。

[[440470]]

本文講解 pinctrl 子系統(tǒng)和 gpio 子系統(tǒng)的 API,以及使用示例。

傳統(tǒng)的配置 pin 的方式就是直接操作相應(yīng)的寄存器,但是這種配置方式比較繁瑣、而且容易出問題(比如 pin 功能沖突)。pinctrl 子系統(tǒng)就是為了解決這個(gè)問題而引入的,pinctrl 子系統(tǒng)主要工作內(nèi)容如下:

①獲取設(shè)備樹中 pin 信息。

②根據(jù)獲取到的 pin 信息來設(shè)置 pin 的復(fù)用功能

③根據(jù)獲取到的 pin 信息來設(shè)置 pin 的電氣特性,比如上/下拉、速度、驅(qū)動(dòng)能力等。

對(duì)于我們使用者來講,只需要在設(shè)備樹里面設(shè)置好某個(gè) pin 的相關(guān)屬性即可,其他的初始化工作均由 pinctrl 子系統(tǒng)來完成。

如果 pinctrl 將一個(gè) pin 腳初始化為 GPIO 而不是 IIC 或者 SPI,那么接下來就可以使用 gpio 子系統(tǒng)的API。

gpio 子系統(tǒng)是基于 pinctrl 子系統(tǒng)的!pin controller 和 GPIO Controller 不是一回事,前者控制引腳可用于 GPIO 功能、I2C 功能等功能性切換;后者只是把引腳配置為輸入、輸出、設(shè)置GPIO方向、獲取值等簡單的功能。(pinctrl 的 api 其實(shí)可以實(shí)現(xiàn)所有需求,但 gpio 的函數(shù)更常用一些)

1、gpio 子系統(tǒng) API

gpio 子系統(tǒng)中操作一個(gè) GPIO 需要如下幾步:

  1. 1、of_find_compatible_node 
  2. 2、of_get_named_gpio 
  3. 3、gpio_request 
  4. 4、控制gpio(gpio_direction_input、gpio_direction_output……) 
  5. 5、gpio_free 

1)of_find_compatible_node 函數(shù)在設(shè)備樹中根據(jù) device_type 和 compatible 這兩個(gè)屬性查找指定的節(jié)點(diǎn),此處是為了獲取在設(shè)備樹中設(shè)置的 GPIO 的節(jié)點(diǎn)句柄。如果其他地方有獲得句柄,那么可以直接使用這個(gè)句柄。

2) of_get_named_gpio ,獲取所設(shè)置的 gpio number。

3) gpio_request ,請(qǐng)求這個(gè) gpio 。如果其他地方請(qǐng)求了這個(gè) gpio,還沒有釋放,那么我們會(huì)請(qǐng)求不到。

4)請(qǐng)求到這個(gè) gpio 以后,我們就可以對(duì)它進(jìn)行操作,比如獲取到它的值,設(shè)置它的值。

5)使用完以后,釋放這個(gè) gpio。

原理圖:

博主手里有一個(gè) 正點(diǎn)原子 imx6ull 開發(fā)板,查原理圖,發(fā)現(xiàn)蜂鳴器直連的 GPIO 是 GPIO5_1。我把此 IO 口拉低,蜂鳴器就會(huì)響。

在設(shè)備樹中增加如下代碼(imx6ull-alientek-emmc.dts)

  1. test:test { 
  2.  compatible = "Jason_hello"
  3.  hello = <&gpio5 1 GPIO_ACTIVE_HIGH>; 
  4. }; 

設(shè)置 GPIO 為 GPIO5_1,高電平有效,但實(shí)際上第三個(gè)參數(shù)我沒有使用。

gpio.c

  1. #include <linux/init.h> 
  2. #include <linux/kernel.h> 
  3. #include <linux/module.h> 
  4. #include <linux/gpio.h> 
  5. #include <linux/of.h> 
  6. #include <linux/of_gpio.h> 
  7.  
  8. static int __init mypinctrl_init(void) 
  9.  int gpionum = 0; 
  10.  int ret = 0; 
  11.  struct device_node *node = NULL
  12.   
  13.  node = of_find_compatible_node(NULL,NULL,"Jason_hello"); 
  14.  if(!node){ 
  15.   printk("get node error\n"); 
  16.   return ret; 
  17.  } 
  18.   
  19.  gpionum = of_get_named_gpio(node,"hello",0); 
  20.  if(gpionum < 0){ 
  21.   printk("get gpionum error\n"); 
  22.   return ret; 
  23.  } 
  24.   
  25.  ret = gpio_request(gpionum,"hello"); 
  26.  if(ret){ 
  27.   printk("gpio_request error\n"); 
  28.   return ret; 
  29.  } 
  30.    
  31.  printk("gpio(%d) value = %d\n",gpionum,ret); 
  32.    
  33.  ret = gpio_get_value(gpionum); 
  34.    
  35.  printk("gpio(%d) value = %d\n",gpionum,ret); 
  36.    
  37.  gpio_direction_output(gpionum,0);  // 設(shè)置 gpio 輸出低電平 
  38.    
  39.  ret = gpio_get_value(gpionum); 
  40.    
  41.  printk("gpio(%d) value = %d\n",gpionum,ret); 
  42.    
  43.  return 0; 
  44.  
  45. static void __exit mypinctrl_exit(void) 
  46.  printk("%s\n",__func__); 
  47.  
  48. module_init(mypinctrl_init); 
  49. module_exit(mypinctrl_exit); 
  50.  
  51. MODULE_LICENSE("GPL"); 

Makefile

  1. KERNELDIR := /home/book/linux/tool/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek 
  2.  
  3. CURRENT_PATH := $(shell pwd) 
  4.  
  5. obj-m := gpio.o 
  6.  
  7. build: kernel_modules 
  8.  
  9. kernel_modules: 
  10.  $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules 
  11. clean: 
  12.  $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean 

在 Linux 內(nèi)核源碼根目錄中輸入 make dtbs,編譯一份設(shè)備樹,下載進(jìn)開發(fā)板。

在 kernel/drivers/misc/ 中新建文件夾,命名為 mygpio,里面放置 gpio.c 和 Makefile。然后輸入 make 編譯出 gpio.ko。然后拷貝進(jìn)板子,insmod 上去,可以發(fā)現(xiàn)蜂鳴器有響。

2、pinctrl 子系統(tǒng) API

pinctrl 子系統(tǒng)的 API 有很多,對(duì)于驅(qū)動(dòng)工程師來說,pinctrl 操作一個(gè) GPIO 只需要三步:

  1. 1、devm_pinctrl_get 
  2. 2、pinctrl_lookup_state 
  3. 3、pinctrl_select_state 

在 Linux 中,加 devm_ 開頭的函數(shù),代表這個(gè)函數(shù)支持資源管理。一般情況下,我們寫一個(gè)驅(qū)動(dòng)程序,在程序開頭都會(huì)申請(qǐng)資源,比如內(nèi)存、中斷號(hào)等,萬一后面哪一步申請(qǐng)出錯(cuò),我們要回滾到第一步,去釋放已經(jīng)申請(qǐng)的資源,這樣很麻煩。后來 Linux 開發(fā)出了很多 devm_ 開頭的函數(shù),代表這個(gè)函數(shù)有支持資源管理的版本,不管哪一步出錯(cuò),只要錯(cuò)誤退出,就會(huì)自動(dòng)釋放所申請(qǐng)的資源。

1)devm_pinctrl_get:用于獲取設(shè)備樹中自己用 pinctrl 建立的節(jié)點(diǎn)的句柄;

2) pinctrl_lookup_state:用于選擇其中一個(gè) pinctrl 的狀態(tài),同一個(gè) pinctrl 可以有很多狀態(tài)。比如 GPIO50 ,一開始初始化的時(shí)候是 I2C ,設(shè)備待機(jī)時(shí)候,我希望切換到普通 GPIO 模式,并且配置為下拉輸入,省電。這時(shí)候如果 pinctrl 節(jié)點(diǎn)有描述,我們就可以在代碼中切換 pin 的功能,從 I2C 功能切換成普通 GPIO 功能;

3) pinctrl_select_stat:用于真正設(shè)置,在上一步獲取到某個(gè)狀態(tài)以后,這一步真正設(shè)置為這個(gè)狀態(tài)。

對(duì)于 pinctrl 子系統(tǒng)的設(shè)備樹配置,是遵守 service 和 client 結(jié)構(gòu)。

client 端各個(gè)平臺(tái)基本都是一樣的,server 端每個(gè)平臺(tái)都不一樣,使用的字符串的配置也不一樣。

設(shè)備樹配置:

  1. //client端,設(shè)置不同狀態(tài) 
  2. &test { 
  3.  pinctrl-names = "default","test_low","test_high"
  4.  pinctrl-0 = <&test_default>; 
  5.  pinctrl-1 = <&test_low>; 
  6.  pinctrl-2 = <&test_high>; 
  7.  gpio = <&gpio5 1 GPIO_ACTIVE_LOW>; 
  8.  status = "okay"
  9. }; 
  10.  
  11. //server 即 pin controller 端,設(shè)置 GPIO 幾種功能狀態(tài) 
  12. &gpio5 { 
  13.  test_default:test_default{}; 
  14.    
  15.  test_low:test_low{ 
  16.   fsl,pins = < 
  17.    MX6UL_PAD_GPIO5_IO01__GPIO5_IO01 0x17059 
  18.   > 
  19.  }; 
  20.    
  21.  test_high:test_low{ 
  22.   fsl,pins = < 
  23.    MX6UL_PAD_GPIO5_IO01__GPIO5_IO01 0x1b0b1 
  24.   > 
  25.  }; 
  26. }; 

pinctrl.c

  1. #include <linux/init.h> 
  2. #include <linux/kernel.h> 
  3. #include <linux/module.h> 
  4. #include <linux/platform_device.h> 
  5. #include <linux/delay.h> 
  6. #include <linux/pinctrl/pinctrl.h> 
  7. #include <linux/pinctrl/consumer.h> 
  8.  
  9. static int __init mypinctrl_init(void) 
  10.  int ret = 0; 
  11.  struct pinctrl *pctrl; 
  12.  struct platform_device *pdev; 
  13.  struct pinctrl_state *test_high; 
  14.  struct pinctrl_state *test_low; 
  15.    
  16.  pctrl = devm_pinctrl_get(&pdev->dev); 
  17.  if(IS_ERR(pctrl)){ 
  18.   ret = PTR_ERR(pctrl); 
  19.   printk("devm_pinctrl_get error\n"); 
  20.   return ret; 
  21.  } 
  22.    
  23.  test_high = pinctrl_lookup_state(pctrl,"test_high"); 
  24.  if(IS_ERR(pctrl)){ 
  25.   ret = PTR_ERR(test_high); 
  26.   printk("pinctrl_lookup_state test_high error\n"); 
  27.   return ret; 
  28.  } 
  29.    
  30.  test_low = pinctrl_lookup_state(pctrl,"test_low"); 
  31.  if(IS_ERR(pctrl)){ 
  32.   ret = PTR_ERR(test_low); 
  33.   printk("pinctrl_lookup_state test_low error\n"); 
  34.   return ret; 
  35.  } 
  36.    
  37.  pinctrl_select_state(pctrl,test_low); 
  38.  udelay(200); 
  39.  pinctrl_select_state(pctrl,test_high); 
  40.    
  41.  return 0; 
  42.  
  43. static void __exit mypinctrl_exit(void) 
  44.  printk("%s\n",__func__); 
  45.  
  46. module_init(mypinctrl_init); 
  47. module_exit(mypinctrl_exit); 
  48.  
  49. MUDULE_LICENSE("GPL"); 

Makefile 與上面相同,只是更改一下編譯輸出的名字。

這個(gè)驅(qū)動(dòng)加載上去,可以切換GPIO口的功能狀態(tài),我這里只是控制GPIO輸出高低,具體看你設(shè)備樹怎么配,比如你可以配置某個(gè)GPIO一開始是I2C功能,待機(jī)時(shí)候是普通GPIO功能,達(dá)到省電的目的。

補(bǔ)充:

設(shè)備樹是用來描述板子上的設(shè)備信息的,不同的設(shè)備其信息不同,反映到設(shè)備樹中就是屬性不同。那么我們?cè)谠O(shè)備樹中添加一個(gè)硬件對(duì)應(yīng)的節(jié)點(diǎn)的時(shí)候從哪里查閱相關(guān)的說明呢?在Linux 內(nèi)核源碼中有詳細(xì)的.txt 文檔描述了如何添加節(jié)點(diǎn),這些.txt 文檔叫做綁定文檔,路徑為:Linux 源碼目錄/Documentation/devicetree/bindings。

比如我們現(xiàn)在要想在 I.MX6ULL 這顆 SOC 的 I2C 下添加一個(gè)節(jié)點(diǎn),那么就可以查看Documentation/devicetree/bindings/i2c/i2c-imx.txt,此文檔詳細(xì)的描述了 I.MX 系列的 SOC 如何在設(shè)備樹中添加 I2C 設(shè)備節(jié)點(diǎn)。

有時(shí)候使用的一些芯片在 Documentation/devicetree/bindings 目錄下找不到對(duì)應(yīng)的文檔,這個(gè)時(shí)候就要咨詢芯片的提供商,讓他們給你提供參考的設(shè)備樹文件。

小技巧:很多時(shí)候我們看設(shè)備樹文件,里面的內(nèi)容看不懂,這時(shí)候你看 .dts 最開始引用的頭文件,點(diǎn)進(jìn)去,你就會(huì)發(fā)現(xiàn)這些字符串是定義在這里的。

參考文檔:

Documentation\devicetree\bindings\Pinctrl\Pinctrl-bindings.txt

Documentation\gpio\Pinctrl-bindings.txt

Documentation\devicetree\bindings\gpio\gpio.txt

Documentation\devicetree\bindings\pinctrl\pinctrl-bindings.txt

【編輯推薦】

 

責(zé)任編輯:姜華 來源: 嵌入式Linux系統(tǒng)開發(fā)
相關(guān)推薦

2021-07-14 09:00:00

JavaFX開發(fā)應(yīng)用

2025-05-07 00:31:30

2022-12-07 08:42:35

2022-01-08 20:04:20

攔截系統(tǒng)調(diào)用

2021-12-28 08:38:26

Linux 中斷喚醒系統(tǒng)Linux 系統(tǒng)

2021-08-02 07:35:19

Nacos配置中心namespace

2011-05-03 15:59:00

黑盒打印機(jī)

2011-01-10 14:41:26

2021-01-19 09:06:21

MysqlDjango數(shù)據(jù)庫

2021-03-12 10:01:24

JavaScript 前端表單驗(yàn)證

2020-05-15 08:07:33

JWT登錄單點(diǎn)

2022-07-22 12:45:39

GNU

2022-10-30 10:31:42

i2ccpuftrace

2023-04-26 12:46:43

DockerSpringKubernetes

2022-03-14 14:47:21

HarmonyOS操作系統(tǒng)鴻蒙

2022-07-27 08:16:22

搜索引擎Lucene

2011-02-22 13:46:27

微軟SQL.NET

2021-02-26 11:54:38

MyBatis 插件接口

2020-08-12 09:07:53

Python開發(fā)爬蟲

2021-09-22 08:51:34

Android
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

91精品国产91久久久久麻豆 主演| 国a精品视频大全| 精品国产免费av| 人成免费电影一二三区在线观看| 国产精品尤物| 一区二区欧美激情| 1314成人网| 正在播放日韩精品| 国产精品欧美一区喷水| 不卡一卡2卡3卡4卡精品在| 日韩网红少妇无码视频香港| 成久久久网站| 精品久久久久久久一区二区蜜臀| av观看免费在线| 国产在线激情| 99久久精品国产网站| 国产精品免费一区| 久久久久久福利| 国产探花一区在线观看| 日韩精品一区二区三区在线观看| 99久久激情视频| huan性巨大欧美| 久久品道一品道久久精品| 91在线免费观看网站| 精品美女久久久久| 亚洲欧美网站在线观看| 亚洲欧美激情精品一区二区| 1314成人网| 深夜视频一区二区| 精品福利电影| 麻豆国产欧美一区二区三区| 九九精品视频在线观看| 先锋影音av在线| 国产精品自在| 91精品久久久久久久99蜜桃| 9久久婷婷国产综合精品性色| 超碰中文在线| 亚洲欧美日韩人成在线播放| 色99中文字幕| 日韩有码电影| heyzo一本久久综合| 亚洲一区二区三区视频播放| 少妇无套内谢久久久久| 国产精品美女久久久| 久久69精品久久久久久久电影好 | 亚洲色图日韩精品| 欧美挤奶吃奶水xxxxx| 欧美zozo另类异族| 亚洲综合伊人久久| 欧美韩国日本| 欧美日韩一区小说| 国产又大又黄又粗又爽| 欧美性猛交xxx高清大费中文| 午夜精品久久久久久久99樱桃 | 精品美女在线观看视频在线观看| 2021久久国产精品不只是精品| 国产精品一区二区不卡视频| www香蕉视频| 国产成人午夜精品影院观看视频 | 欧美三级午夜理伦三级老人| 日本中文字幕伦在线观看| 欧美国产精品专区| 午夜欧美一区二区三区免费观看| av资源种子在线观看| 国产日产欧美一区二区视频| 日韩欧美亚洲日产国| gogogo高清在线观看免费完整版| 国产女同互慰高潮91漫画| 日韩精品欧美专区| av中文在线| 国产精品久久久久久久久免费桃花| 日韩欧美亚洲在线| 日本在线观看网站| 久久久久久久影视| 国产欧美日韩一级| 5566成人精品视频免费| 国产一级片毛片| 蜜桃av综合| 国产精品香蕉在线观看| 一区二区三区黄色片| 韩国毛片一区二区三区| 成人av影视在线| 涩涩视频免费看| 久久这里只有精品6| 日韩av免费电影| 免费观看久久久久| 亚洲一区二区三区四区五区中文| 久久99中文字幕| 欧美日韩美女| 欧美久久一二区| 亚洲av熟女高潮一区二区| 日本午夜精品久久久| 伊是香蕉大人久久| 日本一级二级视频| 国产欧美日本| 国产日韩欧美视频在线| 亚洲AV无码国产精品午夜字幕| 99re成人精品视频| 亚洲乱码国产乱码精品天美传媒| 欧美人与牲禽动交com | 男人的天堂av网站| 九色porny丨国产精品| 国产精品久久久久久久久晋中| 国产精品夜色7777狼人| 亚洲精品一区二区口爆| 久久九九久久九九| 激情图片qvod| 久久精品女人天堂av免费观看| 欧美精品乱码久久久久久| 这里只有精品在线观看视频| 清纯唯美日韩| 亚洲91精品在线| 日韩久久久久久久久久| 国产91丝袜在线播放0| 欧美日韩在线精品| 青春草在线视频| 色婷婷综合激情| 免费欧美一级片| 国产99久久久国产精品成人免费 | 国产精品人人做人人爽| 亚洲国产精品久久久久久久| 欧美国产亚洲另类动漫| 国产资源第一页| 91超碰碰碰碰久久久久久综合| 91精品久久久久久久久99蜜臂| 免费污网站在线观看| 亚洲经典视频在线观看| 91麻豆国产精品| 精品乱码一区二区三四区视频 | 国产一区视频在线看| 精品视频在线观看| 影院在线观看全集免费观看| 日韩欧美亚洲综合| 妖精视频一区二区| 午夜影院欧美| 国产有码一区二区| 成人免费在线观看| 日韩欧美在线网址| 亚洲中文字幕一区| 亚洲大胆在线| 成人高清在线观看| 在线看三级电影| 欧美猛男超大videosgay| 鲁丝一区二区三区| 久久激情婷婷| 你懂的网址一区二区三区| 国产在线拍揄自揄拍视频| 欧美一级日韩免费不卡| 国产成人自拍网站| 韩国三级在线一区| 这里只有精品66| 欧美高清免费| 色偷偷av一区二区三区| 成人一级免费视频| 亚洲国产精品成人久久综合一区| 免费在线观看的毛片| 久久av免费| 日本欧美中文字幕| 久青草国产在线| 色婷婷综合久久久久中文一区二区| av无码av天天av天天爽| 久久午夜精品一区二区| 日本一区二区三区精品视频| 国产一区二区三区影视| 中文字幕亚洲一区二区三区| 91久久精品国产91性色69| 国产精品久久一卡二卡| 网站在线你懂的| 中文无码久久精品| 国产超碰91| 国产高清自产拍av在线| 亚洲欧美国产精品专区久久| 国产99免费视频| 国产精品国产三级国产a| 三日本三级少妇三级99| 午夜视频一区| 久久爱av电影| 韩国成人在线| 久久天天躁狠狠躁夜夜躁2014| h片在线免费看| 亚洲国产另类精品专区| 伊人网伊人影院| 青青草国产成人99久久| 大桥未久一区二区三区| 国产欧美三级电影| 日本久久91av| av片在线免费观看| 日韩午夜三级在线| 天天干在线播放| 国产精品超碰97尤物18| 亚洲v在线观看| 日韩精品亚洲一区二区三区免费| 国产精品波多野结衣| 久久免费视频66| 国产精品久久97| 欧美6一10sex性hd| 亚洲天堂免费视频| 精品人妻一区二区三区麻豆91| 欧美午夜视频在线观看| fc2ppv在线播放| 99久久99久久免费精品蜜臀| 91亚洲免费视频| 亚洲精品影视| 一区二区欧美日韩| 日韩电影在线观看完整免费观看| 国产欧美va欧美va香蕉在| 福利影院在线看| 综合网日日天干夜夜久久| 欧洲av在线播放| 欧美日韩电影在线| 天天操天天摸天天干| 亚洲三级电影网站| 丰腴饱满的极品熟妇| 国产福利不卡视频| 妺妺窝人体色www在线观看| 狠狠入ady亚洲精品经典电影| 婷婷五月色综合| 澳门久久精品| 成人免费看黄网站| 国产综合av| 97成人在线视频| 丝袜国产在线| 日韩在线视频观看| 精华区一区二区三区| 亚洲第一av在线| 99久久国产免费| 欧美中文字幕久久| 免费观看成人毛片| 夜夜爽夜夜爽精品视频| 你懂得视频在线观看| 91免费观看视频| 亚洲色偷偷色噜噜狠狠99网| 国产一区二区看久久| 日韩一级免费片| 视频一区视频二区在线观看| 日本www在线视频| 国产精品v日韩精品v欧美精品网站| 午夜免费电影一区在线观看| 久草成人在线| 久久久人人爽| 欧美大胆视频| 国产激情一区二区三区在线观看| 国产区一区二| 91精品久久久久久久久久久| 欧美日韩精品免费观看视完整| 38少妇精品导航| 成人bbav| 91av视频在线观看| 国产在线88av| 91精品国产九九九久久久亚洲| 黑人玩欧美人三根一起进| 欧美黑人狂野猛交老妇| 日本在线视频www鲁啊鲁| 欧美成人一二三| 中文字幕有码在线视频| 欧美裸体xxxx极品少妇| 日本欧美电影在线观看| 欧美激情精品久久久久久大尺度| 亚洲图区一区| 久久久综合av| 深夜av在线| 日韩男女性生活视频| 日韩制服诱惑| 成人h片在线播放免费网站| 9999精品免费视频| 亚洲最大成人在线| 深夜激情久久| 国产免费一区二区| 网曝91综合精品门事件在线| 欧美主播一区二区三区美女 久久精品人 | 国产精品熟女一区二区不卡| 国产精品亚洲午夜一区二区三区 | 国产一区美女在线| 免费人成视频在线播放| 成人午夜伦理影院| 国产艳俗歌舞表演hd| 国产丝袜欧美中文另类| 国产精品69久久久久孕妇欧美| 成人免费在线播放视频| 国产亚洲第一页| 欧美性猛交xxxx免费看漫画| 中文字幕视频一区二区| 日韩一级片网址| 午夜影院在线视频| 在线播放国产一区二区三区| 国产丝袜在线| 亚洲18私人小影院| 欧美91在线|欧美| 国产精品国产三级国产专区53| 日韩mv欧美mv国产网站| 亚洲图片欧洲图片日韩av| 欧美1区2区视频| 日本wwww视频| 免费不卡在线视频| 国产精品日日摸夜夜爽| 久久精品日产第一区二区三区高清版 | 成人av动漫在线| 在线观看免费小视频| 一区二区三区蜜桃网| 91视频在线视频| 欧美成人a视频| а天堂8中文最新版在线官网| 欧美大肥婆大肥bbbbb| 日韩三级影视| av一本久道久久波多野结衣| 综合国产视频| 久久香蕉视频网站| 日韩精品91亚洲二区在线观看 | 五月天色综合| 国产专区一区二区| 久久久久久久久久久妇女 | 欧美办公室脚交xxxx| 国产在线拍揄自揄视频不卡99| 牛牛影视一区二区三区免费看| 夜夜爽99久久国产综合精品女不卡| 亚洲精品孕妇| 97超碰人人看| 国产农村妇女毛片精品久久麻豆| 日本三级片在线观看| 69堂国产成人免费视频| 久热av在线| 欧美一级视频一区二区| 一区二区三区在线免费看| 亚洲一区尤物| 久久伊人亚洲| 精品国产人妻一区二区三区| 一区二区在线观看免费 | av在线中出| 亚洲一区二区少妇| 久久国产精品成人免费观看的软件| 夫妻免费无码v看片| 粉嫩绯色av一区二区在线观看| 亚洲欧美另类日本| 精品婷婷伊人一区三区三| 日韩精品系列| 97婷婷涩涩精品一区| 9999久久久久| 久久久国内精品| 国产一区二区三区精品视频| 日本成人免费在线观看 | 大肉大捧一进一出好爽视频| 懂色av一区二区夜夜嗨| 亚洲综合网在线| 9191成人精品久久| 嫩草在线视频| 国产精品综合久久久| 欧美日中文字幕| 国产免费999| 亚洲国产岛国毛片在线| 探花国产精品一区二区| 中文字幕亚洲情99在线| 日日狠狠久久| 国产美女视频免费| 激情文学综合丁香| 麻豆视频在线免费看| 日韩欧美在线网站| 视频在线这里都是精品| 91免费观看| 国内揄拍国内精品久久| 久久久老熟女一区二区三区91| 黄色一区二区三区| 青青青草原在线| 国产精品高潮视频| 久久一区91| 香蕉网在线视频| 亚洲一级电影视频| 无套内谢的新婚少妇国语播放| 欧美在线国产精品| 精品国产91| 精品国产鲁一鲁一区二区三区| 一区二区免费视频| 婷婷开心激情网| 日韩女优人人人人射在线视频| 日韩国产欧美| 97免费公开视频| 午夜精品123| av资源网在线观看| 亚洲专区中文字幕| 亚洲免费精品| 日本污视频网站| 日韩一区二区三区av| 国产伦理精品| 亚洲精品高清视频| 国产精品18久久久久久久久| 97超碰人人干| 丝袜亚洲欧美日韩综合| 日本少妇精品亚洲第一区| 日韩av黄色网址| 国产精品久线观看视频| 黄色aaa大片| 国产精品高清免费在线观看| 欧美三区视频| 中文字幕 自拍| 日韩丝袜情趣美女图片| 日韩国产激情| 久久久久久久9| 亚洲国产激情av| 人妻夜夜爽天天爽| 国产精品视频999| 伊人久久成人|