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

Linux 6.18.37 · Devicetree Bindings

HiSilicon Hi6220 clock controller

Hi6220 system controller와 SRAM/mailbox 기반 stub clock 바인딩입니다.

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

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

1. 요약·해설

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

요약과 해설

hi6220-clock.txt:1-52

Internal SRAM과 mailbox channel을 통한 주파수 변경 요청 경로를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 * Hisilicon Hi6220 Clock Controller
2
3 Clock control registers reside in different Hi6220 system controllers,
4 please refer the following document to know more about the binding rules
5 for these system controllers:
6
7 Documentation/devicetree/bindings/arm/hisilicon/hisilicon.yaml
8
9 Required Properties:
10
11 - compatible: the compatible should be one of the following strings to
12 indicate the clock controller functionality.
13
14 - "hisilicon,hi6220-acpu-sctrl"
15 - "hisilicon,hi6220-aoctrl"
16 - "hisilicon,hi6220-sysctrl"
17 - "hisilicon,hi6220-mediactrl"
18 - "hisilicon,hi6220-pmctrl"
19 - "hisilicon,hi6220-stub-clk"
20
21 - reg: physical base address of the controller and length of memory mapped
22 region.
23
24 - #clock-cells: should be 1.
25
26 Optional Properties:
27
28 - hisilicon,hi6220-clk-sram: phandle to the syscon managing the SoC internal sram;
29 the driver need use the sram to pass parameters for frequency change.
30
31 - mboxes: use the label reference for the mailbox as the first parameter, the
32 second parameter is the channel number.
33
34 Example 1:
35 sys_ctrl: sys_ctrl@f7030000 {
36 compatible = "hisilicon,hi6220-sysctrl", "syscon";
37 reg = <0x0 0xf7030000 0x0 0x2000>;
38 #clock-cells = <1>;
39 };
40
41 Example 2:
42 stub_clock: stub_clock {
43 compatible = "hisilicon,hi6220-stub-clk";
44 hisilicon,hi6220-clk-sram = <&sram>;
45 #clock-cells = <1>;
46 mboxes = <&mailbox 1>;
47 };
48
49 Each clock is assigned an identifier and client nodes use this identifier
50 to specify the clock which they consume.
51
52 All these identifier could be found in <dt-bindings/clock/hi6220-clock.h>.
53

3. 한국어 전문 번역

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

Hi6220 system controller와 clock 속성

1-33

HiSilicon Hi6220 Clock Controller

Clock control register는 서로 다른 Hi6220 system controller에 있습니다. 이 controller의 바인딩 규칙은 `Documentation/devicetree/bindings/arm/hisilicon/hisilicon.yaml`을 참조합니다.

기능에 따른 필수 `compatible`은 `hisilicon,hi6220-acpu-sctrl`, `hisilicon,hi6220-aoctrl`, `hisilicon,hi6220-sysctrl`, `hisilicon,hi6220-mediactrl`, `hisilicon,hi6220-pmctrl`, `hisilicon,hi6220-stub-clk` 중 하나입니다.

`reg`에는 controller의 physical base address와 memory-mapped region 길이를 지정합니다. `#clock-cells`는 1이어야 합니다.

선택적 `hisilicon,hi6220-clk-sram`은 SoC internal SRAM을 관리하는 syscon의 phandle입니다. Driver는 주파수 변경 매개변수를 전달하기 위해 이 SRAM을 사용해야 합니다.

선택적 `mboxes`의 첫 번째 매개변수는 mailbox label reference이고 두 번째 매개변수는 channel 번호입니다.

Hi6220 stub clock 주파수 변경
Clock driver변경 요청 준비
hi6220-clk-sram주파수 매개변수 공유
mboxes channelMCU에 요청 전달
Hi6220 controllerClock frequency 변경

SRAM과 mailbox를 사용해 주파수 변경 매개변수를 전달하는 경로입니다.

Hi6220 sysctrl 예

34-40

첫 번째 예제는 0xf7030000의 Hi6220 system controller를 1-cell clock provider로 선언합니다.

sys_ctrl: sys_ctrl@f7030000 {
        compatible = "hisilicon,hi6220-sysctrl", "syscon";
        reg = <0x0 0xf7030000 0x0 0x2000>;
        #clock-cells = <1>;
};

Hi6220 stub clock과 identifier

41-52

두 번째 예제는 internal SRAM과 mailbox channel 1을 사용하는 stub clock provider를 선언합니다.

stub_clock: stub_clock {
        compatible = "hisilicon,hi6220-stub-clk";
        hisilicon,hi6220-clk-sram = <&sram>;
        #clock-cells = <1>;
        mboxes = <&mailbox 1>;
};

각 clock에는 identifier가 할당되고 client node가 소비할 clock을 지정할 때 사용합니다. 모든 identifier는 `<dt-bindings/clock/hi6220-clock.h>`에 정의되어 있습니다.