← Documents Documentation/devicetree/bindings/hsi/omap-ssi.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

OMAP SSI/HSI Controller

OMAP3 SSI와 OMAP4 HSI controller 및 port child 바인딩입니다.

Source pathDocumentation/devicetree/bindings/hsi/omap-ssi.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

omap-ssi.txt:1-102

System/GDD 자원, clock, TX/RX port와 CAWAKE를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 OMAP SSI controller bindings
2
3 OMAP3's Synchronous Serial Interface (SSI) controller implements a
4 legacy variant of MIPI's High Speed Synchronous Serial Interface (HSI),
5 while the controller found inside OMAP4 is supposed to be fully compliant
6 with the HSI standard.
7
8 Required properties:
9 - compatible: Should include "ti,omap3-ssi" or "ti,omap4-hsi"
10 - reg-names: Contains the values "sys" and "gdd" (in this order).
11 - reg: Contains a matching register specifier for each entry
12 in reg-names.
13 - interrupt-names: Contains the value "gdd_mpu".
14 - interrupts: Contains matching interrupt information for each entry
15 in interrupt-names.
16 - ranges: Represents the bus address mapping between the main
17 controller node and the child nodes below.
18 - clock-names: Must include the following entries:
19 "ssi_ssr_fck": The OMAP clock of that name
20 "ssi_sst_fck": The OMAP clock of that name
21 "ssi_ick": The OMAP clock of that name
22 - clocks: Contains a matching clock specifier for each entry in
23 clock-names.
24 - #address-cells: Should be set to <1>
25 - #size-cells: Should be set to <1>
26
27 Each port is represented as a sub-node of the ti,omap3-ssi device.
28
29 Required Port sub-node properties:
30 - compatible: Should be set to the following value
31 ti,omap3-ssi-port (applicable to OMAP34xx devices)
32 ti,omap4-hsi-port (applicable to OMAP44xx devices)
33 - reg-names: Contains the values "tx" and "rx" (in this order).
34 - reg: Contains a matching register specifier for each entry
35 in reg-names.
36 - interrupts: Should contain interrupt specifiers for mpu interrupts
37 0 and 1 (in this order).
38 - ti,ssi-cawake-gpio: Defines which GPIO pin is used to signify CAWAKE
39 events for the port. This is an optional board-specific
40 property. If it's missing the port will not be
41 enabled.
42
43 Optional properties:
44 - ti,hwmods: Shall contain TI interconnect module name if needed
45 by the SoC
46
47 Example for Nokia N900:
48
49 ssi-controller@48058000 {
50 compatible = "ti,omap3-ssi";
51
52 /* needed until hwmod is updated to use the compatible string */
53 ti,hwmods = "ssi";
54
55 reg = <0x48058000 0x1000>,
56 <0x48059000 0x1000>;
57 reg-names = "sys",
58 "gdd";
59
60 interrupts = <55>;
61 interrupt-names = "gdd_mpu";
62
63 clocks = <&ssi_ssr_fck>,
64 <&ssi_sst_fck>,
65 <&ssi_ick>;
66 clock-names = "ssi_ssr_fck",
67 "ssi_sst_fck",
68 "ssi_ick";
69
70 #address-cells = <1>;
71 #size-cells = <1>;
72 ranges;
73
74 ssi-port@4805a000 {
75 compatible = "ti,omap3-ssi-port";
76
77 reg = <0x4805a000 0x800>,
78 <0x4805a800 0x800>;
79 reg-names = "tx",
80 "rx";
81
82 interrupt-parent = <&intc>;
83 interrupts = <67>,
84 <68>;
85
86 ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
87 }
88
89 ssi-port@4805a000 {
90 compatible = "ti,omap3-ssi-port";
91
92 reg = <0x4805b000 0x800>,
93 <0x4805b800 0x800>;
94 reg-names = "tx",
95 "rx";
96
97 interrupt-parent = <&intc>;
98 interrupts = <69>,
99 <70>;
100
101 }
102 }
103

