最近在調試過程中發現WK2124這個序列槽擴充晶片比較有意思,寫篇文章來記錄一下調試心得。
一、WK2124
1. 概述
WK2124是SPI接口的4通道UART器件,實作了SPI擴充4個序列槽的功能。
WK2124有以下特性:
- 低功耗設計,可以配置自動休眠,自動喚醒模式(us級喚醒)
- SPI接口最高速度10M bit/s,模式0,僅支援SPI從模式,支援最長256位元組連續收發
- 每個子序列槽為全雙工,波特率可以獨立設定,最高可以達到2Mbps
- 可以實作對單個子序列槽軟體複位
2. 原理框圖

3. 封裝引腳
硬體連接配接示意圖如下:
二、Linux驅動
- 主要晶片RK3399,核心版本5.4。
- 驅動使用原廠提供的:驅動參考。
1. 驅動架構
這張圖就非常有意思了:
- 驅動向上使用序列槽驅動架構,注冊四個序列槽裝置節點供應用調用;
- 驅動向下使用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. 驅動子產品編譯
開啟調試日志:
4. 測試
加載驅動子產品:
檢視注冊到核心的序列槽裝置節點:
設定序列槽波特率:
發送資料:
接收資料: