← Documents Documentation/devicetree/bindings/media/xilinx/xlnx,v-tpg.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Xilinx Video Test Pattern Generator

Xilinx TPG 5.0/6.0의 영상 형식, VTC, timing mux GPIO와 port 바인딩입니다.

Source pathDocumentation/devicetree/bindings/media/xilinx/xlnx,v-tpg.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

xlnx,v-tpg.txt:1-71

한 port와 두 port 합성에서 달라지는 필수·금지 속성과 YUV 예제를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Xilinx Video Test Pattern Generator (TPG)
2 -----------------------------------------
3
4 Required properties:
5
6 - compatible: Must contain at least one of
7
8 "xlnx,v-tpg-5.0" (TPG version 5.0)
9 "xlnx,v-tpg-6.0" (TPG version 6.0)
10
11 TPG versions backward-compatible with previous versions should list all
12 compatible versions in the newer to older order.
13
14 - reg: Physical base address and length of the registers set for the device.
15
16 - clocks: Reference to the video core clock.
17
18 - xlnx,video-format, xlnx,video-width: Video format and width, as defined in
19 video.txt.
20
21 - port: Video port, using the DT bindings defined in ../video-interfaces.txt.
22 The TPG has a single output port numbered 0.
23
24 Optional properties:
25
26 - xlnx,vtc: A phandle referencing the Video Timing Controller that generates
27 video timings for the TPG test patterns.
28
29 - timing-gpios: Specifier for a GPIO that controls the timing mux at the TPG
30 input. The GPIO active level corresponds to the selection of VTC-generated
31 video timings.
32
33 The xlnx,vtc and timing-gpios properties are mandatory when the TPG is
34 synthesized with two ports and forbidden when synthesized with one port.
35
36 Example:
37
38 tpg_0: tpg@40050000 {
39 compatible = "xlnx,v-tpg-6.0", "xlnx,v-tpg-5.0";
40 reg = <0x40050000 0x10000>;
41 clocks = <&clkc 15>;
42
43 xlnx,vtc = <&vtc_3>;
44 timing-gpios = <&ps7_gpio_0 55 GPIO_ACTIVE_LOW>;
45
46 ports {
47 #address-cells = <1>;
48 #size-cells = <0>;
49
50 port@0 {
51 reg = <0>;
52
53 xlnx,video-format = <XVIP_VF_YUV_422>;
54 xlnx,video-width = <8>;
55
56 tpg_in: endpoint {
57 remote-endpoint = <&adv7611_out>;
58 };
59 };
60 port@1 {
61 reg = <1>;
62
63 xlnx,video-format = <XVIP_VF_YUV_422>;
64 xlnx,video-width = <8>;
65
66 tpg1_out: endpoint {
67 remote-endpoint = <&switch_in0>;
68 };
69 };
70 };
71 };
72

3. 한국어 전문 번역

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

Xilinx Video Test Pattern Generator

1-3

Xilinx Video Test Pattern Generator(TPG)는 영상 파이프라인을 시험할 패턴을 생성하는 IP 코어입니다.

TPG 두 port 구성
Input video endpointTPG input port
VTC-generated timingGPIO-controlled timing mux
Test pattern generatorTPG output port
YUV 4:2:2 streamDownstream switch

외부 영상과 VTC 타이밍을 timing mux에서 선택하고 TPG가 시험 패턴 출력으로 전달합니다.

필수 호환성·영상·port 속성

4-23

`compatible`에는 최소한 `xlnx,v-tpg-5.0` 또는 `xlnx,v-tpg-6.0` 중 하나가 들어가야 합니다. 이전 버전과 호환되는 TPG는 호환 문자열을 최신 버전에서 오래된 버전 순으로 모두 나열해야 합니다.

`reg`는 레지스터 집합의 물리 주소와 길이이며 `clocks`는 비디오 코어 클록을 가리킵니다. `xlnx,video-format`과 `xlnx,video-width`는 `video.txt`가 정의한 영상 형식과 폭입니다.

`port`는 `../video-interfaces.txt`의 DT 바인딩을 따르는 영상 port입니다. 기본적인 TPG 출력 port 번호는 0입니다.

VTC와 timing mux GPIO

24-35

`xlnx,vtc`는 TPG 시험 패턴용 영상 타이밍을 생성하는 Video Timing Controller의 phandle입니다. `timing-gpios`는 TPG 입력의 timing mux를 제어하는 GPIO 지정자이며, GPIO의 active level이 VTC 생성 영상 타이밍을 선택하는 상태에 대응합니다.

TPG가 두 port로 합성되었으면 `xlnx,vtc`와 `timing-gpios`가 모두 필수입니다. 한 port로 합성되었으면 두 속성은 금지됩니다.

두 port YUV 4:2:2 예제

36-71

예제는 TPG 6.0과 5.0 호환성을 최신 순으로 선언하고 VTC3 및 active-low GPIO 55를 timing mux에 연결합니다. 두 port 모두 8비트 YUV 4:2:2 형식입니다.

`port@0`의 `tpg_in`은 ADV7611 출력에서 영상을 받고, `port@1`의 `tpg1_out`은 생성된 스트림을 `switch_in0`으로 전달합니다. 이 예제는 두 port 합성 형태이므로 앞의 단일 출력 port 설명보다 확장된 구성을 보여 줍니다.

tpg_0: tpg@40050000 {
        compatible = "xlnx,v-tpg-6.0", "xlnx,v-tpg-5.0";
        reg = <0x40050000 0x10000>;
        clocks = <&clkc 15>;

        xlnx,vtc = <&vtc_3>;
        timing-gpios = <&ps7_gpio_0 55 GPIO_ACTIVE_LOW>;

        ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                        reg = <0>;

                        xlnx,video-format = <XVIP_VF_YUV_422>;
                        xlnx,video-width = <8>;

                        tpg_in: endpoint {
                                remote-endpoint = <&adv7611_out>;
                        };
                };
                port@1 {
                        reg = <1>;

                        xlnx,video-format = <XVIP_VF_YUV_422>;
                        xlnx,video-width = <8>;

                        tpg1_out: endpoint {
                                remote-endpoint = <&switch_in0>;
                        };
                };
        };
};