요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
* Hisilicon Hi6220 Clock Controller
Clock control registers reside in different Hi6220 system controllers,
please refer the following document to know more about the binding rules
for these system controllers:
Documentation/devicetree/bindings/arm/hisilicon/hisilicon.yaml
Required Properties:
- compatible: the compatible should be one of the following strings to
indicate the clock controller functionality.
- "hisilicon,hi6220-acpu-sctrl"
- "hisilicon,hi6220-aoctrl"
- "hisilicon,hi6220-sysctrl"
- "hisilicon,hi6220-mediactrl"
- "hisilicon,hi6220-pmctrl"
- "hisilicon,hi6220-stub-clk"
- reg: physical base address of the controller and length of memory mapped
region.
- #clock-cells: should be 1.
Optional Properties:
- hisilicon,hi6220-clk-sram: phandle to the syscon managing the SoC internal sram;
the driver need use the sram to pass parameters for frequency change.
- mboxes: use the label reference for the mailbox as the first parameter, the
second parameter is the channel number.
Example 1:
sys_ctrl: sys_ctrl@f7030000 {
compatible = "hisilicon,hi6220-sysctrl", "syscon";
reg = <0x0 0xf7030000 0x0 0x2000>;
#clock-cells = <1>;
};
Example 2:
stub_clock: stub_clock {
compatible = "hisilicon,hi6220-stub-clk";
hisilicon,hi6220-clk-sram = <&sram>;
#clock-cells = <1>;
mboxes = <&mailbox 1>;
};
Each clock is assigned an identifier and client nodes use this identifier
to specify the clock which they consume.
All these identifier could be found in <dt-bindings/clock/hi6220-clock.h>.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Hi6220 system controller와 clock 속성
1-33HiSilicon 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 번호입니다.
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>`에 정의되어 있습니다.
요약과 해설
hi6220-clock.txt:1-52Internal SRAM과 mailbox channel을 통한 주파수 변경 요청 경로를 설명합니다.