← Documents Documentation/devicetree/bindings/clock/vt8500.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

VT8500 clock bindings

VT8500/WM PLL과 gated/divided device-clock 바인딩입니다.

Source pathDocumentation/devicetree/bindings/clock/vt8500.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

vt8500.txt:1-74

PMC register offset 기반 PLL, gate와 divisor 제어를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Device Tree Clock bindings for arch-vt8500
2
3 This binding uses the common clock binding[1].
4
5 [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6
7 Required properties:
8 - compatible : shall be one of the following:
9 "via,vt8500-pll-clock" - for a VT8500/WM8505 PLL clock
10 "wm,wm8650-pll-clock" - for a WM8650 PLL clock
11 "wm,wm8750-pll-clock" - for a WM8750 PLL clock
12 "wm,wm8850-pll-clock" - for a WM8850 PLL clock
13 "via,vt8500-device-clock" - for a VT/WM device clock
14
15 Required properties for PLL clocks:
16 - reg : shall be the control register offset from PMC base for the pll clock.
17 - clocks : shall be the input parent clock phandle for the clock. This should
18 be the reference clock.
19 - #clock-cells : from common clock binding; shall be set to 0.
20
21 Required properties for device clocks:
22 - clocks : shall be the input parent clock phandle for the clock. This should
23 be a pll output.
24 - #clock-cells : from common clock binding; shall be set to 0.
25
26
27 Device Clocks
28
29 Device clocks are required to have one or both of the following sets of
30 properties:
31
32
33 Gated device clocks:
34
35 Required properties:
36 - enable-reg : shall be the register offset from PMC base for the enable
37 register.
38 - enable-bit : shall be the bit within enable-reg to enable/disable the clock.
39
40
41 Divisor device clocks:
42
43 Required property:
44 - divisor-reg : shall be the register offset from PMC base for the divisor
45 register.
46 Optional property:
47 - divisor-mask : shall be the mask for the divisor register. Defaults to 0x1f
48 if not specified.
49
50
51 For example:
52
53 ref25: ref25M {
54 #clock-cells = <0>;
55 compatible = "fixed-clock";
56 clock-frequency = <25000000>;
57 };
58
59 plla: plla {
60 #clock-cells = <0>;
61 compatible = "wm,wm8650-pll-clock";
62 clocks = <&ref25>;
63 reg = <0x200>;
64 };
65
66 sdhc: sdhc {
67 #clock-cells = <0>;
68 compatible = "via,vt8500-device-clock";
69 clocks = <&pllb>;
70 divisor-reg = <0x328>;
71 divisor-mask = <0x3f>;
72 enable-reg = <0x254>;
73 enable-bit = <18>;
74 };
75

3. 한국어 전문 번역

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

VT8500/WM PLL과 device clock

1-25

arch-vt8500 clock 바인딩입니다. 공통 clock 바인딩을 사용하며 PLL compatible은 `via,vt8500-pll-clock`, `wm,wm8650-pll-clock`, `wm,wm8750-pll-clock`, `wm,wm8850-pll-clock`, device clock compatible은 `via,vt8500-device-clock`입니다.

PLL clock의 `reg`는 PMC base 기준 control register offset이고 `clocks`는 reference-clock parent입니다. Device clock의 `clocks`는 PLL output parent입니다. 두 provider 모두 `#clock-cells`는 0입니다.

VT8500 clock hierarchy
Reference clockPLL input
VT8500/WM PLLPMC offset으로 제어
PLL outputDevice clock parent
Gate and/or divisorPeripheral clock

Reference clock에서 PLL과 gated/divided device clock으로 이어집니다.

Gated 및 divisor device clock

26-49

Device clock은 gated clock 속성 집합과 divisor clock 속성 집합 중 하나 또는 둘 다 가져야 합니다.

Gated device clock의 `enable-reg`는 PMC base 기준 enable register offset이고 `enable-bit`는 그 register에서 clock enable/disable을 제어하는 bit입니다.

Divisor device clock의 `divisor-reg`는 PMC base 기준 divisor register offset입니다. 선택적인 `divisor-mask`는 divisor field mask이며 생략하면 0x1f가 기본값입니다.

VT8500 device-clock controls
ControlRequiredOptional/default
Gateenable-reg, enable-bit-
Dividerdivisor-regdivisor-mask, default 0x1f

Gate와 divisor 속성 집합은 독립적이며 함께 사용할 수 있습니다.

25 MHz reference, PLL과 SDHC 예제

50-74

예제는 25 MHz fixed clock을 WM8650 PLL의 parent로 연결합니다. SDHC device clock은 PLLB를 parent로 사용하고 divisor register 0x328, mask 0x3f, enable register 0x254의 bit 18을 지정합니다.

ref25: ref25M {
        #clock-cells = <0>;
        compatible = "fixed-clock";
        clock-frequency = <25000000>;
};

plla: plla {
        #clock-cells = <0>;
        compatible = "wm,wm8650-pll-clock";
        clocks = <&ref25>;
        reg = <0x200>;
};

sdhc: sdhc {
        #clock-cells = <0>;
        compatible = "via,vt8500-device-clock";
        clocks = <&pllb>;
        divisor-reg = <0x328>;
        divisor-mask = <0x3f>;
        enable-reg = <0x254>;
        enable-bit = <18>;
};