← Documents Documentation/devicetree/bindings/media/i2c/ovti,ov7670.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

OmniVision OV7670 CMOS Sensor

OV7670의 xclk, sync polarity와 horizontal-blanking PCLK 제어입니다.

Source pathDocumentation/devicetree/bindings/media/i2c/ovti,ov7670.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

ovti,ov7670.txt:1-55

Active-low sync와 25MHz ISI endpoint 예제를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 * Omnivision OV7670 CMOS sensor
2
3 The Omnivision OV7670 sensor supports multiple resolutions output, such as
4 CIF, SVGA, UXGA. It also can support the YUV422/420, RGB565/555 or raw RGB
5 output formats.
6
7 Required Properties:
8 - compatible: should be "ovti,ov7670"
9 - clocks: reference to the xclk input clock.
10 - clock-names: should be "xclk".
11
12 Required Endpoint Properties:
13 - hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
14 - vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
15
16 Optional Properties:
17 - reset-gpios: reference to the GPIO connected to the resetb pin, if any.
18 Active is low.
19 - powerdown-gpios: reference to the GPIO connected to the pwdn pin, if any.
20 Active is high.
21 - ov7670,pclk-hb-disable: a boolean property to suppress pixel clock output
22 signal during horizontal blankings.
23
24 The device node must contain one 'port' child node with one 'endpoint' child
25 sub-node for its digital output video port, in accordance with the video
26 interface bindings defined in:
27 Documentation/devicetree/bindings/media/video-interfaces.txt.
28
29 Example:
30
31 i2c1: i2c@f0018000 {
32 ov7670: camera@21 {
33 compatible = "ovti,ov7670";
34 reg = <0x21>;
35 pinctrl-names = "default";
36 pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
37 reset-gpios = <&pioE 11 GPIO_ACTIVE_LOW>;
38 powerdown-gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
39 clocks = <&pck0>;
40 clock-names = "xclk";
41 assigned-clocks = <&pck0>;
42 assigned-clock-rates = <25000000>;
43
44 ov7670,pclk-hb-disable;
45
46 port {
47 ov7670_0: endpoint {
48 hsync-active = <0>;
49 vsync-active = <0>;
50
51 remote-endpoint = <&isi_0>;
52 };
53 };
54 };
55 };
56

3. 한국어 전문 번역

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

OV7670 clock과 sync polarity

1-15

OmniVision 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를 뜻합니다.

OV7670 sync polarity
속성01
hsync-activeHSYNC active-lowHSYNC active-high
vsync-activeVSYNC active-lowVSYNC active-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>;
                        };
                };
        };
};