.. SPDX-License-Identifier: GPL-2.0 .. include:: ../../disclaimer-zh_TW.rst :Original: Documentation/arch/mips/ingenic-tcu.rst :ç¿»è¯: å¸å»¶é¨° Yanteng Si <siyanteng@loongson.cn> .. _tw_ingenic-tcu: =============================================== 囿£ JZ47xx SoC定時器/計數器硬件單元 =============================================== 囿£ JZ47xx SoCä¸çš„定時器/計數器單元(TCU)æ˜¯ä¸€å€‹å¤šåŠŸèƒ½ç¡¬ä»¶å¡Šã€‚å®ƒæœ‰å¤šé” 8個通é“,å¯ä»¥ç”¨ä½œè¨ˆæ•¸å™¨ï¼Œè¨ˆæ™‚器,或脈è¡å¯¬åº¦èª¿è£½å™¨ã€‚ - JZ4725B, JZ4750, JZ4755 åªæœ‰ï¼–個TCU通é“。其它SoC都有8個通é“。 - JZ4725B引入了一個ç¨ç«‹çš„通é“,稱爲æ“作系統計時器(OST)。這是一個32ä½å¯ 編程定時器。在JZ4760BåŠä»¥ä¸Šåž‹è™Ÿä¸Šï¼Œå®ƒæ˜¯64ä½çš„。 - æ¯å€‹TCU通é“éƒ½æœ‰è‡ªå·±çš„æ™‚é˜æºï¼Œå¯ä»¥é€šéŽ TCSR 寄å˜å™¨è¨ç½®é€šé“çš„çˆ¶ç´šæ™‚é˜ æºï¼ˆpclkã€extã€rtc)ã€é–‹é—œä»¥åŠåˆ†é »ã€‚ - 看門狗和OST硬件模塊在它們的寄å˜å™¨ç©ºé–“ä¸ä¹Ÿæœ‰ç›¸åŒå½¢å¼çš„TCSR寄å˜å™¨ã€‚ - 用於關閉/é–‹å•“çš„ TCU 寄å˜å™¨ä¹Ÿå¯ä»¥é—œé–‰/開啓看門狗和 OST 時é˜ã€‚ - æ¯å€‹TCU通é“在兩種模å¼çš„å…¶ä¸ä¸€ç¨®æ¨¡å¼ä¸‹é‹è¡Œï¼š - æ¨¡å¼ TCU1:通é“無法在ç¡çœ 模å¼ä¸‹é‹è¡Œï¼Œä½†æ›´æ˜“æ–¼æ“作。 - æ¨¡å¼ TCU2:通é“å¯ä»¥åœ¨ç¡çœ 模å¼ä¸‹é‹è¡Œï¼Œä½†æ“作比 TCU1 通é“複雜一些。 - æ¯å€‹ TCU 通é“的模å¼å–決於使用的SoC: - 在最è€çš„SoC(高於JZ4740),八個通é“都é‹è¡Œåœ¨TCU1模å¼ã€‚ - 在 JZ4725B,通é“5é‹è¡Œåœ¨TCU2,其它通é“則é‹è¡Œåœ¨TCU1。 - 在最新的SoC(JZ4750åŠä¹‹å¾Œï¼‰ï¼Œé€šé“1-2é‹è¡Œåœ¨TCU2,其它通é“則é‹è¡Œ 在TCU1。 - æ¯å€‹é€šé“都å¯ä»¥ç”Ÿæˆä¸æ–·ã€‚有些通é“共享一æ¢ä¸æ–·ç·šï¼Œè€Œæœ‰äº›æ²’有,其在SoCåž‹ 號之間的變更: - 在很è€çš„SoC(JZ4740åŠæ›´ä½Žï¼‰ï¼Œé€šé“0和通é“1æœ‰å®ƒå€‘è‡ªå·±çš„ä¸æ–·ç·šï¼›é€š é“2-7共享最後一æ¢ä¸æ–·ç·šã€‚ - 在 JZ4725B,通é“0æœ‰å®ƒè‡ªå·±çš„ä¸æ–·ç·šï¼›é€šé“1-5共享一æ¢ä¸æ–·ç·šï¼›OST 使用最後一æ¢ä¸æ–·ç·šã€‚ - 在比較新的SoC(JZ4750åŠä»¥å¾Œï¼‰ï¼Œé€šé“5æœ‰å®ƒè‡ªå·±çš„ä¸æ–·ç·šï¼›é€š é“0-4和(如果是8通é“)6-7全部共享一æ¢ä¸æ–·ç·šï¼›OST使用最後一æ¢ä¸ 斷線。 å¯¦ç¾ ==== TCU硬件的功能分佈在多個驅動程åºï¼š ============== =================================== æ™‚é˜ drivers/clk/ingenic/tcu.c 䏿–· drivers/irqchip/irq-ingenic-tcu.c 定時器 drivers/clocksource/ingenic-timer.c OST drivers/clocksource/ingenic-ost.c 脈è¡å¯¬åº¦èª¿è£½å™¨ drivers/pwm/pwm-jz4740.c 看門狗 drivers/watchdog/jz4740_wdt.c ============== =================================== å› çˆ²å¯ä»¥å¾žç›¸åŒçš„寄å˜å™¨æŽ§åˆ¶å±¬æ–¼ä¸åŒé©…動程åºå’Œæ¡†æž¶çš„TCUçš„å„種功能,所以 所有這些驅動程åºéƒ½é€šéŽç›¸åŒçš„æŽ§åˆ¶ç¸½ç·šé€šç”¨æŽ¥å£è¨ªå•它們的寄å˜å™¨ã€‚ 有關TCU驅動程åºçš„è¨å‚™æ¨¹ç¶å®šçš„æ›´å¤šä¿¡æ¯ï¼Œè«‹åƒé–±: Documentation/devicetree/bindings/timer/ingenic,tcu.yaml.