← Documents Documentation/arch/arm/sunxi/clocks.rst GitHub 원문 ↗

Linux 6.18.37 · Architecture

Frequently asked questions about the sunxi clock system

Sunxi suspend에서 CPU를 24MHz PLL1 경로에서 32kHz oscillator로 옮긴 뒤 주 oscillator를 gate하는 절차와 참고 자료를 설명합니다.

Source pathDocumentation/arch/arm/sunxi/clocks.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

clocks.rst:1-57

Sunxi는 suspend 중에도 CPU가 실행될 최소 클록을 유지하기 위해 먼저 CPU Mux를 32kHz로 전환합니다. 전환이 끝난 뒤에만 24MHz oscillator와 PLL1을 차단해야 시스템을 멈추지 않고 전력을 절약할 수 있습니다.

Sunxi 저전력 클록 전환
24MHzPLL1CPU MuxCPU
32kHz 선택CPU Mux 전환24MHz gateCPU 유지

고속 정상 경로에서 저속 suspend 경로로 먼저 갈아탄 뒤 주 oscillator를 gate합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 =======================================================
2 Frequently asked questions about the sunxi clock system
3 =======================================================
4
5 This document contains useful bits of information that people tend to ask
6 about the sunxi clock system, as well as accompanying ASCII art when adequate.
7
8 Q: Why is the main 24MHz oscillator gateable? Wouldn't that break the
9 system?
10
11 A: The 24MHz oscillator allows gating to save power. Indeed, if gated
12 carelessly the system would stop functioning, but with the right
13 steps, one can gate it and keep the system running. Consider this
14 simplified suspend example:
15
16 While the system is operational, you would see something like::
17
18 24MHz 32kHz
19 |
20 PLL1
21 \
22 \_ CPU Mux
23 |
24 [CPU]
25
26 When you are about to suspend, you switch the CPU Mux to the 32kHz
27 oscillator::
28
29 24Mhz 32kHz
30 | |
31 PLL1 |
32 /
33 CPU Mux _/
34 |
35 [CPU]
36
37 Finally you can gate the main oscillator::
38
39 32kHz
40 |
41 |
42 /
43 CPU Mux _/
44 |
45 [CPU]
46
47 Q: Were can I learn more about the sunxi clocks?
48
49 A: The linux-sunxi wiki contains a page documenting the clock registers,
50 you can find it at
51
52 http://linux-sunxi.org/A10/CCM
53
54 The authoritative source for information at this time is the ccmu driver
55 released by Allwinner, you can find it at
56
57 https://github.com/linux-sunxi/linux-sunxi/tree/sunxi-3.0/arch/arm/mach-sun4i/clock/ccmu
58

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Sunxi 클록 FAQ

1-7

이 문서는 Sunxi 클록 시스템에 관해 자주 묻는 질문과 유용한 정보를 설명하며, 필요한 곳에는 ASCII 그림을 함께 제공합니다.

정상 동작 중의 클록 경로

8-25

질문: 주 24MHz oscillator를 gate할 수 있게 만든 이유는 무엇이며, 시스템이 멈추지 않습니까?

답변: 24MHz oscillator gating은 전력을 절약합니다. 주의 없이 gate하면 시스템이 멈추지만 올바른 순서를 따르면 계속 실행할 수 있습니다. 정상 동작 중에는 24MHz가 PLL1과 CPU Mux를 거쳐 CPU에 공급되고 32kHz oscillator는 대기합니다.

정상 동작 클록
24MHz oscillatorPLL1CPU MuxCPU

주 oscillator가 PLL1을 거쳐 CPU Mux의 입력으로 선택됩니다.

일시 중단 직전 32kHz로 전환

26-36

Suspend에 들어가기 직전 CPU Mux의 입력을 24MHz/PLL1 경로에서 32kHz oscillator로 바꿉니다. CPU는 저속 클록으로 계속 실행되므로 주 oscillator를 끌 준비가 됩니다.

Suspend 전환
24MHz oscillatorPLL1선택 해제
32kHz oscillatorCPU MuxCPU

CPU Mux가 32kHz oscillator를 선택하고 24MHz/PLL1 경로를 분리합니다.

주 oscillator gating

37-46

CPU가 32kHz 입력으로 전환된 뒤에는 주 24MHz oscillator를 gate할 수 있습니다. 이때 CPU Mux와 CPU는 32kHz 경로로 계속 동작합니다.

주 oscillator 차단 후
32kHz oscillatorCPU MuxCPU

24MHz 경로를 제거해도 32kHz 저전력 경로가 CPU를 유지합니다.

추가 자료

47-57

Sunxi 클록 register 설명은 linux-sunxi wiki의 A10 CCM 문서에서 찾을 수 있습니다. 당시 권위 있는 정보원은 Allwinner가 공개한 `ccmu` 드라이버입니다.