요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
OMAP SSI controller bindings
OMAP3's Synchronous Serial Interface (SSI) controller implements a
legacy variant of MIPI's High Speed Synchronous Serial Interface (HSI),
while the controller found inside OMAP4 is supposed to be fully compliant
with the HSI standard.
Required properties:
- compatible: Should include "ti,omap3-ssi" or "ti,omap4-hsi"
- reg-names: Contains the values "sys" and "gdd" (in this order).
- reg: Contains a matching register specifier for each entry
in reg-names.
- interrupt-names: Contains the value "gdd_mpu".
- interrupts: Contains matching interrupt information for each entry
in interrupt-names.
- ranges: Represents the bus address mapping between the main
controller node and the child nodes below.
- clock-names: Must include the following entries:
"ssi_ssr_fck": The OMAP clock of that name
"ssi_sst_fck": The OMAP clock of that name
"ssi_ick": The OMAP clock of that name
- clocks: Contains a matching clock specifier for each entry in
clock-names.
- #address-cells: Should be set to <1>
- #size-cells: Should be set to <1>
Each port is represented as a sub-node of the ti,omap3-ssi device.
Required Port sub-node properties:
- compatible: Should be set to the following value
ti,omap3-ssi-port (applicable to OMAP34xx devices)
ti,omap4-hsi-port (applicable to OMAP44xx devices)
- reg-names: Contains the values "tx" and "rx" (in this order).
- reg: Contains a matching register specifier for each entry
in reg-names.
- interrupts: Should contain interrupt specifiers for mpu interrupts
0 and 1 (in this order).
- ti,ssi-cawake-gpio: Defines which GPIO pin is used to signify CAWAKE
events for the port. This is an optional board-specific
property. If it's missing the port will not be
enabled.
Optional properties:
- ti,hwmods: Shall contain TI interconnect module name if needed
by the SoC
Example for Nokia N900:
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>;
}
}
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
OMAP SSI/HSI controller
1-26OMAP3 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입니다.
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>;
}
}
요약과 해설
omap-ssi.txt:1-102System/GDD 자원, clock, TX/RX port와 CAWAKE를 설명합니다.