xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/display/zte,vou.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunZTE VOU Display Controller
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThis is a display controller found on ZTE ZX296718 SoC.  It includes multiple
4*4882a593SmuzhiyunGraphic Layer (GL) and Video Layer (VL), two Mixers/Channels, and a few blocks
5*4882a593Smuzhiyunhandling scaling, color space conversion etc.  VOU also integrates the support
6*4882a593Smuzhiyunfor typical output devices, like HDMI, TV Encoder, VGA, and RGB LCD.
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun* Master VOU node
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunIt must be the parent node of all the sub-device nodes.
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunRequired properties:
13*4882a593Smuzhiyun - compatible: should be "zte,zx296718-vou"
14*4882a593Smuzhiyun - #address-cells: should be <1>
15*4882a593Smuzhiyun - #size-cells: should be <1>
16*4882a593Smuzhiyun - ranges: list of address translations between VOU and sub-devices
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun* VOU DPC device
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunRequired properties:
21*4882a593Smuzhiyun - compatible: should be "zte,zx296718-dpc"
22*4882a593Smuzhiyun - reg: Physical base address and length of DPC register regions, one for each
23*4882a593Smuzhiyun   entry in 'reg-names'
24*4882a593Smuzhiyun - reg-names: The names of register regions. The following regions are required:
25*4882a593Smuzhiyun	"osd"
26*4882a593Smuzhiyun	"timing_ctrl"
27*4882a593Smuzhiyun	"dtrc"
28*4882a593Smuzhiyun	"vou_ctrl"
29*4882a593Smuzhiyun	"otfppu"
30*4882a593Smuzhiyun - interrupts: VOU DPC interrupt number to CPU
31*4882a593Smuzhiyun - clocks: A list of phandle + clock-specifier pairs, one for each entry
32*4882a593Smuzhiyun   in 'clock-names'
33*4882a593Smuzhiyun - clock-names: A list of clock names.  The following clocks are required:
34*4882a593Smuzhiyun	"aclk"
35*4882a593Smuzhiyun	"ppu_wclk"
36*4882a593Smuzhiyun	"main_wclk"
37*4882a593Smuzhiyun	"aux_wclk"
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun* HDMI output device
40*4882a593Smuzhiyun
41*4882a593SmuzhiyunRequired properties:
42*4882a593Smuzhiyun - compatible: should be "zte,zx296718-hdmi"
43*4882a593Smuzhiyun - reg: Physical base address and length of the HDMI device IO region
44*4882a593Smuzhiyun - interrupts : HDMI interrupt number to CPU
45*4882a593Smuzhiyun - clocks: A list of phandle + clock-specifier pairs, one for each entry
46*4882a593Smuzhiyun   in 'clock-names'
47*4882a593Smuzhiyun - clock-names: A list of clock names.  The following clocks are required:
48*4882a593Smuzhiyun	"osc_cec"
49*4882a593Smuzhiyun	"osc_clk"
50*4882a593Smuzhiyun	"xclk"
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun* TV Encoder output device
53*4882a593Smuzhiyun
54*4882a593SmuzhiyunRequired properties:
55*4882a593Smuzhiyun - compatible: should be "zte,zx296718-tvenc"
56*4882a593Smuzhiyun - reg: Physical base address and length of the TVENC device IO region
57*4882a593Smuzhiyun - zte,tvenc-power-control: the phandle to SYSCTRL block followed by two
58*4882a593Smuzhiyun   integer cells.  The first cell is the offset of SYSCTRL register used
59*4882a593Smuzhiyun   to control TV Encoder DAC power, and the second cell is the bit mask.
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun* VGA output device
62*4882a593Smuzhiyun
63*4882a593SmuzhiyunRequired properties:
64*4882a593Smuzhiyun - compatible: should be "zte,zx296718-vga"
65*4882a593Smuzhiyun - reg: Physical base address and length of the VGA device IO region
66*4882a593Smuzhiyun - interrupts : VGA interrupt number to CPU
67*4882a593Smuzhiyun - clocks: Phandle with clock-specifier pointing to VGA I2C clock.
68*4882a593Smuzhiyun - clock-names: Must be "i2c_wclk".
69*4882a593Smuzhiyun - zte,vga-power-control: the phandle to SYSCTRL block followed by two
70*4882a593Smuzhiyun   integer cells.  The first cell is the offset of SYSCTRL register used
71*4882a593Smuzhiyun   to control VGA DAC power, and the second cell is the bit mask.
72*4882a593Smuzhiyun
73*4882a593SmuzhiyunExample:
74*4882a593Smuzhiyun
75*4882a593Smuzhiyunvou: vou@1440000 {
76*4882a593Smuzhiyun	compatible = "zte,zx296718-vou";
77*4882a593Smuzhiyun	#address-cells = <1>;
78*4882a593Smuzhiyun	#size-cells = <1>;
79*4882a593Smuzhiyun	ranges = <0 0x1440000 0x10000>;
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun	dpc: dpc@0 {
82*4882a593Smuzhiyun		compatible = "zte,zx296718-dpc";
83*4882a593Smuzhiyun		reg = <0x0000 0x1000>, <0x1000 0x1000>,
84*4882a593Smuzhiyun		      <0x5000 0x1000>, <0x6000 0x1000>,
85*4882a593Smuzhiyun		      <0xa000 0x1000>;
86*4882a593Smuzhiyun		reg-names = "osd", "timing_ctrl",
87*4882a593Smuzhiyun			    "dtrc", "vou_ctrl",
88*4882a593Smuzhiyun			    "otfppu";
89*4882a593Smuzhiyun		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
90*4882a593Smuzhiyun		clocks = <&topcrm VOU_ACLK>, <&topcrm VOU_PPU_WCLK>,
91*4882a593Smuzhiyun			 <&topcrm VOU_MAIN_WCLK>, <&topcrm VOU_AUX_WCLK>;
92*4882a593Smuzhiyun		clock-names = "aclk", "ppu_wclk",
93*4882a593Smuzhiyun			      "main_wclk", "aux_wclk";
94*4882a593Smuzhiyun	};
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun	vga: vga@8000 {
97*4882a593Smuzhiyun		compatible = "zte,zx296718-vga";
98*4882a593Smuzhiyun		reg = <0x8000 0x1000>;
99*4882a593Smuzhiyun		interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
100*4882a593Smuzhiyun		clocks = <&topcrm VGA_I2C_WCLK>;
101*4882a593Smuzhiyun		clock-names = "i2c_wclk";
102*4882a593Smuzhiyun		zte,vga-power-control = <&sysctrl 0x170 0xe0>;
103*4882a593Smuzhiyun	};
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun	hdmi: hdmi@c000 {
106*4882a593Smuzhiyun		compatible = "zte,zx296718-hdmi";
107*4882a593Smuzhiyun		reg = <0xc000 0x4000>;
108*4882a593Smuzhiyun		interrupts = <GIC_SPI 82 IRQ_TYPE_EDGE_RISING>;
109*4882a593Smuzhiyun		clocks = <&topcrm HDMI_OSC_CEC>,
110*4882a593Smuzhiyun			 <&topcrm HDMI_OSC_CLK>,
111*4882a593Smuzhiyun			 <&topcrm HDMI_XCLK>;
112*4882a593Smuzhiyun		clock-names = "osc_cec", "osc_clk", "xclk";
113*4882a593Smuzhiyun	};
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun	tvenc: tvenc@2000 {
116*4882a593Smuzhiyun		compatible = "zte,zx296718-tvenc";
117*4882a593Smuzhiyun		reg = <0x2000 0x1000>;
118*4882a593Smuzhiyun		zte,tvenc-power-control = <&sysctrl 0x170 0x10>;
119*4882a593Smuzhiyun	};
120*4882a593Smuzhiyun};
121