한국어
Embedded
 

드라이버 Rockchip VOP

makersweb 2024.04.22 21:59 조회 수 : 115

VOP(Visual Output Processor) 는 비디오 메모리 버퍼의 이미지 데이터를 외부 디스플레이 인터페이스(LVDS, MIPI, eDP, HDMI 등)로 전송하는 Rockchip SoC 시리즈용 디스플레이 컨트롤러이다.

VOP는 AHB 슬레이브를 통해 AHB 버스에 연결되고 AXI 마스터를 통해 AXI 버스에 연결된다. 레지스터 설정은 AHB 슬레이브 인터페이스를 통해 구성되며 디스플레이 프레임 데이터는 AXI 마스터 인터페이스를 통해 읽혀진다. 또한 IEP와 VOP 사이에는 IEP에서 VOP로 프레임 데이터를 제공할 수 있는 데이터 경로가 있다. (VOP 호환 SoC에서는 커널 빌드 시 이 기능을 활성화해야 한다.)

 

VOP2 는 RK3566/RK3568 부터 사용된다. 이 드라이버는 Rockchip의 커널에서 제공되는 기존 다운스트림 드라이버에서 파생되었다. 이 업스트림 드라이버는 비표준 DRM 속성, 엉성한 코드 및 다운스트림 드라이버 상태의 기타 변경 사항을 제거하기 위해 큰 변경 사항을 확인해야 했다.

dtsi 파일에 필요한 디스플레이 하위 시스템 노드 및 iommu 노드와 함께 해당 노드를 추가해야한다.

 

Example:

...
    vop: vop@fdd90000 {
        compatible = "rockchip,rk3588-vop";
        reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
        reg-names = "regs", "gamma_lut";
        interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
...
        iommus = <&vop_mmu>;
        power-domains = <&power RK3588_PD_VOP>;
        rockchip,grf = <&sys_grf>;
        rockchip,vop-grf = <&vop_grf>;
        rockchip,vo1-grf = <&vo1_grf>;
        rockchip,pmu = <&pmu>;

        status = "disabled";

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

            vp0: port@0 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0>;

                vp0_out_dp0: endpoint@0 {
                    reg = <0>;
                    remote-endpoint = <&dp0_in_vp0>;
                };

                vp0_out_edp0: endpoint@1 {
                    reg = <1>;
                    remote-endpoint = <&edp0_in_vp0>;
                };

                vp0_out_hdmi0: endpoint@2 {
                    reg = <2>;
                    remote-endpoint = <&hdmi0_in_vp0>;
                };
            };

            vp1: port@1 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <1>;

                vp1_out_dp0: endpoint@0 {
                    reg = <0>;
                    remote-endpoint = <&dp0_in_vp1>;
                };

                vp1_out_edp0: endpoint@1 {
                    reg = <1>;
                    remote-endpoint = <&edp0_in_vp1>;
                };

                vp1_out_hdmi0: endpoint@2 {
                    reg = <2>;
                    remote-endpoint = <&hdmi0_in_vp1>;
                };
            };
...
        };
    };
...

 

번호 제목 글쓴이 날짜 조회 수
52 GNU C 레퍼런스 메뉴얼 - 부록 D secret makersweb 2014.02.28 5
» Rockchip VOP makersweb 2024.04.22 115
50 ATtiny85 개발보드(HW-260) file makersweb 2023.01.02 474
49 Raspberry Pi에서 I²C 그리고 Bit-bang (비트뱅) makersweb 2023.08.27 507
48 Raspberry Pi 와 ATtiny85 간 I²C 통신 file makersweb 2023.03.18 561
47 로직분석기와 함께 PulseView 를 사용해서 CAN 신호 캡쳐 file makersweb 2023.03.16 637
46 mainline 커널 및 etnaviv 를 사용하는 Wandboard(Freescale i.MX6Q)에서 eglfs를 사용 makersweb 2019.10.17 939
45 임베디드 비대칭 멀티 프로세싱(asymmetric multiprocessing) 시스템 file makersweb 2019.12.31 942
44 Yocto 프로젝트 3.4 릴리스(honister) 이상 버전으로 마이그레이션 시 참고 사항 makersweb 2023.03.21 965
43 Android 기기를 사용하여 Raspberry Pi SD 카드 작성 방법 file makersweb 2020.08.01 1010
42 RISC-V : 자유롭고 개방 된 RISC 명령어 세트 아키텍처 [2] file makersweb 2020.01.01 1037
41 libopencm3 활용, Cortex-M 펌웨어 개발 makersweb 2019.07.14 1081
40 임베디드 개발자를 위한 Hex,Bin,Dec 변환기 유틸 file makersweb 2023.02.27 1141
39 라즈베리파이2에서 RTOS기반 GPIO제어(LED) file makersweb 2020.04.21 1655
38 라즈베리파이 부팅 가능한 sd카드 파티션 생성 makersweb 2020.04.15 1729
37 POSIX를 지원하는 오픈소스 RTOS, RTEMS file makersweb 2020.04.15 1742
36 Raspberry Pi 의 프레임버퍼(Framebuffer)구성 makersweb 2020.05.15 1837
35 STM32(Cortex-M3) LED Blink with PlatformIO file makersweb 2019.08.05 2039
34 Yocto를 이용한 wandboard BSP 및 Qt5 SDK 빌드 file makersweb 2019.09.29 2622
33 욕토 프로젝트를 이용한 Qt SDK 빌드 for 라즈베리파이3 file makersweb 2019.03.19 3063