요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
* Omnivision OV7670 CMOS sensor
The Omnivision OV7670 sensor supports multiple resolutions output, such as
CIF, SVGA, UXGA. It also can support the YUV422/420, RGB565/555 or raw RGB
output formats.
Required Properties:
- compatible: should be "ovti,ov7670"
- clocks: reference to the xclk input clock.
- clock-names: should be "xclk".
Required Endpoint Properties:
- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
Optional Properties:
- reset-gpios: reference to the GPIO connected to the resetb pin, if any.
Active is low.
- powerdown-gpios: reference to the GPIO connected to the pwdn pin, if any.
Active is high.
- ov7670,pclk-hb-disable: a boolean property to suppress pixel clock output
signal during horizontal blankings.
The device node must contain one 'port' child node with one 'endpoint' child
sub-node for its digital output video port, in accordance with the video
interface bindings defined in:
Documentation/devicetree/bindings/media/video-interfaces.txt.
Example:
i2c1: i2c@f0018000 {
ov7670: camera@21 {
compatible = "ovti,ov7670";
reg = <0x21>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
reset-gpios = <&pioE 11 GPIO_ACTIVE_LOW>;
powerdown-gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
clocks = <&pck0>;
clock-names = "xclk";
assigned-clocks = <&pck0>;
assigned-clock-rates = <25000000>;
ov7670,pclk-hb-disable;
port {
ov7670_0: endpoint {
hsync-active = <0>;
vsync-active = <0>;
remote-endpoint = <&isi_0>;
};
};
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
OV7670 clock과 sync polarity
1-15OmniVision OV7670 CMOS sensor는 CIF, SVGA, UXGA 등 여러 해상도와 YUV422/420, RGB565/555, raw RGB output을 지원합니다.
필수 `compatible`은 `ovti,ov7670`, `clocks`는 xclk input reference, `clock-names`는 `xclk`입니다. Endpoint의 필수 `hsync-active`와 `vsync-active`는 각각 HSYNC와 VSYNC의 active state이며 0은 LOW, 1은 HIGH를 뜻합니다.
Endpoint의 0/1 값이 각 sync signal의 active level을 결정합니다.
Reset, powerdown과 blanking clock
16-28선택적인 `reset-gpios`는 active-low resetb, `powerdown-gpios`는 active-high pwdn pin을 가리킵니다. Boolean `ov7670,pclk-hb-disable`은 horizontal blanking 동안 pixel clock output을 억제합니다.
Device node는 `Documentation/devicetree/bindings/media/video-interfaces.txt`에 따라 digital output video port용 `port`와 `endpoint` child를 각각 하나씩 포함해야 합니다.
25MHz active-low sync 예제
29-55예제는 I2C 주소 `0x21`의 sensor에 active-low reset과 active-high powerdown GPIO를 연결하고 `pck0`을 25MHz xclk로 사용합니다. Horizontal blanking의 PCLK를 끄며 endpoint는 HSYNC·VSYNC 모두 active-low로 설정하고 `isi_0`을 가리킵니다.
i2c1: i2c@f0018000 {
ov7670: camera@21 {
compatible = "ovti,ov7670";
reg = <0x21>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
reset-gpios = <&pioE 11 GPIO_ACTIVE_LOW>;
powerdown-gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
clocks = <&pck0>;
clock-names = "xclk";
assigned-clocks = <&pck0>;
assigned-clock-rates = <25000000>;
ov7670,pclk-hb-disable;
port {
ov7670_0: endpoint {
hsync-active = <0>;
vsync-active = <0>;
remote-endpoint = <&isi_0>;
};
};
};
};
요약과 해설
ovti,ov7670.txt:1-55Active-low sync와 25MHz ISI endpoint 예제를 설명합니다.