← Documents Documentation/devicetree/bindings/arm/omap/ctrl.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

OMAP Control Module

OMAP SCM pinctrl, syscon, clock과 clockdomain child binding을 설명합니다.

Source pathDocumentation/devicetree/bindings/arm/omap/ctrl.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

ctrl.txt:1-82

Control Module은 pinmux와 clock 계층을 포함하고 syscon으로 외부 driver에 register access를 공유합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 OMAP Control Module bindings
2
3 Control Module contains miscellaneous features under it based on SoC type.
4 Pincontrol is one common feature, and it has a specialized support
5 described in [1]. Typically some clock nodes are also under control module.
6 Syscon is used to share register level access to drivers external to
7 control module driver itself.
8
9 See [2] for documentation about clock/clockdomain nodes.
10
11 [1] Documentation/devicetree/bindings/pinctrl/pinctrl-single.yaml
12 [2] Documentation/devicetree/bindings/clock/ti/*
13
14 Required properties:
15 - compatible: Must be one of:
16 "ti,am3-scm"
17 "ti,am4-scm"
18 "ti,dm814-scrm"
19 "ti,dm816-scrm"
20 "ti,omap2-scm"
21 "ti,omap3-scm"
22 "ti,omap4-scm-core"
23 "ti,omap4-scm-padconf-core"
24 "ti,omap4-scm-wkup"
25 "ti,omap4-scm-padconf-wkup"
26 "ti,omap5-scm-core"
27 "ti,omap5-scm-padconf-core"
28 "ti,omap5-scm-wkup-pad-conf"
29 "ti,dra7-scm-core"
30 - reg: Contains Control Module register address range
31 (base address and length)
32
33 Optional properties:
34 - clocks: clocks for this module
35 - clockdomains: clockdomains for this module
36
37 Examples:
38
39 scm: scm@2000 {
40 compatible = "ti,omap3-scm", "simple-bus";
41 reg = <0x2000 0x2000>;
42 #address-cells = <1>;
43 #size-cells = <1>;
44 ranges = <0 0x2000 0x2000>;
45
46 omap3_pmx_core: pinmux@30 {
47 compatible = "ti,omap3-padconf",
48 "pinctrl-single";
49 reg = <0x30 0x230>;
50 #address-cells = <1>;
51 #size-cells = <0>;
52 #interrupt-cells = <1>;
53 interrupt-controller;
54 pinctrl-single,register-width = <16>;
55 pinctrl-single,function-mask = <0xff1f>;
56 };
57
58 scm_conf: scm_conf@270 {
59 compatible = "syscon";
60 reg = <0x270 0x330>;
61 #address-cells = <1>;
62 #size-cells = <1>;
63
64 scm_clocks: clocks {
65 #address-cells = <1>;
66 #size-cells = <0>;
67 };
68 };
69
70 scm_clockdomains: clockdomains {
71 };
72 }
73
74 &scm_clocks {
75 mcbsp5_mux_fck: mcbsp5_mux_fck {
76 #clock-cells = <0>;
77 compatible = "ti,composite-mux-clock";
78 clocks = <&core_96m_fck>, <&mcbsp_clks>;
79 ti,bit-shift = <4>;
80 reg = <0x02d8>;
81 };
82 };
83

3. 한국어 전문 번역

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

OMAP Control Module 역할과 reference

1-12

OMAP Control Module binding

Control Module은 SoC type에 따라 여러 miscellaneous feature를 포함합니다. Pin control은 공통 기능이며 [1]의 specialized support를 사용합니다. 일반적으로 일부 clock node도 Control Module 아래에 있습니다.

Syscon은 Control Module driver 외부의 driver와 register-level access를 공유하는 데 사용합니다. Clock 및 clockdomain node 문서는 [2]를 참조하십시오.

[1] `Documentation/devicetree/bindings/pinctrl/pinctrl-single.yaml`

[2] `Documentation/devicetree/bindings/clock/ti/*`

Control Module compatible과 optional clock

13-36

필수 property

`compatible`은 `ti,am3-scm`, `ti,am4-scm`, `ti,dm814-scrm`, `ti,dm816-scrm`, `ti,omap2-scm`, `ti,omap3-scm`, `ti,omap4-scm-core`, `ti,omap4-scm-padconf-core`, `ti,omap4-scm-wkup`, `ti,omap4-scm-padconf-wkup`, `ti,omap5-scm-core`, `ti,omap5-scm-padconf-core`, `ti,omap5-scm-wkup-pad-conf` 또는 `ti,dra7-scm-core` 중 하나여야 합니다.

`reg`에는 Control Module register address range의 base address와 길이가 들어갑니다.

Optional `clocks`는 이 module의 clock을, `clockdomains`는 이 module의 clockdomain을 지정합니다.

SCM, pinmux, syscon과 clock node 예

37-82

다음 예는 OMAP3 SCM 아래 pinmux interrupt controller, shared syscon configuration, clocks와 clockdomains child node를 배치합니다.

뒤의 overlay-style reference는 `scm_clocks` 아래 composite mux clock을 추가하고 `core_96m_fck` 및 `mcbsp_clks`를 parent로 사용하며 bit shift 4와 register offset `0x02d8`을 지정합니다.

scm: scm@2000 {
        compatible = "ti,omap3-scm", "simple-bus";
        reg = <0x2000 0x2000>;
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0 0x2000 0x2000>;

        omap3_pmx_core: pinmux@30 {
                compatible = "ti,omap3-padconf",
                             "pinctrl-single";
                reg = <0x30 0x230>;
                #address-cells = <1>;
                #size-cells = <0>;
                #interrupt-cells = <1>;
                interrupt-controller;
                pinctrl-single,register-width = <16>;
                pinctrl-single,function-mask = <0xff1f>;
        };

        scm_conf: scm_conf@270 {
                compatible = "syscon";
                reg = <0x270 0x330>;
                #address-cells = <1>;
                #size-cells = <1>;

                scm_clocks: clocks {
                        #address-cells = <1>;
                        #size-cells = <0>;
                };
        };

        scm_clockdomains: clockdomains {
        };
}

&scm_clocks {
        mcbsp5_mux_fck: mcbsp5_mux_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
                clocks = <&core_96m_fck>, <&mcbsp_clks>;
                ti,bit-shift = <4>;
                reg = <0x02d8>;
        };
};
OMAP Control Module child hierarchy
scmti,omap3-scm + simple-bus
pinmux@30pinctrl-single과 interrupt controller
scm_conf@270syscon register sharing
scm_clocksClock child container
scm_clockdomainsClockdomain container

SCM 아래 pin control, syscon, clock과 clockdomain을 배치하는 구조입니다.