天天看點

RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試

最近在調試過程中發現WK2124這個序列槽擴充晶片比較有意思,寫篇文章來記錄一下調試心得。

一、WK2124

1. 概述

WK2124是SPI接口的4通道UART器件,實作了SPI擴充4個序列槽的功能。

WK2124有以下特性:

  • 低功耗設計,可以配置自動休眠,自動喚醒模式(us級喚醒)
  • SPI接口最高速度10M bit/s,模式0,僅支援SPI從模式,支援最長256位元組連續收發
  • 每個子序列槽為全雙工,波特率可以獨立設定,最高可以達到2Mbps
  • 可以實作對單個子序列槽軟體複位

2. 原理框圖

RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試

3. 封裝引腳

RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試

硬體連接配接示意圖如下:

RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試

二、Linux驅動

  • 主要晶片RK3399,核心版本5.4。
  • 驅動使用原廠提供的:​​驅動參考​​。

1. 驅動架構

RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試

這張圖就非常有意思了:

  • 驅動向上使用序列槽驅動架構,注冊四個序列槽裝置節點供應用調用;
  • 驅動向下使用SPI驅動架構,與WK2124進行通信。

2. 裝置樹描述

wk2xxx: wk2xxx@0{
    status = "okay";
    compatible = "wkmic,wk2124spi";
    reg = <0>;
    pinctrl-names = "default";
    pinctrl-0 = <&wk2xxx_gpio>;
    spi-max-frequency = <10000000>;
    irq_gpio = <&gpio4 26 0>;
};      

3. 驅動子產品編譯

開啟調試日志:

RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試

4. 測試

加載驅動子產品:

RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試

檢視注冊到核心的序列槽裝置節點:

RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試

設定序列槽波特率:

RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試

發送資料:

RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試
RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試

接收資料:

RK3399驅動開發 | 03 - WK2124序列槽晶片驅動調試

繼續閱讀