Documentation/devicetree/bindings/clock/hi3660-clock.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

HiSilicon Hi3660 clock controller

Hi3660 CRG/PCTRL/PMU/SCTRL/IOMCU/stub clock provider 바인딩입니다.

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

요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.

1. 요약·해설

원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.

요약과 해설

hi3660-clock.txt:1-47

1-cell clock identifier와 UART0 consumer 연결 예를 설명합니다.

2. 영어 원문 전체

번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.

원문 전체 펼치기
1 * Hisilicon Hi3660 Clock Controller
2
3 The Hi3660 clock controller generates and supplies clock to various
4 controllers within the Hi3660 SoC.
5
6 Required Properties:
7
8 - compatible: the compatible should be one of the following strings to
9 indicate the clock controller functionality.
10
11 - "hisilicon,hi3660-crgctrl"
12 - "hisilicon,hi3660-pctrl"
13 - "hisilicon,hi3660-pmuctrl"
14 - "hisilicon,hi3660-sctrl"
15 - "hisilicon,hi3660-iomcu"
16 - "hisilicon,hi3660-stub-clk"
17
18 - reg: physical base address of the controller and length of memory mapped
19 region.
20
21 - #clock-cells: should be 1.
22
23 Optional Properties:
24
25 - mboxes: Phandle to the mailbox for sending message to MCU.
26 (See: ../mailbox/hisilicon,hi3660-mailbox.txt for more info)
27
28 Each clock is assigned an identifier and client nodes use this identifier
29 to specify the clock which they consume.
30
31 All these identifier could be found in <dt-bindings/clock/hi3660-clock.h>.
32
33 Examples:
34 crg_ctrl: clock-controller@fff35000 {
35 compatible = "hisilicon,hi3660-crgctrl", "syscon";
36 reg = <0x0 0xfff35000 0x0 0x1000>;
37 #clock-cells = <1>;
38 };
39
40 uart0: serial@fdf02000 {
41 compatible = "arm,pl011", "arm,primecell";
42 reg = <0x0 0xfdf02000 0x0 0x1000>;
43 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
44 clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>,
45 <&crg_ctrl HI3660_PCLK>;
46 clock-names = "uartclk", "apb_pclk";
47 };
48

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.

Hi3660 clock controller 속성

1-32

HiSilicon Hi3660 Clock Controller

Hi3660 clock controller는 Hi3660 SoC 안의 여러 controller에 clock을 생성하여 공급합니다.

기능에 따른 필수 `compatible`은 `hisilicon,hi3660-crgctrl`, `hisilicon,hi3660-pctrl`, `hisilicon,hi3660-pmuctrl`, `hisilicon,hi3660-sctrl`, `hisilicon,hi3660-iomcu`, `hisilicon,hi3660-stub-clk` 중 하나입니다.

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

선택적 `mboxes`는 MCU에 message를 보내는 mailbox의 phandle입니다. 자세한 내용은 `../mailbox/hisilicon,hi3660-mailbox.txt`를 참조합니다.

각 clock에는 identifier가 할당되고 client node는 소비할 clock을 이 identifier로 지정합니다. identifier는 `<dt-bindings/clock/hi3660-clock.h>`에 정의되어 있습니다.

Hi3660 clock controller 기능
Blockcompatible
CRGhisilicon,hi3660-crgctrl
Peripheral controlhisilicon,hi3660-pctrl
PMU controlhisilicon,hi3660-pmuctrl
System controlhisilicon,hi3660-sctrl
I/O MCUhisilicon,hi3660-iomcu
Stub clockhisilicon,hi3660-stub-clk

Controller block별 compatible 값을 정리합니다.

CRG와 UART0 consumer 예

33-47

예제는 CRG controller의 clock identifier 두 개를 UART0의 `uartclk`과 `apb_pclk`으로 연결합니다.

crg_ctrl: clock-controller@fff35000 {
        compatible = "hisilicon,hi3660-crgctrl", "syscon";
        reg = <0x0 0xfff35000 0x0 0x1000>;
        #clock-cells = <1>;
};

uart0: serial@fdf02000 {
        compatible = "arm,pl011", "arm,primecell";
        reg = <0x0 0xfdf02000 0x0 0x1000>;
        interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>,
                 <&crg_ctrl HI3660_PCLK>;
        clock-names = "uartclk", "apb_pclk";
};