日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高通WLAN芯片点灯方法-QCA9563操控9880GPIO进行点灯

發布時間:2023/12/9 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高通WLAN芯片点灯方法-QCA9563操控9880GPIO进行点灯 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

高通9880芯片點燈

  • 概述
    • OpenWrt點燈套路
    • 9880控制8337端口的led燈
      • 簡單介紹
      • QCA9880驅動
      • QCA9880控燈驅動程序
    • 回顧

概述

最近在調試高通9563芯片的GPIO點燈,因為主控芯片GPIO口比較緊缺。所以就把9563出的wan口和lan口的燈交給了9880的GPIO口控制。

OpenWrt點燈套路

Linux內核集成LED模塊,很方便就可以完成燈的控制,下面簡單回顧下通常GPIO口點燈的幾個步驟。

  • 選中內核gpio點燈驅動,一般驅動名為leds-gpio(/sys/bus/platform/drivers/leds-gpio)。
  • 如果是MIPS架構需要自己手動注冊設備,信息自己攜帶在gpio_led_platform_data結構體中,同時可注冊多個LED設備,最終呈現在sys fs文件系統下(/sys/devices/platform/leds-gpio/leds/LAN1:green:led)。
  • 以上只是提供一個可操作的設備,具體怎么關聯到系統當中,并且隨著端口的link狀態自動亮滅。這就需要結合LED模塊提供的另外一個屬性,LED觸發模式。這個可以在注冊設備時進行配置,也可在系統起來時進行腳本配置(root@mexon:/sys/devices/pci0000:00/0000:00:00.0/leds/LED0# cat trigger
    none [switch0] timer default-on netdev usbport phy0rx phy0tx phy0assoc phy0radio phy0tpt phy1rx phy1tx phy1assoc phy1radio phy1tpt)。
  • 例如在OpenWrt中,有自動化配置腳本控制LED設備,進行觸發模式選擇。在openwrt/target/linux/ar71xx/base-files/etc/board.d/01_leds中配置switch芯片出的端口link狀態。
    ucidef_set_led_switch “wan” “WAN” “LED3”(注冊的led設備) “switch0”(觸發器名稱)“0x02”(端口掩碼)
    此處如果有多個LED設備,可持續配置。MPP6600)ucidef_set_led_switch "wan" "WAN" "LED3" "switch0" "0x02"ucidef_set_led_switch "lan1" "LAN1" "LED2" "switch0" "0x04"ucidef_set_led_switch "lan2" "LAN2" "LED1" "switch0" "0x08"ucidef_set_led_switch "lan3" "LAN3" "LED0" "switch0" "0x10"ucidef_set_led_timer "run" "RUN" "MPP6600:green:run" "1000" "1000"#ucidef_set_led_wlan "wlan2g" "WLAN 2.4 GHz" "MPP6600:green:2G" "phy1tpt"
  • 9880控制8337端口的led燈

    簡單介紹

    控制芯片為9563,通過GMAC接口連接高通的8337switch芯片,該芯片可配置單wan口或多wan口,其余均做lan口(軟件通過swconfig進行vlan隔離即可)。由于9563上的GPIO口有限,9880又支持可配置的GPIO口。所以我們的8337link就采用9880GPIO口控制方式。

    QCA9880驅動

    采用開源 ath10k,內核選中即可。

    這個地方選中Enable LED support是支持9880wifi狀態燈的控制,這個燈是系統默認wifi狀態點燈。并且ath10k驅動也僅僅支持這一個GPIO的控制,默認是9880上的GPIO1。接下來就是要在這里做手腳,進行代碼改造。

    QCA9880控燈驅動程序

  • ath10k在進行核心初始化時,會注冊led設備。
    ath10k_leds_register-默認注冊一個wifi燈,此處進行擴展,擴展結構體如下:

    struct {struct gpio_led wifi_led;struct led_classdev cdev;char label[48];u32 gpio_state_pin;} leds[10];

    然后循環調用led_classdev_register注冊函數,把所需要操作的所有GPIO口都以LED設備的方式注冊進去。

  • 9880GPIO口配置
    使能對應的GPIO口以及配置GPIO口的方向。ath10k_wmi_gpio_config、ath10k_wmi_gpio_output。

  • 需要關注下,對應的GPIO口是否被占用,有很多芯片GPIO口都是可復用的,芯片復位后有時會作其它功能(比如JTag)。

    /* 使能GPIO口 */ for(i = 0; i < 5; ++ i) {ath10k_wmi_gpio_config(ar, ar->leds[i].wifi_led.gpio, 0,WMI_GPIO_PULL_NONE, WMI_GPIO_INTTYPE_DISABLE);ath10k_wmi_gpio_output(ar, ar->leds[i].wifi_led.gpio, 1); } /* 關掉GPIO口復用 */ if(ar->hif.ops != NULL && ar->hif.ops->read32 != NULL) {val = ar->hif.ops->read32(ar, GPIO_BASE_ADDRESS + 0xb0);val |= 1;if(ar->hif.ops->write32 != NULL)ar->hif.ops->write32(ar, GPIO_BASE_ADDRESS + 0xb0, val); } return 0;
  • 在注冊設備的時候,會同時傳遞一個回調函數,做LED燈亮度調整用的。在這個回調函數中,需要重新解析GPIO口,因為之前這個地方僅僅控制一個GPIO口,現在要操作多個GPIO口。這里可以通過設備名稱獲取GPIO口的端口號。

    /* 只要是解析出當前的GPIO口號,然后去具體設置某個GPIO口 */ int i = 0; if(!strcmp(led_cdev->name, "LED0")) {i = 1; } else if(!strcmp(led_cdev->name, "LED1")) {i = 2; } else if(!strcmp(led_cdev->name, "LED2")) {i = 3; } else if(!strcmp(led_cdev->name, "LED3")) {i = 4; } else {i = 0; }

    最后根據解析出來的端口號,可對GPIO的輸出做控制。

    struct ath10k *ar = container_of(led_cdev, struct ath10k,leds[i].cdev); struct gpio_led *led = &ar->leds[i].wifi_led; ar->leds[i].gpio_state_pin = (brightness != LED_OFF) ^ led->active_low; ath10k_wmi_gpio_output(ar, led->gpio, ar->leds[i].gpio_state_pin);
  • 由于OpenWrt編譯機制,不能直接修改build_dir下代碼,否則clean之后修改部分會丟失。這里有兩種方法,一是解壓dl下backports大包,修改源碼之后再壓縮,然后修改 Makefile下的校驗碼即可,二是打補丁,網上有很多教程,而且方便快捷,無需修改源碼。

  • 回顧

    該部分內容主要掌握Linux LED設備操作及結合OpenWrt腳本配置即可。其中涉及的知識比較多,但是還是比較淺顯,需要自己去深入學習。

    總結

    以上是生活随笔為你收集整理的高通WLAN芯片点灯方法-QCA9563操控9880GPIO进行点灯的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久久久人妻一区二区三区 | 日韩精品一区中文字幕 | 精品产国自在拍 | 国产伦精品一区二区三区妓女 | 国产白浆视频 | 欧美高清久久 | 黄色a级在线观看 | av操操操 | 国产日韩精品久久 | 青青青在线观看视频 | 主人性调教le百合sm | 欧美三级欧美成人高清 | 国产极品探花 | 成人自拍视频 | 欧美视频观看 | 欧美另类在线播放 | 欧美久久精品一级黑人c片 1000部多毛熟女毛茸茸 | 中文字幕免费在线观看视频 | 日韩欧美一区二区三区 | 欧美三级色图 | 国产成人观看 | 色婷婷av一区二区 | 91jk制服白丝超短裙大长腿 | 国产吃瓜在线 | 亚洲在线一区 | 中文字幕免费一区 | 中文字幕一区二区在线观看视频 | 国产精品无码一本二本三本色 | av视屏| 在线免费国产 | 久久精品一区二区国产 | 久久久亚洲一区二区三区 | 无码久久精品国产亚洲av影片 | 免费黄色网址在线观看 | 日本黄色小网站 | 2024av| 在线不欧美| 狠狠做深爱婷婷久久综合一区 | 亚洲综合a | 老熟女毛茸茸 | 国产麻豆一精品一男同 | 91片黄在线观 | 亚洲av无码一区二区三区性色 | 日韩av资源站 | 国模少妇一区二区 | 午夜激情福利在线 | 国产精品无码白浆高潮 | 肥婆大荫蒂欧美另类 | 97人妻精品一区二区三区免费 | 在线 日本 制服 中文 欧美 | 综合久久一区二区 | 国产农村熟妇videos | 欧美大片高清 | 欧美亚洲福利 | 人人射人人爽 | 精品一区二区电影 | 无码精品国产一区二区三区 | 色偷偷视频 | 日本男男激情gay办公室 | 伊人网免费视频 | 男女男精品视频站 | 亚洲天堂免费在线观看视频 | 成人在线观看网址 | 欧美一区二区三区不卡视频 | 欧美日韩精品电影 | 国产精品一区二区三区免费视频 | 国产特级黄色录像 | 欧美性猛交aaaa片黑人 | av不卡一区| 欧美精品xxx | 亚洲欧美色图在线 | 国产-第1页-浮力影院 | 天堂岛av| 日韩一级淫片 | 男生和女生一起差差差视频 | av网天堂| av资源部| 高清日韩欧美 | 亚洲加勒比在线 | 欧美日韩一二三四区 | 无码人妻精品一区二区蜜桃色欲 | 国产精品色在线网站 | 视频二区欧美 | 日韩中文av在线 | 久久久久久久久免费 | 午夜精品久久久内射近拍高清 | 青青草视频在线观看 | 香蕉视频日本 | 成人a级免费视频 | 一卡二卡三卡 | 剧情av在线 | 日韩第四页 | jizz国产| 欧美日韩一区二区三区 | 欧美日韩卡一卡二 | 韩国伦理片免费看 | 亚洲一二区在线 | 亚洲欧洲国产视频 | 日韩精品电影一区二区 |