3. 한국어 전문 번역

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

OMAP SSI/HSI controller

1-26

OMAP3 Synchronous Serial Interface(SSI) controller는 MIPI High Speed Synchronous Serial Interface(HSI)의 legacy variant를 구현합니다. OMAP4 controller는 HSI 표준을 완전히 준수하는 것으로 설계되었습니다.

필수 `compatible`은 `ti,omap3-ssi` 또는 `ti,omap4-hsi`입니다. `reg-names`는 `sys`, `gdd` 순서이고 `reg`에는 각 이름과 대응하는 register specifier가 들어갑니다. `interrupt-names`는 `gdd_mpu`이고 `interrupts`는 대응 interrupt 정보입니다.

`ranges`는 main controller node와 아래 child node 사이 bus address mapping입니다. `clock-names`에는 `ssi_ssr_fck`, `ssi_sst_fck`, `ssi_ick`을 포함하고 `clocks`에는 각각 대응하는 clock specifier를 넣습니다. `#address-cells`와 `#size-cells`는 모두 1입니다.

OMAP SSI controller 구조
OMAP SSI/HSI controllersys + gdd registers
GDD interruptgdd_mpu
SSI clocksSSR, SST, interface
Port childTX/RX registers + MPU interrupts

Main controller의 system/GDD 자원과 child port의 TX/RX 자원 계층입니다.

OMAP SSI port child

27-46

각 port는 `ti,omap3-ssi` device의 sub-node입니다. OMAP34xx port의 `compatible`은 `ti,omap3-ssi-port`, OMAP44xx는 `ti,omap4-hsi-port`입니다. `reg-names`는 `tx`, `rx` 순서이고 각 이름에 대응하는 `reg`가 필요합니다.

`interrupts`는 MPU interrupt 0과 1을 이 순서로 포함합니다. 선택 board-specific `ti,ssi-cawake-gpio`는 port의 CAWAKE event를 알리는 GPIO pin입니다. 이 속성이 없으면 port가 활성화되지 않습니다. SoC에 필요하면 선택 `ti,hwmods`에 TI interconnect module 이름을 넣습니다.

Nokia N900 OMAP3 SSI 예제

47-102

예제 OMAP3 SSI controller는 `sys`/`gdd` register, GDD interrupt 55, 세 clock, 1-cell child bus와 두 port를 선언합니다. 첫 port는 TX/RX register와 interrupt 67/68, GPIO5 line 23의 active-high CAWAKE를 사용합니다. 두 번째 port는 별도 TX/RX register와 interrupt 69/70을 사용합니다.

ssi-controller@48058000 {
        compatible = "ti,omap3-ssi";

        /* needed until hwmod is updated to use the compatible string */
        ti,hwmods = "ssi";

        reg = <0x48058000 0x1000>,
              <0x48059000 0x1000>;
        reg-names = "sys",
                    "gdd";

        interrupts = <55>;
        interrupt-names = "gdd_mpu";

        clocks = <&ssi_ssr_fck>,
                 <&ssi_sst_fck>,
                 <&ssi_ick>;
        clock-names = "ssi_ssr_fck",
                      "ssi_sst_fck",
                      "ssi_ick";

        #address-cells = <1>;
        #size-cells = <1>;
        ranges;

        ssi-port@4805a000 {
                compatible = "ti,omap3-ssi-port";

                reg = <0x4805a000 0x800>,
                      <0x4805a800 0x800>;
                reg-names = "tx",
                            "rx";

                interrupt-parent = <&intc>;
                interrupts = <67>,
                             <68>;

                ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
        }

        ssi-port@4805a000 {
                compatible = "ti,omap3-ssi-port";

                reg = <0x4805b000 0x800>,
                      <0x4805b800 0x800>;
                reg-names = "tx",
                            "rx";

                interrupt-parent = <&intc>;
                interrupts = <69>,
                             <70>;

        }
}