2016-09-23 12:40:08 +07:00
|
|
|
ZTE VOU Display Controller
|
|
|
|
|
|
|
|
This is a display controller found on ZTE ZX296718 SoC. It includes multiple
|
|
|
|
Graphic Layer (GL) and Video Layer (VL), two Mixers/Channels, and a few blocks
|
|
|
|
handling scaling, color space conversion etc. VOU also integrates the support
|
|
|
|
for typical output devices, like HDMI, TV Encoder, VGA, and RGB LCD.
|
|
|
|
|
|
|
|
* Master VOU node
|
|
|
|
|
|
|
|
It must be the parent node of all the sub-device nodes.
|
|
|
|
|
|
|
|
Required properties:
|
|
|
|
- compatible: should be "zte,zx296718-vou"
|
|
|
|
- #address-cells: should be <1>
|
|
|
|
- #size-cells: should be <1>
|
|
|
|
- ranges: list of address translations between VOU and sub-devices
|
|
|
|
|
|
|
|
* VOU DPC device
|
|
|
|
|
|
|
|
Required properties:
|
|
|
|
- compatible: should be "zte,zx296718-dpc"
|
|
|
|
- reg: Physical base address and length of DPC register regions, one for each
|
|
|
|
entry in 'reg-names'
|
|
|
|
- reg-names: The names of register regions. The following regions are required:
|
|
|
|
"osd"
|
|
|
|
"timing_ctrl"
|
|
|
|
"dtrc"
|
|
|
|
"vou_ctrl"
|
|
|
|
"otfppu"
|
|
|
|
- interrupts: VOU DPC interrupt number to CPU
|
|
|
|
- clocks: A list of phandle + clock-specifier pairs, one for each entry
|
|
|
|
in 'clock-names'
|
|
|
|
- clock-names: A list of clock names. The following clocks are required:
|
|
|
|
"aclk"
|
|
|
|
"ppu_wclk"
|
|
|
|
"main_wclk"
|
|
|
|
"aux_wclk"
|
|
|
|
|
|
|
|
* HDMI output device
|
|
|
|
|
|
|
|
Required properties:
|
|
|
|
- compatible: should be "zte,zx296718-hdmi"
|
|
|
|
- reg: Physical base address and length of the HDMI device IO region
|
|
|
|
- interrupts : HDMI interrupt number to CPU
|
|
|
|
- clocks: A list of phandle + clock-specifier pairs, one for each entry
|
|
|
|
in 'clock-names'
|
|
|
|
- clock-names: A list of clock names. The following clocks are required:
|
|
|
|
"osc_cec"
|
|
|
|
"osc_clk"
|
|
|
|
"xclk"
|
|
|
|
|
2017-01-19 22:34:25 +07:00
|
|
|
* TV Encoder output device
|
|
|
|
|
|
|
|
Required properties:
|
|
|
|
- compatible: should be "zte,zx296718-tvenc"
|
|
|
|
- reg: Physical base address and length of the TVENC device IO region
|
|
|
|
- zte,tvenc-power-control: the phandle to SYSCTRL block followed by two
|
|
|
|
integer cells. The first cell is the offset of SYSCTRL register used
|
|
|
|
to control TV Encoder DAC power, and the second cell is the bit mask.
|
|
|
|
|
2017-04-06 22:01:09 +07:00
|
|
|
* VGA output device
|
|
|
|
|
|
|
|
Required properties:
|
|
|
|
- compatible: should be "zte,zx296718-vga"
|
|
|
|
- reg: Physical base address and length of the VGA device IO region
|
|
|
|
- interrupts : VGA interrupt number to CPU
|
|
|
|
- clocks: Phandle with clock-specifier pointing to VGA I2C clock.
|
|
|
|
- clock-names: Must be "i2c_wclk".
|
|
|
|
- zte,vga-power-control: the phandle to SYSCTRL block followed by two
|
|
|
|
integer cells. The first cell is the offset of SYSCTRL register used
|
|
|
|
to control VGA DAC power, and the second cell is the bit mask.
|
|
|
|
|
2016-09-23 12:40:08 +07:00
|
|
|
Example:
|
|
|
|
|
|
|
|
vou: vou@1440000 {
|
|
|
|
compatible = "zte,zx296718-vou";
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <1>;
|
|
|
|
ranges = <0 0x1440000 0x10000>;
|
|
|
|
|
|
|
|
dpc: dpc@0 {
|
|
|
|
compatible = "zte,zx296718-dpc";
|
|
|
|
reg = <0x0000 0x1000>, <0x1000 0x1000>,
|
|
|
|
<0x5000 0x1000>, <0x6000 0x1000>,
|
|
|
|
<0xa000 0x1000>;
|
|
|
|
reg-names = "osd", "timing_ctrl",
|
|
|
|
"dtrc", "vou_ctrl",
|
|
|
|
"otfppu";
|
|
|
|
interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
|
clocks = <&topcrm VOU_ACLK>, <&topcrm VOU_PPU_WCLK>,
|
|
|
|
<&topcrm VOU_MAIN_WCLK>, <&topcrm VOU_AUX_WCLK>;
|
|
|
|
clock-names = "aclk", "ppu_wclk",
|
|
|
|
"main_wclk", "aux_wclk";
|
|
|
|
};
|
|
|
|
|
2017-04-06 22:01:09 +07:00
|
|
|
vga: vga@8000 {
|
|
|
|
compatible = "zte,zx296718-vga";
|
|
|
|
reg = <0x8000 0x1000>;
|
|
|
|
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
|
clocks = <&topcrm VGA_I2C_WCLK>;
|
|
|
|
clock-names = "i2c_wclk";
|
|
|
|
zte,vga-power-control = <&sysctrl 0x170 0xe0>;
|
|
|
|
};
|
|
|
|
|
2016-09-23 12:40:08 +07:00
|
|
|
hdmi: hdmi@c000 {
|
|
|
|
compatible = "zte,zx296718-hdmi";
|
|
|
|
reg = <0xc000 0x4000>;
|
|
|
|
interrupts = <GIC_SPI 82 IRQ_TYPE_EDGE_RISING>;
|
|
|
|
clocks = <&topcrm HDMI_OSC_CEC>,
|
|
|
|
<&topcrm HDMI_OSC_CLK>,
|
|
|
|
<&topcrm HDMI_XCLK>;
|
|
|
|
clock-names = "osc_cec", "osc_clk", "xclk";
|
|
|
|
};
|
2017-01-19 22:34:25 +07:00
|
|
|
|
|
|
|
tvenc: tvenc@2000 {
|
|
|
|
compatible = "zte,zx296718-tvenc";
|
|
|
|
reg = <0x2000 0x1000>;
|
|
|
|
zte,tvenc-power-control = <&sysctrl 0x170 0x10>;
|
|
|
|
};
|
2016-09-23 12:40:08 +07:00
|
|
|
};
|