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