18c2ecf20Sopenharmony_ciZTE VOU Display Controller 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciThis is a display controller found on ZTE ZX296718 SoC. It includes multiple 48c2ecf20Sopenharmony_ciGraphic Layer (GL) and Video Layer (VL), two Mixers/Channels, and a few blocks 58c2ecf20Sopenharmony_cihandling scaling, color space conversion etc. VOU also integrates the support 68c2ecf20Sopenharmony_cifor typical output devices, like HDMI, TV Encoder, VGA, and RGB LCD. 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci* Master VOU node 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciIt must be the parent node of all the sub-device nodes. 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciRequired properties: 138c2ecf20Sopenharmony_ci - compatible: should be "zte,zx296718-vou" 148c2ecf20Sopenharmony_ci - #address-cells: should be <1> 158c2ecf20Sopenharmony_ci - #size-cells: should be <1> 168c2ecf20Sopenharmony_ci - ranges: list of address translations between VOU and sub-devices 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci* VOU DPC device 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ciRequired properties: 218c2ecf20Sopenharmony_ci - compatible: should be "zte,zx296718-dpc" 228c2ecf20Sopenharmony_ci - reg: Physical base address and length of DPC register regions, one for each 238c2ecf20Sopenharmony_ci entry in 'reg-names' 248c2ecf20Sopenharmony_ci - reg-names: The names of register regions. The following regions are required: 258c2ecf20Sopenharmony_ci "osd" 268c2ecf20Sopenharmony_ci "timing_ctrl" 278c2ecf20Sopenharmony_ci "dtrc" 288c2ecf20Sopenharmony_ci "vou_ctrl" 298c2ecf20Sopenharmony_ci "otfppu" 308c2ecf20Sopenharmony_ci - interrupts: VOU DPC interrupt number to CPU 318c2ecf20Sopenharmony_ci - clocks: A list of phandle + clock-specifier pairs, one for each entry 328c2ecf20Sopenharmony_ci in 'clock-names' 338c2ecf20Sopenharmony_ci - clock-names: A list of clock names. The following clocks are required: 348c2ecf20Sopenharmony_ci "aclk" 358c2ecf20Sopenharmony_ci "ppu_wclk" 368c2ecf20Sopenharmony_ci "main_wclk" 378c2ecf20Sopenharmony_ci "aux_wclk" 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci* HDMI output device 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ciRequired properties: 428c2ecf20Sopenharmony_ci - compatible: should be "zte,zx296718-hdmi" 438c2ecf20Sopenharmony_ci - reg: Physical base address and length of the HDMI device IO region 448c2ecf20Sopenharmony_ci - interrupts : HDMI interrupt number to CPU 458c2ecf20Sopenharmony_ci - clocks: A list of phandle + clock-specifier pairs, one for each entry 468c2ecf20Sopenharmony_ci in 'clock-names' 478c2ecf20Sopenharmony_ci - clock-names: A list of clock names. The following clocks are required: 488c2ecf20Sopenharmony_ci "osc_cec" 498c2ecf20Sopenharmony_ci "osc_clk" 508c2ecf20Sopenharmony_ci "xclk" 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci* TV Encoder output device 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ciRequired properties: 558c2ecf20Sopenharmony_ci - compatible: should be "zte,zx296718-tvenc" 568c2ecf20Sopenharmony_ci - reg: Physical base address and length of the TVENC device IO region 578c2ecf20Sopenharmony_ci - zte,tvenc-power-control: the phandle to SYSCTRL block followed by two 588c2ecf20Sopenharmony_ci integer cells. The first cell is the offset of SYSCTRL register used 598c2ecf20Sopenharmony_ci to control TV Encoder DAC power, and the second cell is the bit mask. 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci* VGA output device 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ciRequired properties: 648c2ecf20Sopenharmony_ci - compatible: should be "zte,zx296718-vga" 658c2ecf20Sopenharmony_ci - reg: Physical base address and length of the VGA device IO region 668c2ecf20Sopenharmony_ci - interrupts : VGA interrupt number to CPU 678c2ecf20Sopenharmony_ci - clocks: Phandle with clock-specifier pointing to VGA I2C clock. 688c2ecf20Sopenharmony_ci - clock-names: Must be "i2c_wclk". 698c2ecf20Sopenharmony_ci - zte,vga-power-control: the phandle to SYSCTRL block followed by two 708c2ecf20Sopenharmony_ci integer cells. The first cell is the offset of SYSCTRL register used 718c2ecf20Sopenharmony_ci to control VGA DAC power, and the second cell is the bit mask. 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ciExample: 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_civou: vou@1440000 { 768c2ecf20Sopenharmony_ci compatible = "zte,zx296718-vou"; 778c2ecf20Sopenharmony_ci #address-cells = <1>; 788c2ecf20Sopenharmony_ci #size-cells = <1>; 798c2ecf20Sopenharmony_ci ranges = <0 0x1440000 0x10000>; 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci dpc: dpc@0 { 828c2ecf20Sopenharmony_ci compatible = "zte,zx296718-dpc"; 838c2ecf20Sopenharmony_ci reg = <0x0000 0x1000>, <0x1000 0x1000>, 848c2ecf20Sopenharmony_ci <0x5000 0x1000>, <0x6000 0x1000>, 858c2ecf20Sopenharmony_ci <0xa000 0x1000>; 868c2ecf20Sopenharmony_ci reg-names = "osd", "timing_ctrl", 878c2ecf20Sopenharmony_ci "dtrc", "vou_ctrl", 888c2ecf20Sopenharmony_ci "otfppu"; 898c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 908c2ecf20Sopenharmony_ci clocks = <&topcrm VOU_ACLK>, <&topcrm VOU_PPU_WCLK>, 918c2ecf20Sopenharmony_ci <&topcrm VOU_MAIN_WCLK>, <&topcrm VOU_AUX_WCLK>; 928c2ecf20Sopenharmony_ci clock-names = "aclk", "ppu_wclk", 938c2ecf20Sopenharmony_ci "main_wclk", "aux_wclk"; 948c2ecf20Sopenharmony_ci }; 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci vga: vga@8000 { 978c2ecf20Sopenharmony_ci compatible = "zte,zx296718-vga"; 988c2ecf20Sopenharmony_ci reg = <0x8000 0x1000>; 998c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 1008c2ecf20Sopenharmony_ci clocks = <&topcrm VGA_I2C_WCLK>; 1018c2ecf20Sopenharmony_ci clock-names = "i2c_wclk"; 1028c2ecf20Sopenharmony_ci zte,vga-power-control = <&sysctrl 0x170 0xe0>; 1038c2ecf20Sopenharmony_ci }; 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci hdmi: hdmi@c000 { 1068c2ecf20Sopenharmony_ci compatible = "zte,zx296718-hdmi"; 1078c2ecf20Sopenharmony_ci reg = <0xc000 0x4000>; 1088c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 82 IRQ_TYPE_EDGE_RISING>; 1098c2ecf20Sopenharmony_ci clocks = <&topcrm HDMI_OSC_CEC>, 1108c2ecf20Sopenharmony_ci <&topcrm HDMI_OSC_CLK>, 1118c2ecf20Sopenharmony_ci <&topcrm HDMI_XCLK>; 1128c2ecf20Sopenharmony_ci clock-names = "osc_cec", "osc_clk", "xclk"; 1138c2ecf20Sopenharmony_ci }; 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci tvenc: tvenc@2000 { 1168c2ecf20Sopenharmony_ci compatible = "zte,zx296718-tvenc"; 1178c2ecf20Sopenharmony_ci reg = <0x2000 0x1000>; 1188c2ecf20Sopenharmony_ci zte,tvenc-power-control = <&sysctrl 0x170 0x10>; 1198c2ecf20Sopenharmony_ci }; 1208c2ecf20Sopenharmony_ci}; 121