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