xref: /linux/Documentation/translations/zh_TW/arch/mips/ingenic-tcu.rst (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
1*f949cb75SHu Haowen.. SPDX-License-Identifier: GPL-2.0
2*f949cb75SHu Haowen
3*f949cb75SHu Haowen.. include:: ../../disclaimer-zh_TW.rst
4*f949cb75SHu Haowen
5*f949cb75SHu Haowen:Original: Documentation/arch/mips/ingenic-tcu.rst
6*f949cb75SHu Haowen
7*f949cb75SHu Haowen:翻譯:
8*f949cb75SHu Haowen
9*f949cb75SHu Haowen 司延騰 Yanteng Si <siyanteng@loongson.cn>
10*f949cb75SHu Haowen
11*f949cb75SHu Haowen.. _tw_ingenic-tcu:
12*f949cb75SHu Haowen
13*f949cb75SHu Haowen===============================================
14*f949cb75SHu Haowen君正 JZ47xx SoC定時器/計數器硬件單元
15*f949cb75SHu Haowen===============================================
16*f949cb75SHu Haowen
17*f949cb75SHu Haowen君正 JZ47xx SoC中的定時器/計數器單元(TCU)是一個多功能硬件塊。它有多達
18*f949cb75SHu Haowen8個通道,可以用作計數器,計時器,或脈衝寬度調製器。
19*f949cb75SHu Haowen
20*f949cb75SHu Haowen- JZ4725B, JZ4750, JZ4755 只有6個TCU通道。其它SoC都有8個通道。
21*f949cb75SHu Haowen
22*f949cb75SHu Haowen- JZ4725B引入了一個獨立的通道,稱爲操作系統計時器(OST)。這是一個32位可
23*f949cb75SHu Haowen  編程定時器。在JZ4760B及以上型號上,它是64位的。
24*f949cb75SHu Haowen
25*f949cb75SHu Haowen- 每個TCU通道都有自己的時鐘源,可以通過 TCSR 寄存器設置通道的父級時鐘
26*f949cb75SHu Haowen  源(pclk、ext、rtc)、開關以及分頻。
27*f949cb75SHu Haowen
28*f949cb75SHu Haowen    - 看門狗和OST硬件模塊在它們的寄存器空間中也有相同形式的TCSR寄存器。
29*f949cb75SHu Haowen    - 用於關閉/開啓的 TCU 寄存器也可以關閉/開啓看門狗和 OST 時鐘。
30*f949cb75SHu Haowen
31*f949cb75SHu Haowen- 每個TCU通道在兩種模式的其中一種模式下運行:
32*f949cb75SHu Haowen
33*f949cb75SHu Haowen    - 模式 TCU1:通道無法在睡眠模式下運行,但更易於操作。
34*f949cb75SHu Haowen    - 模式 TCU2:通道可以在睡眠模式下運行,但操作比 TCU1 通道複雜一些。
35*f949cb75SHu Haowen
36*f949cb75SHu Haowen- 每個 TCU 通道的模式取決於使用的SoC:
37*f949cb75SHu Haowen
38*f949cb75SHu Haowen    - 在最老的SoC(高於JZ4740),八個通道都運行在TCU1模式。
39*f949cb75SHu Haowen    - 在 JZ4725B,通道5運行在TCU2,其它通道則運行在TCU1。
40*f949cb75SHu Haowen    - 在最新的SoC(JZ4750及之後),通道1-2運行在TCU2,其它通道則運行
41*f949cb75SHu Haowen      在TCU1。
42*f949cb75SHu Haowen
43*f949cb75SHu Haowen- 每個通道都可以生成中斷。有些通道共享一條中斷線,而有些沒有,其在SoC型
44*f949cb75SHu Haowen  號之間的變更:
45*f949cb75SHu Haowen
46*f949cb75SHu Haowen    - 在很老的SoC(JZ4740及更低),通道0和通道1有它們自己的中斷線;通
47*f949cb75SHu Haowen      道2-7共享最後一條中斷線。
48*f949cb75SHu Haowen    - 在 JZ4725B,通道0有它自己的中斷線;通道1-5共享一條中斷線;OST
49*f949cb75SHu Haowen      使用最後一條中斷線。
50*f949cb75SHu Haowen    - 在比較新的SoC(JZ4750及以後),通道5有它自己的中斷線;通
51*f949cb75SHu Haowen      道0-4和(如果是8通道)6-7全部共享一條中斷線;OST使用最後一條中
52*f949cb75SHu Haowen      斷線。
53*f949cb75SHu Haowen
54*f949cb75SHu Haowen實現
55*f949cb75SHu Haowen====
56*f949cb75SHu Haowen
57*f949cb75SHu HaowenTCU硬件的功能分佈在多個驅動程序:
58*f949cb75SHu Haowen
59*f949cb75SHu Haowen==============      ===================================
60*f949cb75SHu Haowen時鐘                drivers/clk/ingenic/tcu.c
61*f949cb75SHu Haowen中斷                drivers/irqchip/irq-ingenic-tcu.c
62*f949cb75SHu Haowen定時器              drivers/clocksource/ingenic-timer.c
63*f949cb75SHu HaowenOST                 drivers/clocksource/ingenic-ost.c
64*f949cb75SHu Haowen脈衝寬度調製器      drivers/pwm/pwm-jz4740.c
65*f949cb75SHu Haowen看門狗              drivers/watchdog/jz4740_wdt.c
66*f949cb75SHu Haowen==============      ===================================
67*f949cb75SHu Haowen
68*f949cb75SHu Haowen因爲可以從相同的寄存器控制屬於不同驅動程序和框架的TCU的各種功能,所以
69*f949cb75SHu Haowen所有這些驅動程序都通過相同的控制總線通用接口訪問它們的寄存器。
70*f949cb75SHu Haowen
71*f949cb75SHu Haowen有關TCU驅動程序的設備樹綁定的更多信息,請參閱:
72*f949cb75SHu HaowenDocumentation/devicetree/bindings/timer/ingenic,tcu.yaml.
73*f949cb75SHu Haowen
74