요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.
1. 요약·해설
원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.
2. 영어 원문 전체
번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.
원문 전체 펼치기
Device-Tree bindings for tilcdc DRM generic panel output driver
Required properties:
- compatible: value should be "ti,tilcdc,panel".
- panel-info: configuration info to configure LCDC correctly for the panel
- ac-bias: AC Bias Pin Frequency
- ac-bias-intrpt: AC Bias Pin Transitions per Interrupt
- dma-burst-sz: DMA burst size
- bpp: Bits per pixel
- fdd: FIFO DMA Request Delay
- sync-edge: Horizontal and Vertical Sync Edge: 0=rising 1=falling
- sync-ctrl: Horizontal and Vertical Sync: Control: 0=ignore
- raster-order: Raster Data Order Select: 1=Most-to-least 0=Least-to-most
- fifo-th: DMA FIFO threshold
- display-timings: typical videomode of lcd panel. Multiple video modes
can be listed if the panel supports multiple timings, but the 'native-mode'
should be the preferred/default resolution. Refer to
Documentation/devicetree/bindings/display/panel/display-timing.txt for display
timing binding details.
Optional properties:
- backlight: phandle of the backlight device attached to the panel
- enable-gpios: GPIO pin to enable or disable the panel
Recommended properties:
- pinctrl-names, pinctrl-0: the pincontrol settings to configure
muxing properly for pins that connect to TFP410 device
Example:
/* Settings for CDTech_S035Q01 / LCD3 cape: */
lcd3 {
compatible = "ti,tilcdc,panel";
pinctrl-names = "default";
pinctrl-0 = <&bone_lcd3_cape_lcd_pins>;
backlight = <&backlight>;
enable-gpios = <&gpio3 19 0>;
panel-info {
ac-bias = <255>;
ac-bias-intrpt = <0>;
dma-burst-sz = <16>;
bpp = <16>;
fdd = <0x80>;
sync-edge = <0>;
sync-ctrl = <1>;
raster-order = <0>;
fifo-th = <0>;
};
display-timings {
native-mode = <&timing0>;
timing0: 320x240 {
hactive = <320>;
vactive = <240>;
hback-porch = <21>;
hfront-porch = <58>;
hsync-len = <47>;
vback-porch = <11>;
vfront-porch = <23>;
vsync-len = <2>;
clock-frequency = <8000000>;
hsync-active = <0>;
vsync-active = <0>;
};
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.
tilcdc generic panel 설정
1-28tilcdc DRM generic panel output driver의 Device Tree 바인딩입니다. 필수 `compatible`은 `ti,tilcdc,panel`이고 `panel-info`는 panel에 맞게 LCDC를 구성하는 정보를 담습니다.
`panel-info`의 `ac-bias`는 AC Bias pin frequency, `ac-bias-intrpt`는 interrupt당 AC Bias pin transition 수, `dma-burst-sz`는 DMA burst size, `bpp`는 bits per pixel, `fdd`는 FIFO DMA request delay입니다.
`sync-edge`는 horizontal/vertical sync edge로 0은 rising, 1은 falling입니다. `sync-ctrl`은 sync control로 0이면 ignore, `raster-order`는 raster data order로 1이면 most-to-least, 0이면 least-to-most입니다. `fifo-th`는 DMA FIFO threshold입니다.
`display-timings`에는 LCD panel의 대표 video mode를 둡니다. 여러 timing을 나열할 수 있지만 `native-mode`는 preferred/default resolution이어야 합니다. 자세한 형식은 `Documentation/devicetree/bindings/display/panel/display-timing.txt`를 참조합니다.
선택 `backlight`는 panel backlight device의 phandle, `enable-gpios`는 panel enable/disable pin입니다. 권장 `pinctrl-names`, `pinctrl-0`은 TFP410 연결 pin의 mux를 올바르게 구성합니다.
LCDC의 DMA, pixel, sync와 raster 동작을 결정하는 설정을 정리합니다.
CDTech 320x240 panel 예제
29-66CDTech_S035Q01/LCD3 cape 예제는 default pinctrl, backlight와 GPIO3 pin 19의 enable을 사용합니다. Panel-info는 AC bias 255, DMA burst 16, 16 bpp, FIFO DMA delay `0x80`, rising sync edge와 least-to-most raster order를 설정합니다.
Native timing은 320x240, pixel clock 8 MHz입니다. Horizontal porch는 back 21/front 58, hsync 47이고 vertical porch는 back 11/front 23, vsync 2이며 두 sync active 값은 0입니다.
/* Settings for CDTech_S035Q01 / LCD3 cape: */
lcd3 {
compatible = "ti,tilcdc,panel";
pinctrl-names = "default";
pinctrl-0 = <&bone_lcd3_cape_lcd_pins>;
backlight = <&backlight>;
enable-gpios = <&gpio3 19 0>;
panel-info {
ac-bias = <255>;
ac-bias-intrpt = <0>;
dma-burst-sz = <16>;
bpp = <16>;
fdd = <0x80>;
sync-edge = <0>;
sync-ctrl = <1>;
raster-order = <0>;
fifo-th = <0>;
};
display-timings {
native-mode = <&timing0>;
timing0: 320x240 {
hactive = <320>;
vactive = <240>;
hback-porch = <21>;
hfront-porch = <58>;
hsync-len = <47>;
vback-porch = <11>;
vfront-porch = <23>;
vsync-len = <2>;
clock-frequency = <8000000>;
hsync-active = <0>;
vsync-active = <0>;
};
};
};
예제의 active 영역, porch, sync와 clock을 구조화합니다.
요약과 해설
panel.txt:1-66LCDC DMA/sync 설정과 320x240 native timing 예제를 설명합니다.